# Table of Contents - [Private Plugins | TRMNL Help Center](#private-plugins-trmnl-help-center) - [Plugins | TRMNL Help Center](#plugins-trmnl-help-center) - [TRMNL Help Center](#trmnl-help-center) - [Advanced Liquid | TRMNL Help Center](#advanced-liquid-trmnl-help-center) - [Liquid 101 | TRMNL Help Center](#liquid-101-trmnl-help-center) - [Days Left (This Year) | TRMNL Help Center](#days-left-this-year-trmnl-help-center) - [GitHub Commit Graph | TRMNL Help Center](#github-commit-graph-trmnl-help-center) - [Simple Analytics | TRMNL Help Center](#simple-analytics-trmnl-help-center) - [Plugin recipes | TRMNL Help Center](#plugin-recipes-trmnl-help-center) - [YouTube Analytics | TRMNL Help Center](#youtube-analytics-trmnl-help-center) - [Lunch Money | TRMNL Help Center](#lunch-money-trmnl-help-center) - [The Office | TRMNL Help Center](#the-office-trmnl-help-center) - [Google Calendar | TRMNL Help Center](#google-calendar-trmnl-help-center) - [Todo List | TRMNL Help Center](#todo-list-trmnl-help-center) - [Shopify | TRMNL Help Center](#shopify-trmnl-help-center) - [Salesforce | TRMNL Help Center](#salesforce-trmnl-help-center) - [Polymarket | TRMNL Help Center](#polymarket-trmnl-help-center) - [Readwise | TRMNL Help Center](#readwise-trmnl-help-center) - [Robinhood | TRMNL Help Center](#robinhood-trmnl-help-center) - [Google Analytics | TRMNL Help Center](#google-analytics-trmnl-help-center) - [Upcoming Movies | TRMNL Help Center](#upcoming-movies-trmnl-help-center) - [beehiiv | TRMNL Help Center](#beehiiv-trmnl-help-center) - [Shopping List | TRMNL Help Center](#shopping-list-trmnl-help-center) - [Stock Price | TRMNL Help Center](#stock-price-trmnl-help-center) - [Statuspage | TRMNL Help Center](#statuspage-trmnl-help-center) - [Weather | TRMNL Help Center](#weather-trmnl-help-center) - [Gumroad | TRMNL Help Center](#gumroad-trmnl-help-center) - [RSS Feed | TRMNL Help Center](#rss-feed-trmnl-help-center) - [Language Learning | TRMNL Help Center](#language-learning-trmnl-help-center) - [Screensaver | TRMNL Help Center](#screensaver-trmnl-help-center) - [Email Meter | TRMNL Help Center](#email-meter-trmnl-help-center) - [Eight Sleep | TRMNL Help Center](#eight-sleep-trmnl-help-center) - [ChatGPT | TRMNL Help Center](#chatgpt-trmnl-help-center) - [Outlook Calendar | TRMNL Help Center](#outlook-calendar-trmnl-help-center) - [Screenshot | TRMNL Help Center](#screenshot-trmnl-help-center) - [GitHub Contributors | TRMNL Help Center](#github-contributors-trmnl-help-center) - [Importing and exporting private plugins | TRMNL Help Center](#importing-and-exporting-private-plugins-trmnl-help-center) - [Compare custom plugin types | TRMNL Help Center](#compare-custom-plugin-types-trmnl-help-center) - [General | TRMNL Help Center](#general-trmnl-help-center) - [Fastmail Calendar | TRMNL Help Center](#fastmail-calendar-trmnl-help-center) - [Alias Plugin | TRMNL Help Center](#alias-plugin-trmnl-help-center) - [Nextcloud Calendar | TRMNL Help Center](#nextcloud-calendar-trmnl-help-center) - [Tempest Weather Station | TRMNL Help Center](#tempest-weather-station-trmnl-help-center) - [Custom plugin filters | TRMNL Help Center](#custom-plugin-filters-trmnl-help-center) - [Parcel | TRMNL Help Center](#parcel-trmnl-help-center) - [Apple Calendar | TRMNL Help Center](#apple-calendar-trmnl-help-center) - [Custom plugin form builder | TRMNL Help Center](#custom-plugin-form-builder-trmnl-help-center) - [How to Disassemble your TRMNL | TRMNL Help Center](#how-to-disassemble-your-trmnl-trmnl-help-center) - [How to Assemble your TRMNL | TRMNL Help Center](#how-to-assemble-your-trmnl-trmnl-help-center) - [How to set up a new device | TRMNL Help Center](#how-to-set-up-a-new-device-trmnl-help-center) - [Special Functions | TRMNL Help Center](#special-functions-trmnl-help-center) - [Frequently Asked Questions | TRMNL Help Center](#frequently-asked-questions-trmnl-help-center) - [How refresh rates work | TRMNL Help Center](#how-refresh-rates-work-trmnl-help-center) - [International Customs / Duty Fees | TRMNL Help Center](#international-customs-duty-fees-trmnl-help-center) - [TRMNL mobile app | TRMNL Help Center](#trmnl-mobile-app-trmnl-help-center) - [Applying the screen (anti glare) protector | TRMNL Help Center](#applying-the-screen-anti-glare-protector-trmnl-help-center) - [Refer & Earn | TRMNL Help Center](#refer-earn-trmnl-help-center) - [Translations and Localizations | TRMNL Help Center](#translations-and-localizations-trmnl-help-center) - [Device / WiFi troubleshooting | TRMNL Help Center](#device-wifi-troubleshooting-trmnl-help-center) - [Device battery FAQ | TRMNL Help Center](#device-battery-faq-trmnl-help-center) - [Mirroring a Device | TRMNL Help Center](#mirroring-a-device-trmnl-help-center) - [Finding your TRMNL Mac Address | TRMNL Help Center](#finding-your-trmnl-mac-address-trmnl-help-center) - [Mashups | TRMNL Help Center](#mashups-trmnl-help-center) - [How to change my time zone | TRMNL Help Center](#how-to-change-my-time-zone-trmnl-help-center) - [Manually flash firmware | TRMNL Help Center](#manually-flash-firmware-trmnl-help-center) - [Custom plugins with Apple Shortcuts | TRMNL Help Center](#custom-plugins-with-apple-shortcuts-trmnl-help-center) --- # Private Plugins | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_eb060beb1c) [](#h_9d0511cca2) [](#h_9de5a95e77) [](#h_ce1d27714d) [](#h_db7030f8b8) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Private Plugins Create a plugin with our simple WYSIWYG editor. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated this week Table of contents [](#h_eb060beb1c) [](#h_9d0511cca2) [](#h_9de5a95e77) [](#h_ce1d27714d) [](#h_db7030f8b8) TRMNL customers with the Developer add-on may use our API to quickly and easily create a plugin for themselves and others. Here's a 5 minute demo that showcases what's possible, and how easy it is to get started. Only limited coding knowledge is required. **Step 1 - Upgrade your Account** --------------------------------- While logged into TRMNL, hover the device picker dropdown and click on the gear cog icon. Scroll down to "Developer perks" and click to upgrade. This one-time unlocks several new features on your account, forever. Learn more [here](https://usetrmnl.com/blog/developer-edition) . If you chose the "Developer edition" package during purchase, this will automatically be applied on your account and no additional action is required. **Step 2 - Create a** Private **Plugin** ---------------------------------------- From the Plugins tab, search for "Private Plugin" or "Public Plugin" to begin building. In the example below we'll follow along with a new "Private Plugin." These may still be shared with others as [Recipes](https://help.usetrmnl.com/en/articles/10122094-plugin-recipes) , but for even more control, consider [Public Plugins](https://docs.usetrmnl.com/go/plugin-marketplace/introduction) . Let's start with the **Name**. This is for your eyes only, and will help you keep track of all private plugins from both the Playlists interface and the previous screen. You can build as many plugins as you'd like. [![](https://downloads.intercomcdn.com/i/o/1089745535/2ebbbd1ce5582659ccbadb90/image.png?expires=1743477300&signature=ca60b1be6a5f0e474d6742685cd0445ab345cbfa730ab8d8ff3d7bff13ea613f&req=dSAvH856mIRcXPMW1HO4zXaR22IYAp6qrRLyap2j1r0KObPgBjTwTgPgddKE%0A3WbFrZubrfbpkFimgbU%3D%0A)](https://downloads.intercomcdn.com/i/o/1089745535/2ebbbd1ce5582659ccbadb90/image.png?expires=1743477300&signature=ca60b1be6a5f0e474d6742685cd0445ab345cbfa730ab8d8ff3d7bff13ea613f&req=dSAvH856mIRcXPMW1HO4zXaR22IYAp6qrRLyap2j1r0KObPgBjTwTgPgddKE%0A3WbFrZubrfbpkFimgbU%3D%0A) Next is your plugin's **Strategy**. This determines how TRMNL will receive data that gets rendered on a device screen. If you choose Webhook, you'll need to set up your own web service that sends a POST request to TRMNL with a payload of content (max 2kb size). You don't necessarily need a server for this option -- consider [Apple Shortcuts](https://intercom.help/trmnl/en/articles/10108737-custom-plugins-with-apple-shortcuts) , Google Sheets + App Scripts (with automation timers), free Cloudflare Workers, a free REPLit account, GitHub Actions, or a free PythonAnywhere account. If you choose Polling, TRMNL will fetch this content on your behalf via GET request. [![](https://downloads.intercomcdn.com/i/o/1089746456/a71016d7afd7ddea93afe7a1/image.png?expires=1743477300&signature=a448d68c99196add17d1825d0b6a2614afc694af4594d0af5bb21c7f10818efc&req=dSAvH856m4VaX%2FMW1HO4zSVqrD3OUD4RR25HwBgroEoVnX4Fi5mSOKQgDurx%0Acrp0GjVt49FT1yYjF90%3D%0A)](https://downloads.intercomcdn.com/i/o/1089746456/a71016d7afd7ddea93afe7a1/image.png?expires=1743477300&signature=a448d68c99196add17d1825d0b6a2614afc694af4594d0af5bb21c7f10818efc&req=dSAvH856m4VaX%2FMW1HO4zSVqrD3OUD4RR25HwBgroEoVnX4Fi5mSOKQgDurx%0Acrp0GjVt49FT1yYjF90%3D%0A) **Polling URL(s)** If you choose the Polling strategy, TRMNL needs to know where to fetch this data. Provide 1 or more URLs, line-break separated, in the textarea box. The response payloads of these URLS will be available as `IDX_` (index-based) nodes within the `{{ merge_variables }}` payload on the Markup Editor view, explained later. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421549715/7e073875f47d75ed082bb0c53aaa/trmnl-plugin-polling-urls.png?expires=1743477300&signature=f2789ef65c90b08e804399976ce487e3b0dfaa264aab92eb7b73a8ac7c0e94a9&req=dSQlF8x6lIZeXPMW1HO4zX86NapuoKa2ok7j0jEDhI2UihTsz1P%2BfJh3UUAD%0A3pR9GRHNcBApEOjUFHY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421549715/7e073875f47d75ed082bb0c53aaa/trmnl-plugin-polling-urls.png?expires=1743477300&signature=f2789ef65c90b08e804399976ce487e3b0dfaa264aab92eb7b73a8ac7c0e94a9&req=dSQlF8x6lIZeXPMW1HO4zX86NapuoKa2ok7j0jEDhI2UihTsz1P%2BfJh3UUAD%0A3pR9GRHNcBApEOjUFHY%3D%0A) **Note**: your polling url(s) may access values from custom form fields via `{{ form_field_keyname }}` interpolation. See more details below in "Form Fields." **Polling Verb** Defaults to GET, but POST is also available. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421550724/a268dcdca914f10e16d8973c47ab/trmnl-plugin-polling-verb.png?expires=1743477300&signature=c6f4891c0f5850af916ed5e3565558412e31fc93dd3ccb78e56d57544a9700d3&req=dSQlF8x7nYZdXfMW1HO4zfiDwUm6KyKGd3uo8I3UZVSqnP4nF%2BTdskyD3LpT%0A%2BPiZoEOUNUaNULeDwSI%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421550724/a268dcdca914f10e16d8973c47ab/trmnl-plugin-polling-verb.png?expires=1743477300&signature=c6f4891c0f5850af916ed5e3565558412e31fc93dd3ccb78e56d57544a9700d3&req=dSQlF8x7nYZdXfMW1HO4zfiDwUm6KyKGd3uo8I3UZVSqnP4nF%2BTdskyD3LpT%0A%2BPiZoEOUNUaNULeDwSI%3D%0A) **Polling Headers** You may also add headers to your Polling URL (optional). [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1252291524/bae98f0da4f778f6292655c82872/trmnl-private-plugin-polling-headers.png?expires=1743477300&signature=8d7ba5273f85a8afb6e03d75fc719ab75f109dd6a6e4077a6b78a11ec725c171&req=dSIiFMt3nIRdXfMW1HO4zW4tUAFcDU9F0mYLtnoJ5yo3%2BskxMg74WIYPCkTI%0AnW49C16PhnkROkM2fn0%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1252291524/bae98f0da4f778f6292655c82872/trmnl-private-plugin-polling-headers.png?expires=1743477300&signature=8d7ba5273f85a8afb6e03d75fc719ab75f109dd6a6e4077a6b78a11ec725c171&req=dSIiFMt3nIRdXfMW1HO4zW4tUAFcDU9F0mYLtnoJ5yo3%2BskxMg74WIYPCkTI%0AnW49C16PhnkROkM2fn0%3D%0A) Assign header key/values with = and separate them with `&`. So `authorization=bearer xxx&content-type=application/json` becomes: ​ { "authorization":"bearer xxx", "content-type":"application/json" } If a key/value requires an `=` sign in the value, for example `bearer jwt==`, simply encode it as `%3D`, so `bearer%20jwt%3D%3D`. To get started quickly, we've prepared a public endpoint with simple JSON in the response: `https://usetrmnl.com/custom_plugin_example_data.json` To test how a pure collection response is handled, use this: ​`https://usetrmnl.com/custom_plugin_example_data.json?collection_only=true` To confirm your headers are formatted correctly, make a GET to our example endpoint above with `authorization=token qwerty` as one of your header values for a special surprise in the response. ;) **Note**: your polling headers may access values from custom form fields via `{{ form_field_keyname }}` interpolation. See more details below in "Form Fields." **Polling Body** The last of several Polling strategy options. Here you can provide a JSON object to be included as a body payload. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421552014/150fff7bca98cf1aa887763be347/trmnl-plugin-polling-body.png?expires=1743477300&signature=b4cd6e7e71c4ddc80a2f74b37268c2aa755be68c7d7e606aff79cec4caf07bf3&req=dSQlF8x7n4FeXfMW1HO4ze4bVSNC1nN%2BayVu9DZMGVLSYao0u9mZD%2FVFJsnr%0AtTFgGm354GbgvikWdy8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1421552014/150fff7bca98cf1aa887763be347/trmnl-plugin-polling-body.png?expires=1743477300&signature=b4cd6e7e71c4ddc80a2f74b37268c2aa755be68c7d7e606aff79cec4caf07bf3&req=dSQlF8x7n4FeXfMW1HO4ze4bVSNC1nN%2BayVu9DZMGVLSYao0u9mZD%2FVFJsnr%0AtTFgGm354GbgvikWdy8%3D%0A) **Note**: your polling body payload may access values from custom form fields via `{{ form_field_keyname }}` interpolation. See more details below in "Form Fields." **Form Fields** Another optional feature. Here you can create your own GUI for this plugin, and then interpolate those values into your markup, polling URL, or polling headers. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1379906998/63b6d30a01b666cdd6c8049eb755/trmnl-form-fields.png?expires=1743477300&signature=b5e26382410b16d29650f966a19b0dbbb88887ef138c09f16cd8685bb179d0f2&req=dSMgH8B%2Bm4hWUfMW1HO4zXi8t6ItDwqi0pjtr4JWQygCjFgyOZ1rQ%2FJLxIwB%0AEFHjSsBDwRVIyAUxYvY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1379906998/63b6d30a01b666cdd6c8049eb755/trmnl-form-fields.png?expires=1743477300&signature=b5e26382410b16d29650f966a19b0dbbb88887ef138c09f16cd8685bb179d0f2&req=dSMgH8B%2Bm4hWUfMW1HO4zXi8t6ItDwqi0pjtr4JWQygCjFgyOZ1rQ%2FJLxIwB%0AEFHjSsBDwRVIyAUxYvY%3D%0A) To access form field values in your markup, traverse your merge variables via: {{ trmnl.plugin\_settings.custom\_fields\_values }} #=> {"api\_key" => "qwerty"} To access form field values in your Polling URL or Polling Headers: \# Polling URL - before https://my-store.com/api/v1/products?api\_key=qwerty-asdf \# Polling URL - after https://my-store.com/api/v1/products?api\_key={{ api\_key }} \# Polling Headers - before authorization=bearer token-here \# Polling Headers - after authorization=bearer {{ api\_key }} Learn how to build custom fields [here](https://intercom.help/trmnl/en/articles/10513740-custom-plugin-form-builder) . **Remove Bleed Margin** Finally, decide whether you want to remove the small amount of padding (5-10 pixels) that is added to all plugins by default, including our native ones. We suggest building your plugin first, then deciding if this is necessary. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1321365894/bdd30856ed7a74f939285b040d99/image.png?expires=1743477300&signature=bb6489661eea3e90437ded684b5d107f7aa87a8bb1c6ba6053d88472e21cff3d&req=dSMlF8p4mIlWXfMW1HO4zRXv%2FXlAPMxWnGT9Q3MiusP4qZdBtfLDQDDJzTD2%0AVA8TUfpFKEW1GKlTJEk%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1321365894/bdd30856ed7a74f939285b040d99/image.png?expires=1743477300&signature=bb6489661eea3e90437ded684b5d107f7aa87a8bb1c6ba6053d88472e21cff3d&req=dSMlF8p4mIlWXfMW1HO4zRXv%2FXlAPMxWnGT9Q3MiusP4qZdBtfLDQDDJzTD2%0AVA8TUfpFKEW1GKlTJEk%3D%0A) This option is primarily for plugins that want to display image content edge-to-edge. It is not a great solution for fitting more text on the screen. Click Save in the top right to finish stubbing out your plugin. Step 3 - Design your Plugin --------------------------- **Markup** is the last and most important configuration. This is the frontend HTML template for your data to be merged into. After saving your plugin above, click the "Edit Markup" button from your plugin settings page. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1242525006/381be935dd8d705ed4d77ee21039/trmnl-private-plugin-markup-editor.png?expires=1743477300&signature=1935d4d372733647f3cbc08f18010093e4d9a9d69edc0bd64a0807983ef0d654&req=dSIjFMx8mIFfX%2FMW1HO4zdkSYpi3U2MtF%2F%2BDdck6EkeVbNU7sLc7SNokuCI4%0Ak3O97jjR49CnsD3n%2BhY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1242525006/381be935dd8d705ed4d77ee21039/trmnl-private-plugin-markup-editor.png?expires=1743477300&signature=1935d4d372733647f3cbc08f18010093e4d9a9d69edc0bd64a0807983ef0d654&req=dSIjFMx8mIFfX%2FMW1HO4zdkSYpi3U2MtF%2F%2BDdck6EkeVbNU7sLc7SNokuCI4%0Ak3O97jjR49CnsD3n%2BhY%3D%0A) Expand the "Quick-start Examples" section to start working with valid markup right away. Then use our [framework docs](https://usetrmnl.com/framework) for help designing the perfect screen to showcase your content. TRMNL supports the popular [Liquid](https://github.com/Shopify/liquid) templating engine to handle merge variables, which means you can leverage `{{ variable }}` syntax in your Markup to merge in data when you want to create a new screen. If you chose "Polling" as your Strategy in the previous step, click the "Force Refresh" from the screenshot above to grab fresh data. Then you can work these variables into your markup like so: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1242527185/1decfe2eb5ebcfbcc0ef624d48f4/trmnl-merge-variable-interpolation.png?expires=1743477300&signature=4c220479dfae8e8949e782aee679ab08dd90cae9a14268800dd2f78c8b8236e1&req=dSIjFMx8moBXXPMW1HO4zbNbgAhrwc3PDuRtsmlABwuZP68xAHM8tQwcBdoc%0Apu1tvgr1H9fa2iuVpjE%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1242527185/1decfe2eb5ebcfbcc0ef624d48f4/trmnl-merge-variable-interpolation.png?expires=1743477300&signature=4c220479dfae8e8949e782aee679ab08dd90cae9a14268800dd2f78c8b8236e1&req=dSIjFMx8moBXXPMW1HO4zbNbgAhrwc3PDuRtsmlABwuZP68xAHM8tQwcBdoc%0Apu1tvgr1H9fa2iuVpjE%3D%0A) Liquid is a powerful templating library, complete with `for` / `each` loops as well as filters like `{{ text | truncate: 15 }}` and many more. You may also notice some default variables inside a `{{ trmnl }}` namespace from the "Your Variables" dropdown. These are optional values that may be useful to customize your plugin's markup, for example by merging in a TRMNL user's first name, or leveraging their time zone to make a client-side calculation. Liquid 101 guide: ​[https://help.usetrmnl.com/en/articles/10671186-liquid-101](https://help.usetrmnl.com/en/articles/10671186-liquid-101) Unofficial Liquid docs: [https://shopify.github.io/liquid/](https://shopify.github.io/liquid/) Advanced, TRMNL-specific filters: [https://help.usetrmnl.com/en/articles/10347358-custom-plugin-filters](https://intercom.help/trmnl/en/articles/10347358-custom-plugin-filters) **Step 4 - Share your Work** ---------------------------- Totally optional, but we'd love to see what you built. Join the Developer-only Discord server (invite link inside [Devices](https://usetrmnl.com/devices/) > settings page) and we'll help you show it off on social media, publish to [our OSS collection](https://github.com/usetrmnl/plugins) , and more. **Troubleshooting** ------------------- **I don't see any content** If you select Webhook as your strategy, you must `POST` data to the TRMNL server. Instructions to build this URL are available in our [API docs](https://docs.usetrmnl.com/trmnl-internal-documentation/custom-plugins/create-a-screen#create-a-screen-webhook-strategy) . If you select Polling as your strategy, TRMNL will `GET` from that endpoint and assume a JSON response. In all cases, the latest private plugin screen renders will appear first inside the Plugins > Private Plugin UI, then\* on a device per your configured Playlist ordering and refresh rate. Click 'force refresh' from the Plugin Settings page to request a new screen generation at any time, versus waiting on your device to refresh on a schedule. **Mashups with my private plugin are broken or duplicated** See [Troubleshooting Mashups](https://help.usetrmnl.com/en/articles/10168132-mashups#h_d8837b6acf) . **My JavaScript isn't doing anything / only works in live preview** Due to our rendering logic, you'll have more success with client side mutations by wrapping your JS like this: ​ document.addEventListener("DOMContentLoaded", function(e) { // code goes here }); This strategy is more reliable than `window.onload = function () {}` or other approaches. **I'm sending data but the screen isn't refreshing** By default, our backend skips generating screens if the merge variables are the same between requests. This applies to private and native plugins. If you're attempting to "force generate" a screen, perhaps in order to test new Markup or styling, you can work around this by by clicking the "Force Refresh" feature below your Plugin UUID. [![](https://downloads.intercomcdn.com/i/o/1092133943/a79ce98042f860f798a0b4dd/custom-plugin-force-refresh-feature.png?expires=1743477300&signature=ca7ad810ebbb23649da7d90ebcb365a39e98174ea6d18436d4918096ca93c761&req=dSAuFMh9nohbWvMW1HO4zQzOUb33DrYZbAAcHgy%2Fy1rPBhsCZhuSElfz41Pz%0AvtpL3LvhixgOkLWJ9dQ%3D%0A)](https://downloads.intercomcdn.com/i/o/1092133943/a79ce98042f860f798a0b4dd/custom-plugin-force-refresh-feature.png?expires=1743477300&signature=ca7ad810ebbb23649da7d90ebcb365a39e98174ea6d18436d4918096ca93c761&req=dSAuFMh9nohbWvMW1HO4zQzOUb33DrYZbAAcHgy%2Fy1rPBhsCZhuSElfz41Pz%0AvtpL3LvhixgOkLWJ9dQ%3D%0A) **Payload data isn't merging into my markup template** If you select Polling as your strategy, we suggest putting relevant merge variables in the root node of your payload. GET /some-endpoint.json \# works { name: "Jimmy", age: 43 } \# won't work unless markup uses {{ data.name }}, {{ data.age }} etc { data: { name: "Jimmy", age: 43 } } If your root node is an array, you can access it via `data[0]`, `data[1]`, and so on. Get started with Liquid syntax [here](https://help.usetrmnl.com/en/articles/10671186-liquid-101) , or read our advanced guide [here](https://help.usetrmnl.com/en/articles/10693981-advanced-liquid) . Did this answer your question? 😞😐😃 --- # Plugins | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) Plugins ![](https://intercom.help/trmnl/assets/svg/icon:folder/FFF) Connecting your favorite apps to TRMNL. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) By Ryan1 author43 articles [GitHub Commit Graph](https://help.usetrmnl.com/en/articles/8797310-github-commit-graph) [Days Left (This Year)](https://help.usetrmnl.com/en/articles/8797325-days-left-this-year) [Google CalendarView your upcoming schedule, apointments, and tasks.](https://help.usetrmnl.com/en/articles/9483539-google-calendar) [YouTube AnalyticsSee how your channel is doing, hands-free.](https://help.usetrmnl.com/en/articles/9483658-youtube-analytics) [ShopifySales and order stats, at your fingertips.](https://help.usetrmnl.com/en/articles/9502507-shopify) [Private PluginsCreate a plugin with our simple WYSIWYG editor.](https://help.usetrmnl.com/en/articles/9510536-private-plugins) [RobinhoodMonitor your portfolio performance over time.](https://help.usetrmnl.com/en/articles/9544311-robinhood) [Simple AnalyticsMonitor web traffic, in peace.](https://help.usetrmnl.com/en/articles/9575334-simple-analytics) [Lunch MoneySimplified personal finances.](https://help.usetrmnl.com/en/articles/9613508-lunch-money) [PolymarketPopular predictions, ending soon.](https://help.usetrmnl.com/en/articles/9643261-polymarket) [The OfficeYour favorite quotes from your favorite show.](https://help.usetrmnl.com/en/articles/9654172-the-office) [ReadwiseGet the most out of what you read.](https://help.usetrmnl.com/en/articles/9787214-readwise) [beehiivThe newsletter platform built for growth](https://help.usetrmnl.com/en/articles/9883235-beehiiv) [Google AnalyticsWeb traffic and visitor analytics.](https://help.usetrmnl.com/en/articles/9922832-google-analytics) [Upcoming MoviesWhat's playing in theaters, now or in the near future.](https://help.usetrmnl.com/en/articles/9977737-upcoming-movies) [Todo ListSimple tracker that supports "doing" and "done" lists.](https://help.usetrmnl.com/en/articles/9977738-todo-list) [Shopping ListSimple tracker for upcoming purchases.](https://help.usetrmnl.com/en/articles/9977739-shopping-list) [SalesforceOpportunity views at a glance.](https://help.usetrmnl.com/en/articles/9986527-salesforce) [StatuspageUptime and incident tracking for your tools.](https://help.usetrmnl.com/en/articles/9987937-statuspage) [Stock PricePublic securities valuation by ticker](https://help.usetrmnl.com/en/articles/10031211-stock-price) [WeatherYour local forecast.](https://help.usetrmnl.com/en/articles/10033272-weather) [GumroadSee how much stuff you're selling.](https://help.usetrmnl.com/en/articles/10075558-gumroad) [Email MeterBenchmark stats from your Gmail or Microsoft inbox.](https://help.usetrmnl.com/en/articles/10113402-email-meter) [ChatGPTWhat can ChatGPT help you with?](https://help.usetrmnl.com/en/articles/10140115-chatgpt) [RSS FeedGet updates from your favorite website, blog and online publications](https://help.usetrmnl.com/en/articles/10186142-rss-feed) [Outlook CalendarView your upcoming schedule, apointments, and tasks.](https://help.usetrmnl.com/en/articles/10208408-outlook-calendar) [ScreenshotCapture any web page.](https://help.usetrmnl.com/en/articles/10302121-screenshot) [ScreensaverPeaceful graphics to keep you in flow.](https://help.usetrmnl.com/en/articles/10302141-screensaver) [GitHub ContributorsSummarized committer progress.](https://help.usetrmnl.com/en/articles/10302147-github-contributors) [Language LearningDiscover new words in your target language.](https://help.usetrmnl.com/en/articles/10302173-language-learning) [Apple CalendarKnow what's on your schedule.](https://help.usetrmnl.com/en/articles/10313980-apple-calendar) [Fastmail CalendarKnow what's on your schedule.](https://help.usetrmnl.com/en/articles/10316976-fastmail-calendar) [Custom plugin filtersImprove content formatting with Liquid and localizations.](https://help.usetrmnl.com/en/articles/10347358-custom-plugin-filters) [Nextcloud CalendarKnow what's on your schedule.](https://help.usetrmnl.com/en/articles/10356811-nextcloud-calendar) [Tempest Weather StationDedicated e-ink screen for your local climate.](https://help.usetrmnl.com/en/articles/10447991-tempest-weather-station) [Eight SleepComing soon.](https://help.usetrmnl.com/en/articles/10467974-eight-sleep) [Custom plugin form builderCreate user-facing configuration fields in YAML.](https://help.usetrmnl.com/en/articles/10513740-custom-plugin-form-builder) [Importing and exporting private pluginsYou worked hard developing your plugin - now share it!](https://help.usetrmnl.com/en/articles/10542599-importing-and-exporting-private-plugins) [Compare custom plugin typesThere are several ways to write a custom plugin - which is right for your application?](https://help.usetrmnl.com/en/articles/10546870-compare-custom-plugin-types) [ParcelTrack package deliveries](https://help.usetrmnl.com/en/articles/10670813-parcel) [Liquid 101Start building custom TRMNL plugins with no coding experience.](https://help.usetrmnl.com/en/articles/10671186-liquid-101) [Advanced LiquidPro tips for TRMNL plugin templating.](https://help.usetrmnl.com/en/articles/10693981-advanced-liquid) [Alias PluginFetch encrypted content from any origin server.](https://help.usetrmnl.com/en/articles/10701448-alias-plugin) --- # TRMNL Help Center [Skip to main content](#main-content) [![](https://intercom.help/trmnl/assets/svg/icon:book-bookmark/FFF)\ \ General\ \ Getting started, FAQ, advanced features.\ \ ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png)\ \ By Ryan1 author20 articles](https://help.usetrmnl.com/en/collections/7820478-general) [![](https://intercom.help/trmnl/assets/svg/icon:folder/FFF)\ \ Plugins\ \ Connecting your favorite apps to TRMNL.\ \ ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png)\ \ By Ryan1 author43 articles](https://help.usetrmnl.com/en/collections/7820559-plugins) --- # Advanced Liquid | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_804d6d5cf1) [](#h_7e25b4c812) [](#h_6dea3e2d07) [](#h_22dbc6f9d3) [](#h_c8293633b2) [](#h_8a9d897c91) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Advanced Liquid Pro tips for TRMNL plugin templating. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over a month ago Table of contents [](#h_804d6d5cf1) [](#h_7e25b4c812) [](#h_6dea3e2d07) [](#h_22dbc6f9d3) [](#h_c8293633b2) [](#h_8a9d897c91) This guide's purpose is to serve as a growing list of advanced Liquid topics. If you're not familiar with Liquid, we recommend starting with our [Liquid 101](https://help.usetrmnl.com/en/articles/10671186-liquid-101) guide. **Timezone Conversion** ----------------------- When developing [Recipes](https://help.usetrmnl.com/en/articles/10122094-plugin-recipes) that can be installed and used by a larger TRMNL audience, it's important to take the user's timezone into consideration, especially if your recipe is going to display date or time based information. ### Dates & Times Let's say a recipe uses an API that responds with ISO8601 dates like this: `2025-02-28T13:35:00Z`. If you simply pipe this into Liquid's `date` filter, the user will see the date/time in its original UTC timezone. To convert this date/time into the user's local timezone, we can leverage the variable `trmnl.user.utc_offset` that TRMNL injects into every plugin. This variable holds the user's timezone offset in seconds, so we can use it like this: {{ "2025-02-28T13:35:00Z" | date: "%s" | plus: trmnl.user.utc\_offset | date: "%H:%M" }} The first date filter with `%s` converts the date/time into a unix epoch. We then add the user's timezone offset to that, and pipe it again to the date filter to format as we want. Suppose the user's offset is -3 hours (-10800 seconds), this would display the time as `10:35`. ### Dates Only Be mindful when working with date-only cases like `2025-02-28`. When you pipe this into Liquid's date filter, it will assume the time is `00:00:00`. If you apply the previous concept to this case, a user who is behind UTC is going to see a date the day before. This is because `2025-02-28T00:00:00` in UTC will convert to `2025-02-27T21:00:00` in UTC-3 (for example). You'll need to analyze this on a case by case basis to decide if the conversion is relevant or if it's going to confuse the end-user who installs your plugin. ### Last updated/refreshed at For some recipes it may be interesting to display the time at which the last update/refresh occurred. Liquid's date filter supports the special keyword `now` to represent the current date/time. We can apply what we learned before to also show this date/time in the user's timezone:

Updated at {{ "now" | date: "%s" | plus: trmnl.user.utc\_offset | date: "%H:%M" }}

Random Numbers -------------- Liquid does not have native filters to generate random numbers, but fortunately we can adapt the `date` and `modulo` filters for this purpose! ### Simple random number To generate a simple random number between 0 and 9: {% assign random\_number = "now" | date: "%N" | modulo: 10 %} This is useful when you want to select a random element from a collection, as you could do: {%liquid assign rand\_index = "now" | date: "%N" | modulo: my\_collection.size assign rand\_item = my\_collection\[rand\_index\] %} ### Random between an interval Here's a more complex example that generates a random number between two other numbers, with both of them included. {%liquid # random number between 5 and 10 assign min\_range = 5 assign max\_range = 10 assign range = max\_range | minus: min\_range | plus: 1 assign random\_number = "now" | date: "%N" | modulo: range | plus: min\_range %} Type Conversion --------------- Liquid is capable of doing some magic type conversion between numbers and strings behind the scenes. Let's say you have the number `1.5` but you want to display it using a comma as the separator. One would think that the `replace` filter only works on strings, but it actually works on numbers too: {{ 1.5 | replace: ".", "," }} ### Decimal Numbers If you try the code below you'll be surprised to see the number `0` displayed as a result: {{ 1 | divided\_by: 2 }} This is because both numbers are integers, so Liquid also outputs the result as an integer. When you need the result to be a decimal number, simply "force" the divisor or dividend to also be a decimal number. For example: {{ 1.0 | divided\_by: unknown\_number }} This way, if `unknown_number` was actually the integer `2`, the result would be correctly displayed as `0.5`. **Left Padding Strings** ------------------------ Sometimes you may need to left-pad strings with other characters, such as zeroes or spaces. For example, let's say you're converting a number of seconds into hours and minutes to display as as `hh:mm`. You do all the math and end up with something like this: `1:3`. Wouldn't it make more sense to display it as `01:03`? Using the `prepend` and `slice` filters we can achieve this result: ​ {%liquid # original values (suppose these were calculated) assign hours = 1 assign minutes = 3 # left-padding with zero assign hours = hours | prepend: "00" | slice: -2, 2 assign minutes = minutes | prepend: "00" | slice: -2, 2 %} You can modify this logic by changing the padding characters in the `prepend` filter and adjusting the lengths accordingly in the `slice` filter. **Mixing Liquid and JavaScript** -------------------------------- One commonly overlooked concept when developing TRMNL plugins is that you can actually mix Liquid and JavaScript together. There are many use cases for this, but a very common one is building [Charts](https://usetrmnl.com/framework/chart) using data returned from an API. Mixing both worlds is just a matter of using Liquid syntax inside JS code: When mixing Liquid and JS, we need to pay attention to the data types of the Liquid variables, as not all of them translate directly to cognate JS data types. ### Strings When you have a Liquid string that you want to use as a JS string, don't forget to enclose it in quotes: ### Numbers and Booleans Numbers and Booleans are the only Liquid data types that convert naturally to JS: ### Lists/Arrays Lists are the most controversial case as you cannot directly assign a Liquid list to a JS array like the previous examples. You need to iterate through the Liquid list values and push each one of them to the JS array: You'll come across this pattern when creating arrays to be used for a chart's series data. ### Objects Liquid objects also do not translate directly to JS objects. Fortunately, TRMNL has implemented a custom `json` filter that does exactly this: Be sure to check out the resources below for more TRMNL custom filters. **More Resources** ------------------ * [TRMNL Custom Liquid Filters](https://help.usetrmnl.com/en/articles/10347358-custom-plugin-filters) : a growing list of custom Liquid filters developed by and available only on TRMNL. Did this answer your question? 😞😐😃 --- # Liquid 101 | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_8242ed534f) [](#h_48054a462a) [](#h_a875cf160c) [](#h_36fa49cde9) [](#h_970e641a3f) [](#h_2b658533cb) [](#h_03ea88a587) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Liquid 101 Start building custom TRMNL plugins with no coding experience. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_8242ed534f) [](#h_48054a462a) [](#h_a875cf160c) [](#h_36fa49cde9) [](#h_970e641a3f) [](#h_2b658533cb) [](#h_03ea88a587) When building [Private Plugins](https://help.usetrmnl.com/en/articles/9510536-private-plugins) in TRMNL, we need a way to display the data gathered by the plugin in our TRMNL screen. This is where "Liquid" comes in -- it's a templating language that bridges the gap between raw data and the visual layout of your plugin. **Quickstart** -------------- Let's say we have a plugin that receives data about a task to be done, and this is represented by the following JSON data structure: ​ { "name": "Walk the dog", "date": "2025-02-24", "late": true, "location": { "city": "New York" } } To display this data in our TRMNL's screen, we can write a simple HTML snippet like below and the `{{ name }}` and `{{ date }}` would automatically be replaced by the corresponding values on the JSON.

Task "{{ name }}" is due on {{ date }}

Result: Task "Walk the dog" is due on 2025-02-24 With this small example, we have just learned the most basic concept of Liquid. Enclosing any property of our JSON document between `{{` and `}}` is how we output the value of a property or a variable. We can also do what's called "dot notation" to navigate on the JSON structure and display deeply nested properties like this `location.city` example:

Task "{{ name }}" is due on {{ date }} in {{ location.city }}

Result: Task "Walk the dog" is due on 2025-02-24 in New York **Variables** ------------- You can also create variables in Liquid and assign values to them for later display. Usually we employ variables when we need to modify the JSON data of the plugin, for example by doing some math with one the properties. To create a variable we use the special keyword `assign` like below: {% assign my\_variable = "my value" %} We can now display this value by doing `{{ my_variable }}` like we did before with the JSON properties. Also notice how Liquid code is written between the delimiters `{%` and `%}`. **Conditionals** ---------------- We can create conditional expressions in Liquid that are evaluated against our data and decide if a block of code is executed or not. Let's say we want to show a warning emoji (⚠️) next to the task's date if it's running late. For this we can create an `if` expression that evaluates if the value of the `late` property equals `true`. {% if late == true %}

Task "{{ name }}" is due on ⚠️ {{ date }} ⚠️

{% else %}

Task "{{ name }}" is due on {{ date }}

{% endif %} Result: Task "Walk the dog" is due on ⚠️ 2025-02-24 ⚠️ Conditionals do not need to check for equality only. Liquid supports all the standard logical operators to check for difference, greater than, less than or equal, and so on. **Handling Lists** ------------------ There are many cases where the data we want to display is actually a list of things. Let's reimagine our task example as a list of tasks represented by the following JSON structure: { "tasks": \[ \ { \ "name": "Walk the dog", \ "date": "2025-02-24", \ "late": true, \ }, \ { \ "name": "Half-Life 3 Release", \ "date": "2033-10-08", \ "late": false, \ } \ \] } We now have a property called `tasks` that holds a list with two tasks inside. To display all the tasks on our TRMNL we need to loop through the list and display the properties of each task individually. This can be achieved with iteration, or a `for` loop as we usually call it. Rewriting our code to handle the list and print each item looks like this: {% for task in tasks %}

Task "{{ task.name }}" is due on {{ task.date }}

{% endfor %} Result: Task "Walk the dog" is due on 2025-02-24 Task "Half-Life 3 Release" is due on 2033-10-08 As you can see, the code `for task in tasks` actually creates a temporary variable called `task` that holds all the properties of the current task being iterated. That's why we are able to display the property values using `{{ task.name }}` instead of just `{{ name }}` as we did before. **Putting it all together** --------------------------- Now that we already know how to apply conditionals and handle lists, mixing both of these concepts is where all the fun begins! Let's say we only want to display the tasks that are currently late, we can combine `for` and `if` to loop through the list and filter only the tasks we're interested in: {% for task in tasks %} {% if task.late == true %}

Task "{{ task.name }}" is due on {{ task.date }}

{% endif %} {% endfor %} Another way of accomplishing this would be using a "filter", as we'll see on the next section. **Filters** ----------- Filters are a very powerful construct in Liquid as they allow us to manipulate and transform our data in many different ways. Let's start with a very simple example, where we would like to display our task name with uppercase letters. We can employ the `upcase` filter for this:

Task "{{ task.name | upcase }}" is due on {{ task.date }}

Result: Task "WALK THE DOG" is due on 2025-02-24 Now let's rewrite the example above that showed only the late tasks to use the `where` filter instead. This filter acts upon a list of objects, and returns a new list with only the objects that pass a certain criteria: {% assign late\_tasks = tasks | where: "late", true %} {% for task in late\_tasks %}

Task "{{ task.name }}" is due on {{ task.date }}

{% endfor %} Using filters is just a matter of "piping" variables into them. This means **you can chain filters together** to achieve the desired result in just one line of code. Check out this example that calculates a percentage: {% assign value = 20.0 %} {% assign total = 50.0 %} {% assign percentage = value | divided\_by: total | times: 100 | round %}

{{ value }} is {{ percentage }}% of {{ total }}

Result: 20 is 40% of 50 Liquid has more than 50 filters available to help us with all kinds of data manipulation, doing math, handling dates, filtering lists and a lot more. Be sure to check the resources below for the full documentation of Liquid and some of TRMNL's own custom filters. **More Resources** ------------------ * [Official Liquid Documentation](https://shopify.github.io/liquid/) : the official Liquid documentation, it covers all the topics on this guide in detail and also has the full list of supported filters. * [TRMNL Custom Liquid Filters](https://help.usetrmnl.com/en/articles/10347358-custom-plugin-filters) : a growing list of custom Liquid filters developed by and available only on TRMNL. Did this answer your question? 😞😐😃 --- # Days Left (This Year) | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Days Left (This Year) ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over a year ago Enabling our "days left" progress bar to visualize the time left in the current year is a simple and fun way to remind yourself of what's important. Inside TRMNL, head to Plugins > Days Left (This Year), enable the plugin, and hit save. Going forward, TRMNL will produce a progress bar like this one below to reflect the percentage completion between January 1st of this year and December 31st. [![](https://downloads.intercomcdn.com/i/o/929081564/52cb779d98736e0d64caafe1/image.png?expires=1743477300&signature=980bc57df1ad22643ef66d58d097258ebfd798b4b8de88b83f6c47865954600d&req=fSIuFsF%2FmIdbFb4f3HP0gLQ%2BvXJOYw8bf%2FGjUD0HNme7VioPJvg870IfiZpX%0AhF%2F5V1jllx7nRxgcGA%3D%3D%0A)](https://downloads.intercomcdn.com/i/o/929081564/52cb779d98736e0d64caafe1/image.png?expires=1743477300&signature=980bc57df1ad22643ef66d58d097258ebfd798b4b8de88b83f6c47865954600d&req=fSIuFsF%2FmIdbFb4f3HP0gLQ%2BvXJOYw8bf%2FGjUD0HNme7VioPJvg870IfiZpX%0AhF%2F5V1jllx7nRxgcGA%3D%3D%0A) Did this answer your question? 😞😐😃 --- # GitHub Commit Graph | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) GitHub Commit Graph ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over a year ago Connecting GitHub to TRMNL is a simple and fun way to visualize your coding progress. Inside TRMNL, head to Plugins > GitHub Commit Graph and input your GitHub "slug" username (ex: github.com/**ryanckulp**), then enable the plugin and hit save. Going forward, TRMNL will produce a graph like this one below to reflect your coding frequency and intensity. The darker the square, the more commits you made on that day. [![TRMNL plugin - GitHub Commit Graph](https://downloads.intercomcdn.com/i/o/929079555/a933d84f5d19c95c7b5ed3a1/image.png?expires=1743477300&signature=ecb5556e8091600c22486fc086dc4ed19cecc4f3fc712d18c13d7a9a6c2c266f&req=fSIuFs53mIRaFb4f3HP0gGe8HCmzXiJuLjN6rLV0C1r69ZpOhO1SVLAoVSyE%0AxJgd1NubSVOJXdDs4g%3D%3D%0A)](https://downloads.intercomcdn.com/i/o/929079555/a933d84f5d19c95c7b5ed3a1/image.png?expires=1743477300&signature=ecb5556e8091600c22486fc086dc4ed19cecc4f3fc712d18c13d7a9a6c2c266f&req=fSIuFs53mIRaFb4f3HP0gGe8HCmzXiJuLjN6rLV0C1r69ZpOhO1SVLAoVSyE%0AxJgd1NubSVOJXdDs4g%3D%3D%0A) If you have any questions about this plugin, let us know in the chat widget or via email. Did this answer your question? 😞😐😃 --- # Simple Analytics | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_42aef9ff2e) [](#h_e925caa2d7) [](#h_6807638fd3) [](#h_3685e9308f) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Simple Analytics Monitor web traffic, in peace. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 9 months ago Table of contents [](#h_42aef9ff2e) [](#h_e925caa2d7) [](#h_6807638fd3) [](#h_3685e9308f) Connecting your privacy-first [Simple Analytics](https://www.simpleanalytics.com/?referral=guwiq) (referral link) account to TRMNL takes just a few seconds. **Step 1 - Visit the Simple Analytics plugin** ---------------------------------------------- Inside TRMNL, navigate to Plugins > Simple Analytics. [![](https://downloads.intercomcdn.com/i/o/1107137523/208a30efa24f30ff9f5bd921/simple-analytics-trmnl-integration.png?expires=1743477300&signature=fd5a4d4eb4caa8fa2c899d3450677cb7b7157074af6c712d856734d6da5587f3&req=dSEnEch9moRdWvMW1HO4zVb7Uj9iklsEU1SX8uRlFqBrw2Sdajsoi%2BKzAC2H%0AvvM41bPVfNNUrbfemHs%3D%0A)](https://downloads.intercomcdn.com/i/o/1107137523/208a30efa24f30ff9f5bd921/simple-analytics-trmnl-integration.png?expires=1743477300&signature=fd5a4d4eb4caa8fa2c899d3450677cb7b7157074af6c712d856734d6da5587f3&req=dSEnEch9moRdWvMW1HO4zVb7Uj9iklsEU1SX8uRlFqBrw2Sdajsoi%2BKzAC2H%0AvvM41bPVfNNUrbfemHs%3D%0A) **Step 2 - Connect Simple Analytics** ------------------------------------- Log into your Simple Analytics account and visit [Account Settings > API](https://dashboard.simpleanalytics.com/account#api) . [![](https://downloads.intercomcdn.com/i/o/1107145001/51bc8fae7c5c19f1139c7646/simple-analytics-api-key.png?expires=1743477300&signature=c222b83df731dc0c10f5ada15f822e0ac55c8bc4380d596ed49ebff7eeb029db&req=dSEnEch6mIFfWPMW1HO4zXXI8nfulNLBVfLDB%2FSaMtd1%2ByHQlyaVtO6w7jeA%0Aiyc6kqHYhlzW01TLF8s%3D%0A)](https://downloads.intercomcdn.com/i/o/1107145001/51bc8fae7c5c19f1139c7646/simple-analytics-api-key.png?expires=1743477300&signature=c222b83df731dc0c10f5ada15f822e0ac55c8bc4380d596ed49ebff7eeb029db&req=dSEnEch6mIFfWPMW1HO4zXXI8nfulNLBVfLDB%2FSaMtd1%2ByHQlyaVtO6w7jeA%0Aiyc6kqHYhlzW01TLF8s%3D%0A) Click "Create a key," then set your company name if you haven't already. A key will be created and will look like this: [![](https://downloads.intercomcdn.com/i/o/1107145271/bab181e51d486777ef594145/simple-analytics-api-access-key-value.png?expires=1743477300&signature=7ec374bd61b3f45bb50c8d4f46225f35472eaf63ec88153938d68c67e349a95c&req=dSEnEch6mINYWPMW1HO4zYyoaGVpLpcy7jpgIn0%2FM7rV3PE4btyFnSgAPPD6%0AnphQRXb4HTnOcOV%2Fg9M%3D%0A)](https://downloads.intercomcdn.com/i/o/1107145271/bab181e51d486777ef594145/simple-analytics-api-access-key-value.png?expires=1743477300&signature=7ec374bd61b3f45bb50c8d4f46225f35472eaf63ec88153938d68c67e349a95c&req=dSEnEch6mINYWPMW1HO4zYyoaGVpLpcy7jpgIn0%2FM7rV3PE4btyFnSgAPPD6%0AnphQRXb4HTnOcOV%2Fg9M%3D%0A) Copy your key beginning with `sa_api_key_***` and head back to TRMNL. **Step 3 - Configure Plugin** ----------------------------- 1. Paste your Simple Analytics API Key into the "API Key" field of the plugin settings 2. Add your website's "domain." This is visible from your Simple Analytics dashboard, and is likely just your website without any "http" or "www" prefix (below) 3. Choose a lookback period, between 1 day and 1 month, for data aggregation [![](https://downloads.intercomcdn.com/i/o/1107146267/875097b0733af98d4744f333/simple-analytics-domain.png?expires=1743477300&signature=09db6485bbb97ded5dbe61238f17a851d0c78333e8adbf15c44dd3f653887d67&req=dSEnEch6m4NZXvMW1HO4zVx3%2Bes35%2BONSw%2FTtkhP7iI8QHpMNoPlS4FB8WX0%0AcTj9CMws7I35L25gzi4%3D%0A)](https://downloads.intercomcdn.com/i/o/1107146267/875097b0733af98d4744f333/simple-analytics-domain.png?expires=1743477300&signature=09db6485bbb97ded5dbe61238f17a851d0c78333e8adbf15c44dd3f653887d67&req=dSEnEch6m4NZXvMW1HO4zVx3%2Bes35%2BONSw%2FTtkhP7iI8QHpMNoPlS4FB8WX0%0AcTj9CMws7I35L25gzi4%3D%0A) Click "Save" to activate this plugin. **Step 4 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin aggregating useful stats from Simple Analytics including a pageview histogram, unique visitor count, and [median time on page](https://docs.simpleanalytics.com/explained/time-on-page) very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Plugin recipes | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_b189e269f1) [](#h_820111a310) [](#h_b3fe8fd608) [All Collections](/en/) [General](https://help.usetrmnl.com/en/collections/7820478-general) Plugin recipes Sharing private plugins for other users to install. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 weeks ago Table of contents [](#h_b189e269f1) [](#h_820111a310) [](#h_b3fe8fd608) TRMNL has 3 types of plugins: 1. native, which our team builds + maintains 2. private, which users build for themselves 3. third party, which anyone can build for other users Native plugins include Shopify, reddit, Google Calendar, and [dozens more](https://usetrmnl.com/integrations) . Private plugins range from [college football rankings](https://github.com/usetrmnl/plugins/blob/master/lib/usa_college_football_rankings.md) to [xkcd comics](https://github.com/SnarfulSolutionsGroup/TRMNL-Plugins/blob/main/TRMNL_Comic.md) . Third party plugins include the [ISS](https://usetrmnl.com/plugin_settings/new?keyname=iss_location) (space station) [tracker](https://usetrmnl.com/plugin_settings/new?keyname=iss_location) , Subbly subscription software, and others to come. But in some cases, **users prefer to share private plugins _without_ hosting user data on their own server**. For this we have **Recipes**. **Introducing Recipes** ----------------------- Our [open source plugins repository](https://github.com/usetrmnl/plugins) hosts a growing number of private plugins -- developed originally for a single person -- that have been shared for anyone to enjoy. However setting these up may take time or a bit of coding knowledge. To alleviate these requirements, Recipes provide a 1-click approach to sharing private plugins. **Enabling a Recipe** 1. Visit [Plugins](https://usetrmnl.com/plugins) > scroll down to Recipes 2. Choose one, then click "Install" (_don't see this? read below_) 3. You're done! [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347482540/a779e533a6b24c0f38c2888c8498/trmnl-plugin-recipe-install.png?expires=1743477300&signature=f4bb638cfb0430fe29bef258463970f9f6c37b63aca575b284875efef9a86207&req=dSMjEc12n4RbWfMW1HO4zdSCL4y6gPlnE2lqqQveOaphGhwfboM8bfVSGZXX%0AuFvraO9VbZAUeVtyMEA%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347482540/a779e533a6b24c0f38c2888c8498/trmnl-plugin-recipe-install.png?expires=1743477300&signature=f4bb638cfb0430fe29bef258463970f9f6c37b63aca575b284875efef9a86207&req=dSMjEc12n4RbWfMW1HO4zdSCL4y6gPlnE2lqqQveOaphGhwfboM8bfVSGZXX%0AuFvraO9VbZAUeVtyMEA%3D%0A) **Note**: if the "Install" button is not present, then this Recipe requires user input via 1 or more form fields. Installable Recipes are _read-only_ and render the same image as the parent plugin's instance. Whether a plugin is installable (read-only) or not, if you prefer to _modify_ the Recipe, click "Fork" instead of "Install" in step 2 above. Forking a Recipe will make the markup and other settings editable, as if it was your own, from the Plugins > Private plugin interface. **Install vs Fork** Each approach has pros and cons: * Installed recipes receive automatic updates (bug fixes, markup improvements) * Installed recipe refresh rates are not adjustable * Forked recipes can be modified, including the look and feel or refresh rate * Forked recipes do not receive any updates from the original creator For less technical users, we suggest Installing a Recipe. For more technical users, Fork a Recipe if you anticipate changes, then feel free to re-install (or re-fork) a Recipe if you discover that the original creator made improvements. If your TRMNL device does not have the [Developer edition add-on](https://usetrmnl.com/blog/developer-edition) , you will only be able to Install Recipes, not Fork them. This will preclude some Recipes from use. **Maintaining Recipes** ----------------------- **Recipe owners** If you're the _proud author_ of a Recipe, you'll notice a "Recipe Master" badge inside the Plugins > Private Plugins interface: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347493948/fc8e15c8cf236c4e2e5413f508b3/trmnl-plugin-recipe-master-badge.png?expires=1743477300&signature=4ef73aadb86e9e183f9e9a158fd5ee9ef199ddd5d81d48d2d0cb37603283b9f5&req=dSMjEc13nohbUfMW1HO4zfKRzz76hgyVX8vgN2QdxF6pUVLKp50vL1WUVkQA%0A9%2BFdOlk2l7WLydCQ3Sw%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347493948/fc8e15c8cf236c4e2e5413f508b3/trmnl-plugin-recipe-master-badge.png?expires=1743477300&signature=4ef73aadb86e9e183f9e9a158fd5ee9ef199ddd5d81d48d2d0cb37603283b9f5&req=dSMjEc13nohbUfMW1HO4zfKRzz76hgyVX8vgN2QdxF6pUVLKp50vL1WUVkQA%0A9%2BFdOlk2l7WLydCQ3Sw%3D%0A) This indicates that you have influence over devices all around the world. Please be careful when modifying your origin plugin instance, as updates will be pushed to all other users automatically. We suggest using the copy feature (clone icon) to test changes first, then update your "Recipe Master" instance when you feel comfortable. **Note**: if your Recipe has [custom fields](https://help.usetrmnl.com/en/articles/10513740-custom-plugin-form-builder) , their values will not be copied over. So your personal information will not be shared. However, we use the latest screen generation as the Recipe preview image, so just be careful about which data you plug into the official "master" Recipe. ;) **Recipe users** If you have _installed_ a Recipe, you'll notice a "Recipe" badge inside the Playlists interface: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347491809/ec1b024b51202a12c8f374f9f488/trmnl-recipe-badge-playlists.png?expires=1743477300&signature=bf4f264304a4d5526d137d6a19006a85ff01907fd0d86067edfcf024ef2268a9&req=dSMjEc13nIlfUPMW1HO4zYqeLJWWIpf0II7l9HmovlEkFn%2By1eatvdL%2BdCdm%0Afdu49WJOBBU%2B12aqIlk%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347491809/ec1b024b51202a12c8f374f9f488/trmnl-recipe-badge-playlists.png?expires=1743477300&signature=bf4f264304a4d5526d137d6a19006a85ff01907fd0d86067edfcf024ef2268a9&req=dSMjEc13nIlfUPMW1HO4zYqeLJWWIpf0II7l9HmovlEkFn%2By1eatvdL%2BdCdm%0Afdu49WJOBBU%2B12aqIlk%3D%0A) This is simply a reminder that the plugin may not share all the features as others, for example it cannot be edited if it was "installed" via step 2 of Enabling a Recipe (above). **Publishing Recipes** ---------------------- Sharing your work with the TRMNL community helps make the platform both accessible and extendable for users of all technical backgrounds. If you're open to this labor of love: 1. Build a private plugin, making sure to include markup for all 4 layouts (full, half vertical, half horizontal, quadrant) 2. Click the submit icon on the right side of your plugin's settings page 3. We'll test your plugin, then publish it in Plugins > Recipes We look forward to seeing what you build. Did this answer your question? 😞😐😃 --- # YouTube Analytics | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_22c3cff04e) [](#h_20ab98f7b6) [](#h_e1d200cd24) [](#h_aaeffb7e84) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) YouTube Analytics See how your channel is doing, hands-free. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Table of contents [](#h_22c3cff04e) [](#h_20ab98f7b6) [](#h_e1d200cd24) [](#h_aaeffb7e84) Connecting your YouTube channel to TRMNL takes just a few seconds and is done securely via our adherence to [Google's API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy) . **Step 1 - Visit the YouTube Analytics Plugin** ----------------------------------------------- Inside TRMNL, navigate to Plugins > YouTube Analytics. [![](https://downloads.intercomcdn.com/i/o/1084608603/16b01d9233e426a086f430ed/image.png?expires=1743477300&signature=246a3085fde00f4f4179ef241d8a93e919ecdd9b57d5238a0d7ae0687acfd107&req=dSAvEs9%2BlYdfWvMW1HO4zdXbxqyb1rbX8m63zoSfMl%2F9%2B4HYWLZMY1xU5Gez%0A9jscvBTd88kj8UV9Fp8%3D%0A)](https://downloads.intercomcdn.com/i/o/1084608603/16b01d9233e426a086f430ed/image.png?expires=1743477300&signature=246a3085fde00f4f4179ef241d8a93e919ecdd9b57d5238a0d7ae0687acfd107&req=dSAvEs9%2BlYdfWvMW1HO4zdXbxqyb1rbX8m63zoSfMl%2F9%2B4HYWLZMY1xU5Gez%0A9jscvBTd88kj8UV9Fp8%3D%0A) **Step 2 - Connect YouTube** ---------------------------- Click to "Connect with YouTube" on the right side of the screen, then select an email account that owns your preferred channel and approve access to TRMNL. [![](https://downloads.intercomcdn.com/i/o/1084562481/29108d7732fa158a6a83eb2a/image.png?expires=1743477300&signature=cd5e1c6ed2fb697ff77de40d0c453a2b21ee7e6f8fe0b278a6a71549ee38a660&req=dSAvEsx4n4VXWPMW1HO4zWkSTLzhVA%2BG44%2FDFZNIaGQhO7Xb0JdMC8mJtQbZ%0Aba8ud256FjtbnEcZbIE%3D%0A)](https://downloads.intercomcdn.com/i/o/1084562481/29108d7732fa158a6a83eb2a/image.png?expires=1743477300&signature=cd5e1c6ed2fb697ff77de40d0c453a2b21ee7e6f8fe0b278a6a71549ee38a660&req=dSAvEsx4n4VXWPMW1HO4zWkSTLzhVA%2BG44%2FDFZNIaGQhO7Xb0JdMC8mJtQbZ%0Aba8ud256FjtbnEcZbIE%3D%0A) Note: only channel "owners" can authorize a 3rd party app. Shared YouTube Studio accounts will not appear during this step. **Step 3 - Configure Plugin** ----------------------------- Give your channel plugin a name label (in case you want to connect multiple channels), then select a "Lookback Period." This is simply the number of days you prefer TRMNL to tally into summary stats such as views, comments, and subscribers gained. **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing YouTube Analytics very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Lunch Money | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_11a56d3d94) [](#h_1332e9b4d8) [](#h_a58013221c) [](#h_0b6c45cd5b) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Lunch Money Simplified personal finances. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Table of contents [](#h_11a56d3d94) [](#h_1332e9b4d8) [](#h_a58013221c) [](#h_0b6c45cd5b) Connecting your [Lunch Money](https://lunchmoney.app/?refer=6cchyms3) (referral link) account with TRMNL takes just a few seconds. **Step 1 - Visit the Lunch Money plugin** ----------------------------------------- Inside TRMNL, navigate to Plugins > Lunch Money. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351940730/8676d3c8b95b72c44c094f94ccfb/trmnl-lunch-money-plugin-example.png?expires=1743477300&signature=1946f4cfcfae02f5a75b4db52ced58a11ea10229313e19b6f2985e527379fea0&req=dSMiF8B6nYZcWfMW1HO4zSNnkXMdx2B9GbXbYgRvAgqXrzGaUQQbmp05cGXh%0Alq%2BLt57HYtaYCD1jggQ%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351940730/8676d3c8b95b72c44c094f94ccfb/trmnl-lunch-money-plugin-example.png?expires=1743477300&signature=1946f4cfcfae02f5a75b4db52ced58a11ea10229313e19b6f2985e527379fea0&req=dSMiF8B6nYZcWfMW1HO4zSNnkXMdx2B9GbXbYgRvAgqXrzGaUQQbmp05cGXh%0Alq%2BLt57HYtaYCD1jggQ%3D%0A) **Step 2 - Connect Lunch Money** -------------------------------- Log into your Lunch Money account and visit [Settings > Developers](https://my.lunchmoney.app/developers) . [![](https://downloads.intercomcdn.com/i/o/1114585204/f199673f0985a7d7f86ebfaf/create-lunch-money-access-token.png?expires=1743477300&signature=38fe6dce9e2bd10ee0e7ae0012e7d95e698e163f89c8ae874254a4f658eb0699&req=dSEmEsx2mINfXfMW1HO4zWLNtPZ5Ve7o%2B4UTdxOEGEaEP1Rbtm8EWAXfkgp7%0AJja5XUi%2B70sd5wB2Cq0%3D%0A)](https://downloads.intercomcdn.com/i/o/1114585204/f199673f0985a7d7f86ebfaf/create-lunch-money-access-token.png?expires=1743477300&signature=38fe6dce9e2bd10ee0e7ae0012e7d95e698e163f89c8ae874254a4f658eb0699&req=dSEmEsx2mINfXfMW1HO4zWLNtPZ5Ve7o%2B4UTdxOEGEaEP1Rbtm8EWAXfkgp7%0AJja5XUi%2B70sd5wB2Cq0%3D%0A) Fil out the "New Access Token" Form with label TRMNL and optionally set your reason to "_I need it for a third-party app._" This will grant you a long string of characters, which you'll only be able to see one time. Copy this to your clipboard. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your Lunch Money Access Token into the form beneath the preview image. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351937337/d6a9216d25a379b20bce068047cc/trmnl-lunch-money-settings.png?expires=1743477300&signature=d7d732c4e6026de8268bf44e0c04c6b7d20ce43a511d1fcdbac7837cf087afe7&req=dSMiF8B9moJcXvMW1HO4zUvlNZ7hhZB7%2FJjs7c7UDJ%2Fx3LPauzPqOwnqBqMB%0AdCc8QPE%2BeiAEHQZdC3w%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351937337/d6a9216d25a379b20bce068047cc/trmnl-lunch-money-settings.png?expires=1743477300&signature=d7d732c4e6026de8268bf44e0c04c6b7d20ce43a511d1fcdbac7837cf087afe7&req=dSMiF8B9moJcXvMW1HO4zUvlNZ7hhZB7%2FJjs7c7UDJ%2Fx3LPauzPqOwnqBqMB%0AdCc8QPE%2BeiAEHQZdC3w%3D%0A) You may also select which type of financials you'd like to visualize, for example Budgets vs Accounts. Here's an example of the Accounts layout, which incorporates negative values for liabilities and positive values for assets: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351938325/8608e0359da16da7b39e24b556e8/trmnl-lunch-money-accounts-assets-example.jpeg?expires=1743477300&signature=a4fb32cb9bff9ea1660270e127b1dcc52e6b7221b19c2accdaf61472c95907ca&req=dSMiF8B9lYJdXPMW1HO4zcGb4NHWVB11PGFN5yimoX4bgj9TlqiqZ4adB936%0AFAVxjrDMnLg%2FRJQPG0U%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1351938325/8608e0359da16da7b39e24b556e8/trmnl-lunch-money-accounts-assets-example.jpeg?expires=1743477300&signature=a4fb32cb9bff9ea1660270e127b1dcc52e6b7221b19c2accdaf61472c95907ca&req=dSMiF8B9lYJdXPMW1HO4zcGb4NHWVB11PGFN5yimoX4bgj9TlqiqZ4adB936%0AFAVxjrDMnLg%2FRJQPG0U%3D%0A) Click Save. **Step 4 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin aggregating financial metrics from your Lunch Money account very soon. Stay focused. Did this answer your question? 😞😐😃 --- # The Office | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_081e1ad1dd) [](#h_5e7f22e712) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) The Office Your favorite quotes from your favorite show. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Table of contents [](#h_081e1ad1dd) [](#h_5e7f22e712) Before we begin, a huge thanks to Akash Rajpurohit, creator of [The Office API](https://github.com/AkashRajpurohit/the-office-api) , and [emilybr0](https://www.redbubble.com/people/emilybr0/shop) , designer of the character avatars (which TRMNL purchased). We built this plugin to make everyone's work day just a bit brighter. **Step 1 - Visit the The Office plugin** ---------------------------------------- Inside TRMNL, navigate to Plugins > The Office. [![The Office show random quotes display](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1357307031/f106ba26163fcbc8a9a1081c3c99/image.png?expires=1743477300&signature=8b4b5ccaf22bf87cf85fd1e746c74c463ad764d36c77abd3b56da2b066a174d4&req=dSMiEcp%2BmoFcWPMW1HO4zf7EvcAJ1jbWGg6LJb6X9u3me%2BzczD8YWmk2mES%2B%0AF8PnuuiAQDXMTPKzSHc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1357307031/f106ba26163fcbc8a9a1081c3c99/image.png?expires=1743477300&signature=8b4b5ccaf22bf87cf85fd1e746c74c463ad764d36c77abd3b56da2b066a174d4&req=dSMiEcp%2BmoFcWPMW1HO4zf7EvcAJ1jbWGg6LJb6X9u3me%2BzczD8YWmk2mES%2B%0AF8PnuuiAQDXMTPKzSHc%3D%0A) Optionally adjust the name of this plugin instance, then click Save. **Step 2 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin showing off funny quotes. \[Try to\] stay focused. Did this answer your question? 😞😐😃 --- # Google Calendar | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_822f7659ad) [](#h_bf796486da) [](#h_8e1b125194) [](#h_d51368e4fd) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Google Calendar View your upcoming schedule, apointments, and tasks. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Table of contents [](#h_822f7659ad) [](#h_bf796486da) [](#h_8e1b125194) [](#h_d51368e4fd) Connecting your Google Calendar to TRMNL takes just a few seconds and is done securely via our adherence to [Google's API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy) . **Step 1 - Visit the Google Calendar Plugin** --------------------------------------------- Inside TRMNL, navigate to Plugins > Google Calendar. [![](https://downloads.intercomcdn.com/i/o/1084560502/12618cc6296ecb4977483bdf/google-calendar-plugin-configuration.png?expires=1743477300&signature=b72f3d1b20ee473265d05b0cd33cdd3d0c13e1d197ec7203430b5c09e73ffd79&req=dSAvEsx4nYRfW%2FMW1HO4zbe6a2kNTCClAfo4CpqI0k03%2FgOkRsDNSpepuMvq%0AexElRPdKVNENX7sYnko%3D%0A)](https://downloads.intercomcdn.com/i/o/1084560502/12618cc6296ecb4977483bdf/google-calendar-plugin-configuration.png?expires=1743477300&signature=b72f3d1b20ee473265d05b0cd33cdd3d0c13e1d197ec7203430b5c09e73ffd79&req=dSAvEsx4nYRfW%2FMW1HO4zbe6a2kNTCClAfo4CpqI0k03%2FgOkRsDNSpepuMvq%0AexElRPdKVNENX7sYnko%3D%0A) Click to "Connect with Google Calendar" on the right side of the screen. **Step 2 - Connect Google Calendar** ------------------------------------ After being redirected to Google, select an email account and approve access to TRMNL. Note that you must click "Select all" on the right side to manually approve each required permission. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1329521266/0bc6c1ef9c06326339a0f308761e/trmnl-plugin-google-calendar-oauth-consent-screen.png?expires=1743477300&signature=11ebbef66edaec55aac30cebc968e6adecaf98b068cd58ceaf8d2886c2baf105&req=dSMlH8x8nINZX%2FMW1HO4zdjk9VU6YfGy7XfK42MLwr6hrFW1nIWNJdao49f3%0AWhpg58wIq8zHd0E0VRA%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1329521266/0bc6c1ef9c06326339a0f308761e/trmnl-plugin-google-calendar-oauth-consent-screen.png?expires=1743477300&signature=11ebbef66edaec55aac30cebc968e6adecaf98b068cd58ceaf8d2886c2baf105&req=dSMlH8x8nINZX%2FMW1HO4zdjk9VU6YfGy7XfK42MLwr6hrFW1nIWNJdao49f3%0AWhpg58wIq8zHd0E0VRA%3D%0A) **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, select which Google Calendars you want to display on your device and optionally set a few preferences. [![](https://downloads.intercomcdn.com/i/o/1180371995/ef560192e3f8b8c341078517/trmnl-google-calendar-config.png?expires=1743477300&signature=b88b01909d4277359afd12905bc4df2eb2d3c6665d62b2f74081d0e5c1d8e5ba&req=dSEvFsp5nIhWXPMW1HO4zfb0HGITvm2c%2BA9LHa0Xr36X%2BP80FHJ95o72h48j%0AGZ%2FZrGatC%2BQoBOtZtto%3D%0A)](https://downloads.intercomcdn.com/i/o/1180371995/ef560192e3f8b8c341078517/trmnl-google-calendar-config.png?expires=1743477300&signature=b88b01909d4277359afd12905bc4df2eb2d3c6665d62b2f74081d0e5c1d8e5ba&req=dSEvFsp5nIhWXPMW1HO4zfb0HGITvm2c%2BA9LHa0Xr36X%2BP80FHJ95o72h48j%0AGZ%2FZrGatC%2BQoBOtZtto%3D%0A) **Select Calendars** On a Mac, hold "cmd" and click multiple calendars. On a PC, hold "ctrl" and click multiple calendars. **Time Format** 24 hours vs 12 hour (AM/PM) style **Include Description** If "Yes," a truncated preview of the event's description field will be shown beneath the event title. Note that on the "default" Layout (explained below), setting this option to "No" will ~double the number of events shown thanks to saved space. **First Day of Week** Applies only to the "month" view. Similar to native Google Calendar (month view), this allows you to set which day of the week is represented by the first column, furthest to the left. Defaults to Sunday. **Ignored Phrases** Supports a list of words that will be used to ignore events based on title or description content. **Layout** * Default (upcoming events for today, tomorrow, next day) * Week (5-7 days upcoming) * Month (this calendar month) Note that only "Week" and "Month" layouts support multi-day events, but every layout supports all-day events. **Example** - Week layout with multi-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/1180373275/2cc60f4542eece7b06cf9a4f/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=f80acba0fe7e76de65ead151cc7fbc96a7b0be5216cd6094bd1f7f85d296197c&req=dSEvFsp5noNYXPMW1HO4zc2J66TkH46%2FjHpMhNGXlb9CWwQ4HJoyDVHO83Ln%0Asu1Y1QkbUjpihUKt4Zs%3D%0A)](https://downloads.intercomcdn.com/i/o/1180373275/2cc60f4542eece7b06cf9a4f/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=f80acba0fe7e76de65ead151cc7fbc96a7b0be5216cd6094bd1f7f85d296197c&req=dSEvFsp5noNYXPMW1HO4zc2J66TkH46%2FjHpMhNGXlb9CWwQ4HJoyDVHO83Ln%0Asu1Y1QkbUjpihUKt4Zs%3D%0A) **Example** - Default layout with all-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1224093862/6d4b7c23cd45367be71f235a9cdf/image.png?expires=1743477300&signature=ba0a095a57e7f091542d835ef39a804dbe7e7d695b106373e50ba8a33665f23b&req=dSIlEsl3nolZW%2FMW1HO4zXybXixG4bfeProp%2BxG6eVeQI5AzbqxdecQOXhGi%0AvKukn4cQJP4xnPt9VIw%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1224093862/6d4b7c23cd45367be71f235a9cdf/image.png?expires=1743477300&signature=ba0a095a57e7f091542d835ef39a804dbe7e7d695b106373e50ba8a33665f23b&req=dSIlEsl3nolZW%2FMW1HO4zXybXixG4bfeProp%2BxG6eVeQI5AzbqxdecQOXhGi%0AvKukn4cQJP4xnPt9VIw%3D%0A) **Example** - Month layout with multi-day event: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1241017555/026cc03a7bc6d30418a953c7d5b1/trmnl-google-calendar-month-example.png?expires=1743477300&signature=ed7d61f07f9f86142052d0a1d5d5e08ecb659f440b41bcf0e2108dd968f307ca&req=dSIjF8l%2FmoRaXPMW1HO4zZNcGukh4EMSB3HBaNuTzwgJQBb6O9cFUEXlEqB%2B%0AiZcFpyKKH3v1iut5ECk%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1241017555/026cc03a7bc6d30418a953c7d5b1/trmnl-google-calendar-month-example.png?expires=1743477300&signature=ed7d61f07f9f86142052d0a1d5d5e08ecb659f440b41bcf0e2108dd968f307ca&req=dSIjF8l%2FmoRaXPMW1HO4zZNcGukh4EMSB3HBaNuTzwgJQBb6O9cFUEXlEqB%2B%0AiZcFpyKKH3v1iut5ECk%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Google Calendar events very soon. **Note**: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched contains changes. Thus setting your layout to "Default" (which shows 2-3 days) but updating an event 4+ days in the future will not trigger a screen refresh. Learn more about refresh rates [here](https://refresh) . Stay focused. Did this answer your question? 😞😐😃 --- # Todo List | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_e0d77c1462) [](#h_58a938a2f7) [](#h_ed1e949920) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Todo List Simple tracker that supports "doing" and "done" lists. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Table of contents [](#h_e0d77c1462) [](#h_58a938a2f7) [](#h_ed1e949920) Stay focused on important tasks with our native Todo List, a simple 2-column list of "Doing" and "Done" tasks. Step 1 - Visit the Todo List Plugin ----------------------------------- Inside TRMNL, navigate to Plugins > Todo List. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210907771/5bd6cc2b3ae695e8bf4815d47c30/todo-list-plugin.png?expires=1743477300&signature=d8e996132d21368cf3b81e32e1bb2325e1e36be57c11fcc3f9c1f9b1ab6e9363&req=dSImFsB%2BmoZYWPMW1HO4zYzAk4hvQoHG6GNoobDWS%2F8avDWhhVwLvMYRRzYO%0AE08TKqoSFsq%2FEBAJOiE%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210907771/5bd6cc2b3ae695e8bf4815d47c30/todo-list-plugin.png?expires=1743477300&signature=d8e996132d21368cf3b81e32e1bb2325e1e36be57c11fcc3f9c1f9b1ab6e9363&req=dSImFsB%2BmoZYWPMW1HO4zYzAk4hvQoHG6GNoobDWS%2F8avDWhhVwLvMYRRzYO%0AE08TKqoSFsq%2FEBAJOiE%3D%0A) Step 2 - Configure Plugin ------------------------- Input a few todos into the "Doing" list, separate by a hard return (line break). Optionally provide "Done" tasks to get this deep work party started. Step 3 - You're Done! --------------------- As the days pass by, feel free to come back and move items from "Doing" to "Done" to remind yourself of everything you've accomplished. Based on your device's refresh settings, you'll see changes to your Todo List very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Shopify | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_6d2e99ae20) [](#h_b6ba8b1033) [](#h_4074a1cb45) [](#h_acb355d0ee) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Shopify Sales and order stats, at your fingertips. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 7 months ago Table of contents [](#h_6d2e99ae20) [](#h_b6ba8b1033) [](#h_4074a1cb45) [](#h_acb355d0ee) Connecting your Shopify store to TRMNL takes just a few minutes. We do not have a public listing in the marketplace, however below you'll find a detailed guide to making your own "app" and then sharing exclusive access to TRMNL. We require only "readonly" access to your **last 60 days of Orders**, nothing more. Step 1 - Visit the Shopify plugin --------------------------------- Inside TRMNL, navigate to Plugins > Shopify. [![](https://downloads.intercomcdn.com/i/o/1188938261/9aae6e1c9c84172ebc011708/image.png?expires=1743477300&signature=e00b43334257253cfff9da4bd252e67d96322d826a734887507c1e60626cedd5&req=dSEvHsB9lYNZWPMW1HO4zSyCxA%2FqzkAduKdHcj6e5nTwf5jEWCde2spNeAAm%0AG0mE26jNiD5RO9SmVS8%3D%0A)](https://downloads.intercomcdn.com/i/o/1188938261/9aae6e1c9c84172ebc011708/image.png?expires=1743477300&signature=e00b43334257253cfff9da4bd252e67d96322d826a734887507c1e60626cedd5&req=dSEvHsB9lYNZWPMW1HO4zSyCxA%2FqzkAduKdHcj6e5nTwf5jEWCde2spNeAAm%0AG0mE26jNiD5RO9SmVS8%3D%0A) Step 2 - Create a Shopify App ----------------------------- Inside your Shopify admin, open Apps from the left side navigation. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046185/dbedfa31940c4683aeb0d93e/AD_4nXfKm5ssp1_hJhXK4iFCe94uRm-Aj6PcUi4KE0QBMIhloQts3rTA-WoqI34jdo8-eAI7wIncIFs-Y_XhJ-2OvSXqtz352Lxv0rm8oo9zWKX_co4Dsp0YRLJ7q_joRADdzJK4AXxDqKOQD4XEcHQLEzK95OjT?expires=1743477300&signature=72396facd2c1ea26a55cc051b89e9c13519a1966abee7a8028598faeb5d10dfe&req=dSEmEcl6m4BXXPMW1HO4zdMFV%2FZ%2FGLDFp%2FLX8G%2FCS%2BpqsBxHOpR0RfgR5bNo%0AopSUN7aDs2m2Q%2FfbFjw%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046185/dbedfa31940c4683aeb0d93e/AD_4nXfKm5ssp1_hJhXK4iFCe94uRm-Aj6PcUi4KE0QBMIhloQts3rTA-WoqI34jdo8-eAI7wIncIFs-Y_XhJ-2OvSXqtz352Lxv0rm8oo9zWKX_co4Dsp0YRLJ7q_joRADdzJK4AXxDqKOQD4XEcHQLEzK95OjT?expires=1743477300&signature=72396facd2c1ea26a55cc051b89e9c13519a1966abee7a8028598faeb5d10dfe&req=dSEmEcl6m4BXXPMW1HO4zdMFV%2FZ%2FGLDFp%2FLX8G%2FCS%2BpqsBxHOpR0RfgR5bNo%0AopSUN7aDs2m2Q%2FfbFjw%3D%0A) Click "Develop apps" near the top right. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046192/1a700604472e5a4592af7e14/AD_4nXcc78jnn9m8ROKnDblgyFHUuwrpe-woJypCwESavus02XgQggNz2TggSQQyW0cWHrHp7IfD219moChv3CW7aXZgY021K4XYv8S4fbdVkXruoG8rea8cXlPEtJecDNKivmBKaTd3baay9Lm4cOVUR3rqNeco?expires=1743477300&signature=aab13835fad897f4c53aace839503b1dac8c94ce46e6987b88fc6ad8a8a7f379&req=dSEmEcl6m4BWW%2FMW1HO4zSG2KuEsDj97eVTyly%2BUyWIWxQM60Oy%2B9m7B5x80%0Ar%2FoYqw%2Bw%2BT8kD1Pa3K0%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046192/1a700604472e5a4592af7e14/AD_4nXcc78jnn9m8ROKnDblgyFHUuwrpe-woJypCwESavus02XgQggNz2TggSQQyW0cWHrHp7IfD219moChv3CW7aXZgY021K4XYv8S4fbdVkXruoG8rea8cXlPEtJecDNKivmBKaTd3baay9Lm4cOVUR3rqNeco?expires=1743477300&signature=aab13835fad897f4c53aace839503b1dac8c94ce46e6987b88fc6ad8a8a7f379&req=dSEmEcl6m4BWW%2FMW1HO4zSG2KuEsDj97eVTyly%2BUyWIWxQM60Oy%2B9m7B5x80%0Ar%2FoYqw%2Bw%2BT8kD1Pa3K0%3D%0A) If you have not already created custom apps, you will need to accept the Terms of Use. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046195/0688f3d3275f26900a3ad7de/AD_4nXfrNgpj4l89pFhzgL-bq17ZHiZcGTod-So9M_kboi_T8C8Hi44kmMNsB8sK3SdMj1RN0hFxnyZ1FCE7ffvTUUSiROosVl7fC2Rr0T4paEWhyuPyCLY_-G1ZqLhNYYSscl8wKvPCdK6SC8yZS2HUdVvewfuK?expires=1743477300&signature=4565bf6408e2167621ba7632b9ab7aa5727ecb3fb7b90647ca272a0feaaea800&req=dSEmEcl6m4BWXPMW1HO4zUlvdkJ2Lygjz47F68UUUYa7lIb3IaR8idMygyqD%0AIxnf33Q2LCUGOr%2B%2BF7U%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046195/0688f3d3275f26900a3ad7de/AD_4nXfrNgpj4l89pFhzgL-bq17ZHiZcGTod-So9M_kboi_T8C8Hi44kmMNsB8sK3SdMj1RN0hFxnyZ1FCE7ffvTUUSiROosVl7fC2Rr0T4paEWhyuPyCLY_-G1ZqLhNYYSscl8wKvPCdK6SC8yZS2HUdVvewfuK?expires=1743477300&signature=4565bf6408e2167621ba7632b9ab7aa5727ecb3fb7b90647ca272a0feaaea800&req=dSEmEcl6m4BWXPMW1HO4zUlvdkJ2Lygjz47F68UUUYa7lIb3IaR8idMygyqD%0AIxnf33Q2LCUGOr%2B%2BF7U%3D%0A) This is a 2-page process, so click “Allow” on both screens. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046201/7bd03d2d554657b7447d0d8a/AD_4nXdZCAy7BUAtp2a65oq2HoLMGzhJJV7MBSDygIT9ThFWCIwX1sFy2SubVtI1AR16r2BPnFKJ-0tWajUVOAGcQLq_yyAG_uJoKu6QIgCN60fUL_vMoQHofUUe0UeukIP39wtTqk2AKNkP-q3_B9-CjSqRHMrw?expires=1743477300&signature=fa499dcab55934c873ccc0bd8d9e722ea966820d88c8e68ea9701be42ae40583&req=dSEmEcl6m4NfWPMW1HO4zdhif3%2BB4Ijln7rShX3YsMe14dFJAzkp5rYR%2FyG4%0AzbZMoIyWXQ8LhBVJWGg%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046201/7bd03d2d554657b7447d0d8a/AD_4nXdZCAy7BUAtp2a65oq2HoLMGzhJJV7MBSDygIT9ThFWCIwX1sFy2SubVtI1AR16r2BPnFKJ-0tWajUVOAGcQLq_yyAG_uJoKu6QIgCN60fUL_vMoQHofUUe0UeukIP39wtTqk2AKNkP-q3_B9-CjSqRHMrw?expires=1743477300&signature=fa499dcab55934c873ccc0bd8d9e722ea966820d88c8e68ea9701be42ae40583&req=dSEmEcl6m4NfWPMW1HO4zdhif3%2BB4Ijln7rShX3YsMe14dFJAzkp5rYR%2FyG4%0AzbZMoIyWXQ8LhBVJWGg%3D%0A) Click to "Create an app," then give it a name like TRMNL. It should be assigned to whoever will be most responsible for managing your TRMNL devices. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046211/5306aa895c4821f4874dd4cc/AD_4nXdq60eq3goN1gZcTV8TP3JOwUAc_XOUjj9T0xaOOLxIcjgeiBjLVc87zQQdVzWTg4RowFJ_eEWXA-bQJmF3drXEVN2p90HPV1KMUn1lEFM4mcIuwbPHxNKfMm9-6cC15xa_0nAMkEb7w7Nb19kj3i7mYVyY?expires=1743477300&signature=3a95fd947be4e43ab97cabab9f376a8306c18ab4ac951b0f62291a5a608d300a&req=dSEmEcl6m4NeWPMW1HO4zeD%2FS6Hk%2Fai6b98yso48QvmU4YdJadQP060dMbZI%0AcVcY7PWbXWnzCNjwWxw%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046211/5306aa895c4821f4874dd4cc/AD_4nXdq60eq3goN1gZcTV8TP3JOwUAc_XOUjj9T0xaOOLxIcjgeiBjLVc87zQQdVzWTg4RowFJ_eEWXA-bQJmF3drXEVN2p90HPV1KMUn1lEFM4mcIuwbPHxNKfMm9-6cC15xa_0nAMkEb7w7Nb19kj3i7mYVyY?expires=1743477300&signature=3a95fd947be4e43ab97cabab9f376a8306c18ab4ac951b0f62291a5a608d300a&req=dSEmEcl6m4NeWPMW1HO4zeD%2FS6Hk%2Fai6b98yso48QvmU4YdJadQP060dMbZI%0AcVcY7PWbXWnzCNjwWxw%3D%0A) [![](https://downloads.intercomcdn.com/i/o/1087619878/6f8eb98b8b8ecade4f149eee/Screenshot+2024-06-20+at+2_00_10+PM.png?expires=1743477300&signature=269779174e631a59ba30e56e1f5ddddc879c9c92af4257f4d52c2e43cc704fc7&req=dSAvEc9%2FlIlYUfMW1HO4zbdY6afPZq78a8PL%2BhKNnPO%2BWroHMEKm%2B0hVLTkh%0A8NWKNUKwPbfu%2BcM9vaY%3D%0A)](https://downloads.intercomcdn.com/i/o/1087619878/6f8eb98b8b8ecade4f149eee/Screenshot+2024-06-20+at+2_00_10+PM.png?expires=1743477300&signature=269779174e631a59ba30e56e1f5ddddc879c9c92af4257f4d52c2e43cc704fc7&req=dSAvEc9%2FlIlYUfMW1HO4zbdY6afPZq78a8PL%2BhKNnPO%2BWroHMEKm%2B0hVLTkh%0A8NWKNUKwPbfu%2BcM9vaY%3D%0A) In Developer/API lingo, “Scopes” are simply permissions granted to an app. The TRMNL integration needs access to your Orders scope in order to fetch recent sales data and generate screen content. Click “Configure Admin API scopes,” then input “orders” in the search box and select the checkbox beside the ‘read\_orders’ permission. [![](https://downloads.intercomcdn.com/i/o/1087620154/077c032e93bda5dae8cb19fc/Screenshot+2024-06-20+at+2_05_30+PM.png?expires=1743477300&signature=03ca5b8ece9637ddac40af9a8e08720d57c10bc546f2f0fdb8cd7b25c0887f63&req=dSAvEc98nYBaXfMW1HO4zRpG4Yz7TVZWHw42CIGMHahO9m0UOCKLLpj26wyd%0As8YaAGclWCXhyd9RmkA%3D%0A)](https://downloads.intercomcdn.com/i/o/1087620154/077c032e93bda5dae8cb19fc/Screenshot+2024-06-20+at+2_05_30+PM.png?expires=1743477300&signature=03ca5b8ece9637ddac40af9a8e08720d57c10bc546f2f0fdb8cd7b25c0887f63&req=dSAvEc98nYBaXfMW1HO4zRpG4Yz7TVZWHw42CIGMHahO9m0UOCKLLpj26wyd%0As8YaAGclWCXhyd9RmkA%3D%0A) [![](https://downloads.intercomcdn.com/i/o/1087620421/d780964f687afa229fa81d26/Screenshot+2024-06-20+at+2_09_22+PM.png?expires=1743477300&signature=c00ca20fd0ece0115a6204bdc200d72ef2409abcf300b6a0004fbd8ca9af0f81&req=dSAvEc98nYVdWPMW1HO4zWdRBgfPlXe26%2FnXFM0AqLMHkPc1C5qbzgP7Gyws%0A6qVMUY6xNyYPCcwRKFg%3D%0A)](https://downloads.intercomcdn.com/i/o/1087620421/d780964f687afa229fa81d26/Screenshot+2024-06-20+at+2_09_22+PM.png?expires=1743477300&signature=c00ca20fd0ece0115a6204bdc200d72ef2409abcf300b6a0004fbd8ca9af0f81&req=dSAvEc98nYVdWPMW1HO4zWdRBgfPlXe26%2FnXFM0AqLMHkPc1C5qbzgP7Gyws%0A6qVMUY6xNyYPCcwRKFg%3D%0A) Be sure to click Save in the top right corner. [![](https://trmnl.intercom-attachments-7.com/i/o/1117046217/2ebe094cb84a2a08c6d922d3/AD_4nXfFStUE4S0Oijq9jycoSWbbufZWXD1uG_m4SK3FjsHOVqsURXwSdCKYdAW-V6jciK7AMTXiAQaYIhLGWd3V6T-A6AAG9L_M_6SQKKeh0qnNYifQfc3BzPNwUu1ZP0n4TFBeRNWzthH_O9VMN4hD5ARc60aO?expires=1743477300&signature=61d67a4078aa450ad2a412377dd23d9deada3c8d46132bf26dedd255c046e647&req=dSEmEcl6m4NeXvMW1HO4zXdlpiHwsg7eAVIqGVXXu7TLUly5tNQPitqUAvf6%0AW5iKfCVVOWQ9d94ra%2Bw%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1117046217/2ebe094cb84a2a08c6d922d3/AD_4nXfFStUE4S0Oijq9jycoSWbbufZWXD1uG_m4SK3FjsHOVqsURXwSdCKYdAW-V6jciK7AMTXiAQaYIhLGWd3V6T-A6AAG9L_M_6SQKKeh0qnNYifQfc3BzPNwUu1ZP0n4TFBeRNWzthH_O9VMN4hD5ARc60aO?expires=1743477300&signature=61d67a4078aa450ad2a412377dd23d9deada3c8d46132bf26dedd255c046e647&req=dSEmEcl6m4NeXvMW1HO4zXdlpiHwsg7eAVIqGVXXu7TLUly5tNQPitqUAvf6%0AW5iKfCVVOWQ9d94ra%2Bw%3D%0A) Next, navigate to the API credentials tab of your new Shopify app and click Install app. [![](https://downloads.intercomcdn.com/i/o/1087620553/e168f9470a02219ab01f3b33/Screenshot+2024-06-20+at+2_11_13+PM.png?expires=1743477300&signature=fbcea1672250f5d1f6eaf4006e7197c14a62961d0ab311cfd4b5277e6d5021cc&req=dSAvEc98nYRaWvMW1HO4zfzcBoz%2Fc1IzmPmHdax4BrDzh6ul9iitfH3Qv8Dy%0A0Zm%2FxqwTgzqm6FmVQnM%3D%0A)](https://downloads.intercomcdn.com/i/o/1087620553/e168f9470a02219ab01f3b33/Screenshot+2024-06-20+at+2_11_13+PM.png?expires=1743477300&signature=fbcea1672250f5d1f6eaf4006e7197c14a62961d0ab311cfd4b5277e6d5021cc&req=dSAvEc98nYRaWvMW1HO4zfzcBoz%2Fc1IzmPmHdax4BrDzh6ul9iitfH3Qv8Dy%0A0Zm%2FxqwTgzqm6FmVQnM%3D%0A) After approving the instllation, you'll be taken back to the API credentials page. Copy your "Access Token" for use back inside TRMNL. [![](https://downloads.intercomcdn.com/i/o/1087620662/b2a5808a6c76065431673731/Screenshot+2024-06-20+at+3_09_32+PM.png?expires=1743477300&signature=b80e502f580afd0d99491c65c6ddc4fac9bef8d0e69e03f427be6a9edd7e3aaf&req=dSAvEc98nYdZW%2FMW1HO4zUVhWL4BczQM5OPnLmqLJETzverKRy7TyaZDPgss%0A2z0bfc776DvTLDkdM1A%3D%0A)](https://downloads.intercomcdn.com/i/o/1087620662/b2a5808a6c76065431673731/Screenshot+2024-06-20+at+3_09_32+PM.png?expires=1743477300&signature=b80e502f580afd0d99491c65c6ddc4fac9bef8d0e69e03f427be6a9edd7e3aaf&req=dSAvEc98nYdZW%2FMW1HO4zUVhWL4BczQM5OPnLmqLJETzverKRy7TyaZDPgss%0A2z0bfc776DvTLDkdM1A%3D%0A) Step 3 - Configure Plugin ------------------------- Back inside TRMNL, 1. paste your Shopify Access Token inside the Access Token field 2. input your Shopify store's subdomain Your full "myshopify.com" URL is unnecessary, we just need your subdomain. For example, if your store is "usetrmnl.myshopify.com" then "usetrmnl" is your subdomain. Click Save to activate this plugin. Step 4 - You're Done! --------------------- Based on your desired refresh settings, TRMNL will begin aggregating order stats from Shopify very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Salesforce | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Salesforce Opportunity views at a glance. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Did this answer your question? 😞😐😃 --- # Polymarket | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_02ff2bfb8c) [](#h_347f5c0e54) [](#h_2d3948df25) [](#h_7787eddbbd) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Polymarket Popular predictions, ending soon. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 9 months ago Table of contents [](#h_02ff2bfb8c) [](#h_347f5c0e54) [](#h_2d3948df25) [](#h_7787eddbbd) Connecting Polymarket to TRMNL takes just a few seconds and does not require any authentication with your Polymarket account. **Step 1 - Visit the Polymarket plugin** ---------------------------------------- Inside TRMNL, navigate to Plugins > Polymarket. [![](https://downloads.intercomcdn.com/i/o/1121705345/6f7b2b1bbd07658b6274858d/trmnl-polymarket-plugin.png?expires=1743477300&signature=3f5dcd87d2864a01cb1405b5c3e74a60d30df86365730c447304ebe32cf4a8e8&req=dSElF85%2BmIJbXPMW1HO4zdTbJc1QK39RSslAbQezqLdplTifu7zT4zYVicIO%0A4ZEjcOm%2FWEPAbWlNlWM%3D%0A)](https://downloads.intercomcdn.com/i/o/1121705345/6f7b2b1bbd07658b6274858d/trmnl-polymarket-plugin.png?expires=1743477300&signature=3f5dcd87d2864a01cb1405b5c3e74a60d30df86365730c447304ebe32cf4a8e8&req=dSElF85%2BmIJbXPMW1HO4zdTbJc1QK39RSslAbQezqLdplTifu7zT4zYVicIO%0A4ZEjcOm%2FWEPAbWlNlWM%3D%0A) **Step 2 - Connect Polymarket** ------------------------------- Select a popular tag (Market category) from the dropdown on the right sidebar. From business to crypto, pop culture to politics. Polygon has ~9,000 possible tags, so if you'd like one not listed here just email use ([\[email protected\]](/cdn-cgi/l/email-protection#4a3e2f2b270a3f392f3e3827242664292527) ) the Tag ID and we'll plug it into your account. Find a list of all tags + tag IDs here (note: JSON data, just seach the page): [https://gamma-api.polymarket.com/tags](https://gamma-api.polymarket.com/tags) For example, if you're interested in space travel, search the page content for "space" and then give us this ID, 500: [![](https://downloads.intercomcdn.com/i/o/1121706652/5750ad958cbedd443c7a7f2b/image.png?expires=1743477300&signature=f4b991f9315f95672bfbe79026f6a4a29f7e7092b66a243f2b98c6fc8d6b15a8&req=dSElF85%2Bm4daW%2FMW1HO4zX1Lv1RQQBA1cHNceQgW7eHxEkamChkeAdkUGXfL%0A8NMM79eJNcBfFKSzF50%3D%0A)](https://downloads.intercomcdn.com/i/o/1121706652/5750ad958cbedd443c7a7f2b/image.png?expires=1743477300&signature=f4b991f9315f95672bfbe79026f6a4a29f7e7092b66a243f2b98c6fc8d6b15a8&req=dSElF85%2Bm4daW%2FMW1HO4zX1Lv1RQQBA1cHNceQgW7eHxEkamChkeAdkUGXfL%0A8NMM79eJNcBfFKSzF50%3D%0A) After select a tag, click Save. **Step 3 - Configure Plugin** ----------------------------- Determine how often you'd like this plugin to refresh. Note that we currently look for market trades that are active, not closed, and with an expiry/end between today and 2 weeks from now. [![](https://downloads.intercomcdn.com/i/o/1121707600/87a2fa5a629d95281241f8bb/trmnl-polymarket-refresh-rate-config.png?expires=1743477300&signature=a17667d38725a01688ef44af13d7a7be4eea9de7017945d474d5602a9318b793&req=dSElF85%2BmodfWfMW1HO4zccqDLZfy2IP8C%2FkkaBFkQDtmaRv5IpZsDmtfGRL%0AR0TS8Bc61b6ZevrR2v0%3D%0A)](https://downloads.intercomcdn.com/i/o/1121707600/87a2fa5a629d95281241f8bb/trmnl-polymarket-refresh-rate-config.png?expires=1743477300&signature=a17667d38725a01688ef44af13d7a7be4eea9de7017945d474d5602a9318b793&req=dSElF85%2BmodfWfMW1HO4zccqDLZfy2IP8C%2FkkaBFkQDtmaRv5IpZsDmtfGRL%0AR0TS8Bc61b6ZevrR2v0%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin aggregating popular market events from Polymarket very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Readwise | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_656b06cb7d) [](#h_3ace794400) [](#h_b561779316) [](#h_c61185b405) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Readwise Get the most out of what you read. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 8 months ago Table of contents [](#h_656b06cb7d) [](#h_3ace794400) [](#h_b561779316) [](#h_c61185b405) Connecting Readwise to TRMNL takes just a few seconds and does not require any coding. **Step 1 - Visit the Readwise plugin** -------------------------------------- Inside TRMNL, navigate to Plugins > Readwise. [![](https://downloads.intercomcdn.com/i/o/1158645682/692f380f978db8db458d93ad/trmnl-readwise-plugin.png?expires=1743477300&signature=d886ab0d9a96bf60802bbe403bd2c670e652a5441098e3ef1e2b8eb02fe620f4&req=dSEiHs96mIdXW%2FMW1HO4zTRd2ynFh%2Flj1Vm065RRaPxXCi624Wx3oaRTZpI7%0AkBDU5pNQxKo1Xx6W3dw%3D%0A)](https://downloads.intercomcdn.com/i/o/1158645682/692f380f978db8db458d93ad/trmnl-readwise-plugin.png?expires=1743477300&signature=d886ab0d9a96bf60802bbe403bd2c670e652a5441098e3ef1e2b8eb02fe620f4&req=dSEiHs96mIdXW%2FMW1HO4zTRd2ynFh%2Flj1Vm065RRaPxXCi624Wx3oaRTZpI7%0AkBDU5pNQxKo1Xx6W3dw%3D%0A) **Step 2 - Connect Readwise** ----------------------------- Inside Readwise, navigate to [Access Tokens](https://readwise.io/access_token) . [![](https://downloads.intercomcdn.com/i/o/1158647344/d664af508a91e08ee5b20f4a/readwise-create-access-token.png?expires=1743477300&signature=0d4ba9abb1b4edf897304865294ca29c019047bf6968ae0ea8c18332f598f37e&req=dSEiHs96moJbXfMW1HO4zUkOH1QihIxteUt0SoT02H%2BKJNdXxMRuK261905E%0AI%2Bi2e6Nsup4DBUWGbac%3D%0A)](https://downloads.intercomcdn.com/i/o/1158647344/d664af508a91e08ee5b20f4a/readwise-create-access-token.png?expires=1743477300&signature=0d4ba9abb1b4edf897304865294ca29c019047bf6968ae0ea8c18332f598f37e&req=dSEiHs96moJbXfMW1HO4zUkOH1QihIxteUt0SoT02H%2BKJNdXxMRuK261905E%0AI%2Bi2e6Nsup4DBUWGbac%3D%0A) Click "Get Access Token" (or copy an existing one, if available) and you'll be presented a long string of characters. [![](https://downloads.intercomcdn.com/i/o/1158648328/3f52970c522ddf141915125e/readwise-api-access-token-example.png?expires=1743477300&signature=4ac9be38be207064583829acecf2583c210aed64086280f086a25364ef55ab25&req=dSEiHs96lYJdUfMW1HO4zVljTec%2B0m%2FIeJ5P9%2FlpNKPonpiTJYgOQGGUeHZZ%0AniWsqCx1lHPbGLyBtEk%3D%0A)](https://downloads.intercomcdn.com/i/o/1158648328/3f52970c522ddf141915125e/readwise-api-access-token-example.png?expires=1743477300&signature=4ac9be38be207064583829acecf2583c210aed64086280f086a25364ef55ab25&req=dSEiHs96lYJdUfMW1HO4zVljTec%2B0m%2FIeJ5P9%2FlpNKPonpiTJYgOQGGUeHZZ%0AniWsqCx1lHPbGLyBtEk%3D%0A) Copy this to your clipboard. Step 3 - Configure Plugin ------------------------- Back inside TRMNL, paste this value in the configuration form and (optionally) give this plugin a name. Click Save. [![](https://downloads.intercomcdn.com/i/o/1158651876/6bb6def2cb08c26bf7414e8b/trmnl-readwise-configuration.png?expires=1743477300&signature=7bf2f440a74604802a60891de147fe8e446870b892fc911b7fee97894729d959&req=dSEiHs97nIlYX%2FMW1HO4zY9zDZ%2BbkGI72UNlruvg4ZaZ%2FrFQBYWj0LDJbBj4%0AgZfaOoVooIQDtg4QVWk%3D%0A)](https://downloads.intercomcdn.com/i/o/1158651876/6bb6def2cb08c26bf7414e8b/trmnl-readwise-configuration.png?expires=1743477300&signature=7bf2f440a74604802a60891de147fe8e446870b892fc911b7fee97894729d959&req=dSEiHs97nIlYX%2FMW1HO4zY9zDZ%2BbkGI72UNlruvg4ZaZ%2FrFQBYWj0LDJbBj4%0AgZfaOoVooIQDtg4QVWk%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin showcasing useful highlights from your Readwise account very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Robinhood | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_02619a5f21) [](#h_b864ef919d) [](#h_e520220fa0) [](#h_16d75d0d9a) [](#h_77b0fd611d) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Robinhood Monitor your portfolio performance over time. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 10 months ago Table of contents [](#h_02619a5f21) [](#h_b864ef919d) [](#h_e520220fa0) [](#h_16d75d0d9a) [](#h_77b0fd611d) Connecting your Robinhood account to TRMNL takes just a few seconds and is done securely via our OAuth2 integration with Plaid, a leading financial institution connector. **Step 1 - Visit the Robinhood Plugin** --------------------------------------- Inside TRMNL, navigate to Plugins > Robinhood. [![](https://downloads.intercomcdn.com/i/o/1098149177/c5cb0bdc074ad66c43114940/trmnl-robinhood-plugin.png?expires=1743477300&signature=2a4fe8a62f2060e73c2b131ca685de7c4dde3cdec52e784b53e497e938af780b&req=dSAuHsh6lIBYXvMW1HO4zaFYg810ENpgiKIGevT869mxczQi8wvERQp4PXdG%0Ag67hq6Hs1jQZMP7eNf0%3D%0A)](https://downloads.intercomcdn.com/i/o/1098149177/c5cb0bdc074ad66c43114940/trmnl-robinhood-plugin.png?expires=1743477300&signature=2a4fe8a62f2060e73c2b131ca685de7c4dde3cdec52e784b53e497e938af780b&req=dSAuHsh6lIBYXvMW1HO4zaFYg810ENpgiKIGevT869mxczQi8wvERQp4PXdG%0Ag67hq6Hs1jQZMP7eNf0%3D%0A) **Step 2 - Connect Robinhood** ------------------------------ Click to "Connect with Robinhood" on the right side of the screen, then click the Robinhood logo and follow the prompts to approve access to TRMNL. [![](https://downloads.intercomcdn.com/i/o/1098134522/9a4f4a898cc2d01a07828564/robinhood-allow-access.png?expires=1743477300&signature=a5a05f5b190d5d251d88ad06a8265b7743e42bf8c85af027666ed2cd483bf059&req=dSAuHsh9mYRdW%2FMW1HO4zduaSZD04v0CLtrON8tv9S126nZKUAJrBGYf99R9%0Aquyp3a9XEhTVd%2FYAPxE%3D%0A)](https://downloads.intercomcdn.com/i/o/1098134522/9a4f4a898cc2d01a07828564/robinhood-allow-access.png?expires=1743477300&signature=a5a05f5b190d5d251d88ad06a8265b7743e42bf8c85af027666ed2cd483bf059&req=dSAuHsh9mYRdW%2FMW1HO4zduaSZD04v0CLtrON8tv9S126nZKUAJrBGYf99R9%0Aquyp3a9XEhTVd%2FYAPxE%3D%0A) You'll be asked to choose a particular account within Robinhood, for example your stock portfolio or Crypto portfolio. [![](https://downloads.intercomcdn.com/i/o/1098134739/a04a54733387baae668865fd/robinhood-choose-account.png?expires=1743477300&signature=e965b5611cce13be72d57a2abf9be608d12d237f03a9e288c1ca93d26db7d3ff&req=dSAuHsh9mYZcUPMW1HO4zSaCoUg0nc4N%2BgVXxhjUBMXZNraIVHQ75hzrqZkX%0Az1cT6hAEHhbFfyU0vic%3D%0A)](https://downloads.intercomcdn.com/i/o/1098134739/a04a54733387baae668865fd/robinhood-choose-account.png?expires=1743477300&signature=e965b5611cce13be72d57a2abf9be608d12d237f03a9e288c1ca93d26db7d3ff&req=dSAuHsh9mYZcUPMW1HO4zSaCoUg0nc4N%2BgVXxhjUBMXZNraIVHQ75hzrqZkX%0Az1cT6hAEHhbFfyU0vic%3D%0A) After selecting an account (just 1 please), the Plaid modal will confirm the permissions TRMNL is requesting. They are the `investments` and `assets` products, which you can learn more about [here](https://plaid.com/docs/api/products/investments/) and [here](https://plaid.com/docs/api/products/assets/) . [![](https://downloads.intercomcdn.com/i/o/1098135160/8782bc8245de7b9e971c5f20/robinhood-plaid-modal-permissions.png?expires=1743477300&signature=04639171cf8d30c74fc12d75f43328ef3cff487d9307a26d0a25c312a8669f1c&req=dSAuHsh9mIBZWfMW1HO4zfNbCKThvqXUlWmDcuGuniVDRws9007%2B05ZCryIM%0ApccZoynzAYVFW3dtz8k%3D%0A)](https://downloads.intercomcdn.com/i/o/1098135160/8782bc8245de7b9e971c5f20/robinhood-plaid-modal-permissions.png?expires=1743477300&signature=04639171cf8d30c74fc12d75f43328ef3cff487d9307a26d0a25c312a8669f1c&req=dSAuHsh9mIBZWfMW1HO4zfNbCKThvqXUlWmDcuGuniVDRws9007%2B05ZCryIM%0ApccZoynzAYVFW3dtz8k%3D%0A) **Step 3 - Configure Plugin** ----------------------------- After selecting the final "Allow" option in Step 2, you'll need to finish setting up your plugin inside TRMNL. Start by giving it a name and refresh rate. ![](https://downloads.intercomcdn.com/i/o/1098136110/eedb050a418ab3e852370a4b/robinhood-plugin-configuration.png?expires=1743606000&signature=9940a7acb0add05a6ede6a25c002bfbe5168054495794eead62adba0cfa7a770&req=dSAuHsh9m4BeWfMW3Hu4gYdRNlFOVANFnUmlzfl9UeEmECatJUST6KVNLTDO%0Aqw%3D%3D%0A) Next, determine if you want to see a chart of your portfolio value over time, or simply a large number with your current portfolio value. [![](https://downloads.intercomcdn.com/i/o/1098136416/30efe67b212c3e13ca7879a9/robinhood-configuration-visual-type.png?expires=1743477300&signature=12c7852a4802ff962fb0a7df8eba4439bf610500e9b89170533ab6677f6ea25e&req=dSAuHsh9m4VeX%2FMW1HO4zYXfXL81EFD3iLXAiiogiNiBxnD2Librjr5E6jel%0Ag%2FWIJKX8tf9ssCgi2sk%3D%0A)](https://downloads.intercomcdn.com/i/o/1098136416/30efe67b212c3e13ca7879a9/robinhood-configuration-visual-type.png?expires=1743477300&signature=12c7852a4802ff962fb0a7df8eba4439bf610500e9b89170533ab6677f6ea25e&req=dSAuHsh9m4VeX%2FMW1HO4zYXfXL81EFD3iLXAiiogiNiBxnD2Librjr5E6jel%0Ag%2FWIJKX8tf9ssCgi2sk%3D%0A) The "Portfolio Value" type is a number, and the "Value Chart" type is a line graph, similar to [this](https://usetrmnl.com/plugins/robinhood_portfolio) example. **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Google Calendar very soon. Stay focused. **Troubleshooting** ------------------- If you'd like to disconnect Robinhood from TRMNL, first delete the plugin via the top right trash can icon when viewing the plugin configuration. Next, we suggest making a free Plaid.com account with your email or phone number. This will automatically look up and link all of your Plaid-driven financial connections, such as TRMNL. [![](https://downloads.intercomcdn.com/i/o/1098137363/be2189dcfa670f6958c61037/Robinhood+-+sharing+data.png?expires=1743477300&signature=72c3551d501d73df9400c0e94543e6c124595a2561fad9030626149c8e21aab9&req=dSAuHsh9moJZWvMW1HO4zapcAWpqHalrQJFW3Svx3DAMtl2VaqEpG1Rjb3w0%0AVmhzzVlH45mxUHWHZFQ%3D%0A)](https://downloads.intercomcdn.com/i/o/1098137363/be2189dcfa670f6958c61037/Robinhood+-+sharing+data.png?expires=1743477300&signature=72c3551d501d73df9400c0e94543e6c124595a2561fad9030626149c8e21aab9&req=dSAuHsh9moJZWvMW1HO4zapcAWpqHalrQJFW3Svx3DAMtl2VaqEpG1Rjb3w0%0AVmhzzVlH45mxUHWHZFQ%3D%0A) Simply click the TRMNL connection from the list in your Plaid dashboard, then select that you want to stop sharing information and click Continue. [![](https://downloads.intercomcdn.com/i/o/1098137582/1ec7adb5a201d3a0638bdd31/Robinhood+-+stop+sharing+confirm.png?expires=1743477300&signature=d6ecb3affaf63d8fae648dde62f41e0abbe639c6325e28653009a6ffa8bdf8bb&req=dSAuHsh9moRXW%2FMW1HO4zck31Luukat%2BCml%2Bnrpi5phZW0q%2BNr4CPkA2HW4r%0AOr44zr%2FIRCJsAKpZLm8%3D%0A)](https://downloads.intercomcdn.com/i/o/1098137582/1ec7adb5a201d3a0638bdd31/Robinhood+-+stop+sharing+confirm.png?expires=1743477300&signature=d6ecb3affaf63d8fae648dde62f41e0abbe639c6325e28653009a6ffa8bdf8bb&req=dSAuHsh9moRXW%2FMW1HO4zck31Luukat%2BCml%2Bnrpi5phZW0q%2BNr4CPkA2HW4r%0AOr44zr%2FIRCJsAKpZLm8%3D%0A) TRMNL will no longer have any access to your Robinhood account (via Plaid), but you can reconnect anytime by following Steps 1-2 above. Did this answer your question? 😞😐😃 --- # Google Analytics | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_f9025aa61c) [](#h_e6fe85cfae) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Google Analytics Web traffic and visitor analytics. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 5 months ago Table of contents [](#h_f9025aa61c) [](#h_e6fe85cfae) Connecting Google Analytics to TRMNL just takes a few seconds and doesn’t require any coding. Step 1 - Visit the Google Analytics plugin ------------------------------------------ Inside TRMNL, navigate to Plugins > Google Analytics. There you need to: * Link your Google Analytics account * Name your plugin (usually the name of your website) * Choose a [Google Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id) * Select a lookback period (Type) of 7, 30, or 90 days [![](https://downloads.intercomcdn.com/i/o/1193267011/bedda96e01cacec3537c185b/AD_4nXegiuesUVrBuDavryelLswnEZ7l7TEDdCUXlIkOE3O8YM3qViUHA6VLiYjOz59QpWUwplKM-aQU4dAhWrAwAgNv04JKuKyu_xigdfoYLahmCpmVNsIkquPWBZCN0-QPZWnX0v8FiRsKLtTCBEfiDmW_AVx4?expires=1743477300&signature=ed76e4580c3d070e0794ae46094f61ea3b0adda5d09abed92cdbe3df007214c3&req=dSEuFct4moFeWPMW1HO4zSf5gyM%2F43ieGDPsVkd6LKNb93RUPb%2FrFygSHM4n%0AJ9XsQ35a%2FwZayG6C8mc%3D%0A)](https://downloads.intercomcdn.com/i/o/1193267011/bedda96e01cacec3537c185b/AD_4nXegiuesUVrBuDavryelLswnEZ7l7TEDdCUXlIkOE3O8YM3qViUHA6VLiYjOz59QpWUwplKM-aQU4dAhWrAwAgNv04JKuKyu_xigdfoYLahmCpmVNsIkquPWBZCN0-QPZWnX0v8FiRsKLtTCBEfiDmW_AVx4?expires=1743477300&signature=ed76e4580c3d070e0794ae46094f61ea3b0adda5d09abed92cdbe3df007214c3&req=dSEuFct4moFeWPMW1HO4zSf5gyM%2F43ieGDPsVkd6LKNb93RUPb%2FrFygSHM4n%0AJ9XsQ35a%2FwZayG6C8mc%3D%0A) Step 2 - You're Done! --------------------- Based on your desired refresh settings, TRMNL will begin showcasing analytics data from account very soon. Stay focused. [![](https://downloads.intercomcdn.com/i/o/1193267005/ad093642bd86ec69d8e404d6/AD_4nXfOs9rYhK4GzA8nybTN8q2HoTGn8QqhyOF77fsKY9m9pjkSKvscWthgCGl_7sl1cDOUiAh3u1AHDrIVJB_vfQ1eZXrygink0HC7_3qvD1IhJi6hKR0sciT4NvTb8oleWY1ZvnhEcM_bdQpnR6ieiLyoyXgx?expires=1743477300&signature=958470d075173a17d20e93e1e7e8315b7fe48de36a542b953c7724c9945b903a&req=dSEuFct4moFfXPMW1HO4zdzPHOs6d1Z6GJEok%2FJK2O44I%2B%2Fz5rZvD%2FeFW%2BKf%0AkUk3pguERSrLKCg%2BWOE%3D%0A)](https://downloads.intercomcdn.com/i/o/1193267005/ad093642bd86ec69d8e404d6/AD_4nXfOs9rYhK4GzA8nybTN8q2HoTGn8QqhyOF77fsKY9m9pjkSKvscWthgCGl_7sl1cDOUiAh3u1AHDrIVJB_vfQ1eZXrygink0HC7_3qvD1IhJi6hKR0sciT4NvTb8oleWY1ZvnhEcM_bdQpnR6ieiLyoyXgx?expires=1743477300&signature=958470d075173a17d20e93e1e7e8315b7fe48de36a542b953c7724c9945b903a&req=dSEuFct4moFfXPMW1HO4zdzPHOs6d1Z6GJEok%2FJK2O44I%2B%2Fz5rZvD%2FeFW%2BKf%0AkUk3pguERSrLKCg%2BWOE%3D%0A) Did this answer your question? 😞😐😃 --- # Upcoming Movies | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_db4ac9e48c) [](#h_8f091be47f) [](#h_ce1e97f5b9) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Upcoming Movies What's playing in theaters, now or in the near future. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Table of contents [](#h_db4ac9e48c) [](#h_8f091be47f) [](#h_ce1e97f5b9) A casual feed of upcoming movies is just a couple clicks away. Credit to TMDB ([The Movie Database](https://www.themoviedb.org/) ) for providing this data. Step 1 - Visit the Upcoming Movies Plugin ----------------------------------------- Inside TRMNL, navigate to Plugins > Upcoming Movies. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210905827/bb588c374845ec37d8cda8c6f91f/image.png?expires=1743477300&signature=d28240273e4c1e5dab9e5433f17c616edfc74bfcfebc46ca20805b732b3236ce&req=dSImFsB%2BmIldXvMW1HO4zStC%2B9IFtI9H8ScEHEkBukKV4sFOMuWfKjLU4pq4%0AHkiUjT91Morh93VsEk8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210905827/bb588c374845ec37d8cda8c6f91f/image.png?expires=1743477300&signature=d28240273e4c1e5dab9e5433f17c616edfc74bfcfebc46ca20805b732b3236ce&req=dSImFsB%2BmIldXvMW1HO4zStC%2B9IFtI9H8ScEHEkBukKV4sFOMuWfKjLU4pq4%0AHkiUjT91Morh93VsEk8%3D%0A) **Step 2 - Configure Plugin** ----------------------------- First set your region / country on the right hand side to filter movies that are coming out in your area. Next set a "Filter By" preference. If you choose "Now Playing," movies that come out as recently as yesterday will be returned on your device. If you choose "Upcoming," movies that come out today or later will be shown. Step 3 - You're Done! --------------------- Based on your device's refresh settings, you'll begin seeing new movies soon. Stay focused. Did this answer your question? 😞😐😃 --- # beehiiv | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_158b16527e) [](#h_fca68b1ace) [](#h_d107f608c3) [](#h_0f1c0b85a2) [](#h_82bacca4f0) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) beehiiv The newsletter platform built for growth ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 7 months ago Table of contents [](#h_158b16527e) [](#h_fca68b1ace) [](#h_d107f608c3) [](#h_0f1c0b85a2) [](#h_82bacca4f0) Connecting beehiiv to TRMNL just takes a few seconds and doesn’t require any coding. Step 1 - Visit the beehiiv plugin --------------------------------- Inside TRMNL, navigate to Plugins > beehiiv. There you need to * Name your plugin (for example the name of your newsletter) * Add beehiiv API key * Add beehiiv Publication Id [![](https://trmnl.intercom-attachments-7.com/i/o/1181902826/74ffc1707b791c18c7f77ba8/AD_4nXc8n8cayAMrqEXUf1lBYmw_AJJXKeiWxo8okq1WvVjIba_kNbZZal4_wmcvOSrsWOcfcUcxdJ2nhCRuW9DyEk5xKwc5jzl5ZzwOAe7PN91TMWq2KiR44bjxN6lyR6QzRj8djVx_B08aWZSlmVa-3h_Hckbo?expires=1743477300&signature=1977bbd605f720f42f715d91f46fe8ac6c73f8d78586a887637876fb48541d42&req=dSEvF8B%2Bn4ldX%2FMW1HO4zcapLvaZaVnikbwbNSCyOam2gNHeDcxGo%2FXAorFP%0A0iKqR0j56ivsYDSeyqo%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1181902826/74ffc1707b791c18c7f77ba8/AD_4nXc8n8cayAMrqEXUf1lBYmw_AJJXKeiWxo8okq1WvVjIba_kNbZZal4_wmcvOSrsWOcfcUcxdJ2nhCRuW9DyEk5xKwc5jzl5ZzwOAe7PN91TMWq2KiR44bjxN6lyR6QzRj8djVx_B08aWZSlmVa-3h_Hckbo?expires=1743477300&signature=1977bbd605f720f42f715d91f46fe8ac6c73f8d78586a887637876fb48541d42&req=dSEvF8B%2Bn4ldX%2FMW1HO4zcapLvaZaVnikbwbNSCyOam2gNHeDcxGo%2FXAorFP%0A0iKqR0j56ivsYDSeyqo%3D%0A) Step 2 - Connect beehiiv ------------------------ Inside beehiiv, navigate to Settings > Integrations > API. There you will see Publication ID and API Keys [![](https://trmnl.intercom-attachments-7.com/i/o/1181902839/642ccb2386a5e914e63d0467/AD_4nXfIp1CzpUyAMxfQ64J0yjaFFNoxdBtmhKz8klSzI1HWuuTLmvakyjMzHXf8eBtmyws4RhqmrzqfSKiHKaBJt6caa1kUpc0wDHTpsNDrcGPEDJPKFyRuB9mwp2DCGU2J-llX0gaJ4_Nt_RrgbWyDfLwHbUE?expires=1743477300&signature=623b9a367a9529d2c82a455696fef52d34b3cad7b2ecc5d69eb8fc46e44f8077&req=dSEvF8B%2Bn4lcUPMW1HO4zSoQK%2Fuxt2t3lJCTOsQxGiapKb70JAECVylNJ9pi%0A1CltD3pFWAoDK1KWm1Y%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1181902839/642ccb2386a5e914e63d0467/AD_4nXfIp1CzpUyAMxfQ64J0yjaFFNoxdBtmhKz8klSzI1HWuuTLmvakyjMzHXf8eBtmyws4RhqmrzqfSKiHKaBJt6caa1kUpc0wDHTpsNDrcGPEDJPKFyRuB9mwp2DCGU2J-llX0gaJ4_Nt_RrgbWyDfLwHbUE?expires=1743477300&signature=623b9a367a9529d2c82a455696fef52d34b3cad7b2ecc5d69eb8fc46e44f8077&req=dSEvF8B%2Bn4lcUPMW1HO4zSoQK%2Fuxt2t3lJCTOsQxGiapKb70JAECVylNJ9pi%0A1CltD3pFWAoDK1KWm1Y%3D%0A) Step 3 - Create new API Key --------------------------- To create a new API just select New API key then Copy the New API Key Step 4 - Configure Plugin ------------------------- Back inside TRMNL, paste this API key in the configuration form then paste your API V2 key give this plugin a name. Click Save. [![](https://trmnl.intercom-attachments-7.com/i/o/1181902860/c6e2bb7be5477ae8cf705c4b/AD_4nXdLWZC-utsNAB_4FHdhYFBuFyQCl_nwIjv39MKX3kP93C0qJCnO0e50zRi8rDFCcy0yP3EQk4Z4PjVfOSy1afOEObuHKIAffSNaRLfVaBBm_5xAhg8oLD_nW-ibAWcASumK_AVZdX7_HzIo7JZvD43LBg?expires=1743477300&signature=ff342e809572bb5f199c3e6707ee43ce46b42d874a8e8223d3f306f3e1505438&req=dSEvF8B%2Bn4lZWfMW1HO4za2yAu9Bx70wPF27OdA4%2BVytBZtITKMMNS%2FQTJHy%0AetGFJWsp4BDMzVT1z58%3D%0A)](https://trmnl.intercom-attachments-7.com/i/o/1181902860/c6e2bb7be5477ae8cf705c4b/AD_4nXdLWZC-utsNAB_4FHdhYFBuFyQCl_nwIjv39MKX3kP93C0qJCnO0e50zRi8rDFCcy0yP3EQk4Z4PjVfOSy1afOEObuHKIAffSNaRLfVaBBm_5xAhg8oLD_nW-ibAWcASumK_AVZdX7_HzIo7JZvD43LBg?expires=1743477300&signature=ff342e809572bb5f199c3e6707ee43ce46b42d874a8e8223d3f306f3e1505438&req=dSEvF8B%2Bn4lZWfMW1HO4za2yAu9Bx70wPF27OdA4%2BVytBZtITKMMNS%2FQTJHy%0AetGFJWsp4BDMzVT1z58%3D%0A) Step 5 - You're Done! --------------------- Based on your desired refresh settings, TRMNL will begin showcasing useful highlights from your beehiiv account very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Shopping List | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_26832c2cdc) [](#h_d8bdaeca9b) [](#h_5dd575cc05) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Shopping List Simple tracker for upcoming purchases. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Table of contents [](#h_26832c2cdc) [](#h_d8bdaeca9b) [](#h_5dd575cc05) Don't forget a single thing (especially toothpaste) on your next grocery run with our native Shopping List plugin. Step 1 - Visit the Shopping List Plugin --------------------------------------- Inside TRMNL, navigate to Plugins > Shopping List. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210909656/44d539680274e8ccedb58a87008d/image.png?expires=1743477300&signature=a1991e8303e1c5cc13fa3c074aa362ca7e25252cc43adb07201428d488898228&req=dSImFsB%2BlIdaX%2FMW1HO4zdymL3wlb58ZSvoLXln2JthFVFuGHTP1GPIk6KKT%0AHr4EV812HTSV9MSmJK0%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1210909656/44d539680274e8ccedb58a87008d/image.png?expires=1743477300&signature=a1991e8303e1c5cc13fa3c074aa362ca7e25252cc43adb07201428d488898228&req=dSImFsB%2BlIdaX%2FMW1HO4zdymL3wlb58ZSvoLXln2JthFVFuGHTP1GPIk6KKT%0AHr4EV812HTSV9MSmJK0%3D%0A) Step 2 - Configure Plugin ------------------------- Add as many items as you'd like. We actually encrypt these by the way. \[**Coming Soon** - TRMNL CLI with command `trmnl go shopping_list add milk` (to add milk to your Shopping List, from your machine's native terminal!\] Step 3 - You're Done! --------------------- Based on your device's refresh settings, you'll see changes to your Shopping List very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Stock Price | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_937c5b5c31) [](#h_35dde9fe19) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Stock Price Public securities valuation by ticker ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Table of contents [](#h_937c5b5c31) [](#h_35dde9fe19) Picking the stocks you want to keep up with takes a few seconds and doesn’t require any coding. **Step 1 - Visit the Stock Price plugin** ----------------------------------------- Inside TRMNL, navigate to Plugins > Stock Price. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1249285169/94b4d6cbe5c3d429d5e798f0ab75/trmnl-stock-price-plugin.png?expires=1743477300&signature=1f633efbadb7f33e016244aa2b9a8d253e221ebc13150f442355da1d3dcb30b9&req=dSIjH8t2mIBZUPMW1HO4zYn4QvPO9UKc%2B9KoR4KY3Z6Boo28klhkpwyn18GF%0AFnnFRjVhmvZhAcpvdYo%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1249285169/94b4d6cbe5c3d429d5e798f0ab75/trmnl-stock-price-plugin.png?expires=1743477300&signature=1f633efbadb7f33e016244aa2b9a8d253e221ebc13150f442355da1d3dcb30b9&req=dSIjH8t2mIBZUPMW1HO4zYn4QvPO9UKc%2B9KoR4KY3Z6Boo28klhkpwyn18GF%0AFnnFRjVhmvZhAcpvdYo%3D%0A) Here you can: * Name your Plugin * Provide tickers (**USA markets only**) you would like to track (separated by a comma) * Choose a currency (email [\[email protected\]](/cdn-cgi/l/email-protection#a0d4c5c1cde0d5d3c5d4d2cdcecc8ec3cfcd) if yours is not listed) We currently support the following indexes, in addition to tickers: VIX, MXACW, XWLD, MXUSA, MXEF, MXEA, DJI, RUI, RUT, OEX, OEX, SPX, XSP, XSP, SPESG, XND To track crypto prices, use the CoinMarketCap plugin. **Step 2 - You're Done!** ------------------------- Based on your desired refresh settings, TRMNL will begin showcasing the most recent price and daily change very soon. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1225576176/41472d17733e52c985f4d6e30647/p69a6gh9mm3czx6gk0g69x7z8opr?expires=1743477300&signature=60cfc40e816ab39c1ef44e52eca83c71659b0599adf775e075cc3e61cae1b009&req=dSIlE8x5m4BYX%2FMW1HO4zY%2Fjps5CODWSP8tt%2FTWjru%2BPuAXY7fdqjZQqw5kO%0Akr6paeqtyom2VzscsQI%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1225576176/41472d17733e52c985f4d6e30647/p69a6gh9mm3czx6gk0g69x7z8opr?expires=1743477300&signature=60cfc40e816ab39c1ef44e52eca83c71659b0599adf775e075cc3e61cae1b009&req=dSIlE8x5m4BYX%2FMW1HO4zY%2Fjps5CODWSP8tt%2FTWjru%2BPuAXY7fdqjZQqw5kO%0Akr6paeqtyom2VzscsQI%3D%0A) **Troubleshooting** * You can show up to 12 tickers at a time. We suggest creating multiple instances of the Stock Price plugin, then building a Mashup layout from your Playlists tab, if you want to see more on the same screen. * To edit a ticker, create a new plugin instance with the correct symbol and delete the incorrect plugin instance. * Some currencies like EUR will use a "," separator versus "." for decimals * If you submit a ticker that is invalid, it will show the code you entered with no price [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1225573807/9215375dd6583f01ce6f213a28a5/Screen+Shot+2024-10-22+at+11_55_56+PM.png?expires=1743477300&signature=452d7264f8c4dcd376eefab843ef827ce996d2d3cbb47d8ebadb477a7a020fea&req=dSIlE8x5nolfXvMW1HO4zXYR29w90Tfk2wW41xoKXE%2B7foQ0lnp2TK792MBc%0APGmF%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1225573807/9215375dd6583f01ce6f213a28a5/Screen+Shot+2024-10-22+at+11_55_56+PM.png?expires=1743477300&signature=452d7264f8c4dcd376eefab843ef827ce996d2d3cbb47d8ebadb477a7a020fea&req=dSIlE8x5nolfXvMW1HO4zXYR29w90Tfk2wW41xoKXE%2B7foQ0lnp2TK792MBc%0APGmF%0A) * Some tickers require a different format than their trading syntax. [Read this post](https://www.marketdata.app/education/stocks/how-to-look-up-preferred-stock-symbols/) to learn more, for example NASDAQ should be input as "LFMDP". Another resource for figuring out tickers is [here](https://www.marketdata.app/education/options/complete-list-of-index-tickers/) . Did this answer your question? 😞😐😃 --- # Statuspage | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Statuspage Uptime and incident tracking for your tools. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 6 months ago Did this answer your question? 😞😐😃 --- # Weather | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_8cee686e19) [](#h_4c339dff61) [](#h_1bd21f82f5) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Weather Your local forecast. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Table of contents [](#h_8cee686e19) [](#h_4c339dff61) [](#h_1bd21f82f5) Adding a weather tracker takes just a few seconds with data generously provided by [WeatherAPI.com](https://www.weatherapi.com) . Step 1 - Visit the Weather Plugin --------------------------------- Inside TRMNL, navigate to Plugins > Weather. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1226285614/2c11a6d9e9ae0fea027fc8b03899/TRMNL+weather+plugin.png?expires=1743477300&signature=463a2a05e52a58be391b1819afac9a25bb7e71403895a67417bfb22ddf03a90c&req=dSIlEMt2mIdeXfMW1HO4zRSE6FSeAEpcojvcIsaArOY9Z6%2B6025Dycu16kPM%0Agd8RQhtp65ZFK0wWQe0%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1226285614/2c11a6d9e9ae0fea027fc8b03899/TRMNL+weather+plugin.png?expires=1743477300&signature=463a2a05e52a58be391b1819afac9a25bb7e71403895a67417bfb22ddf03a90c&req=dSIlEMt2mIdeXfMW1HO4zRSE6FSeAEpcojvcIsaArOY9Z6%2B6025Dycu16kPM%0Agd8RQhtp65ZFK0wWQe0%3D%0A) Step 2 - Configure Plugin ------------------------- Give your plugin a **name**, in case you want to track forecasts in multiple locations. This name is shown in the bottom right corner of your device screen. Next input a **location**. You may have to try a couple different combinations, for example "Atlanta, GA" (city, 2-digit province) works, but for ambiguous locations it's better to be verbose. So "LA" could mean Los Angeles, but also Louisiana, or some other country we don't even know about. Finally choose a **temperature unit**, either Fahrenheit or Celsius. Step 3 - You're Done! --------------------- Based on your device's refresh settings, you'll begin seeing weather reports very soon. Note: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched has changes. So if you set the weather to refresh every 15 mins, but the forecast is the same for 4 hours, the 'refreshed at' timestamp will remain the same. Stay focused. Did this answer your question? 😞😐😃 --- # Gumroad | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_ac161921cf) [](#h_9164f8f9b8) [](#h_152d897ea1) [](#h_6699993621) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Gumroad See how much stuff you're selling. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 5 months ago Table of contents [](#h_ac161921cf) [](#h_9164f8f9b8) [](#h_152d897ea1) [](#h_6699993621) Connecting your Gumroad to TRMNL takes just a few seconds. Step 1 - Visit the Gumroad Plugin --------------------------------- Inside TRMNL, navigate to Plugins > Gumroad. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1237722764/241639ccdf2b4d8568d701fc5668/Screen+Shot+2024-11-02+at+3_14_48+PM.png?expires=1743477300&signature=4c6070ea8c4fe1f4bbbb33c0df50704ae0bf8bb7153762799cce891821f24cc9&req=dSIkEc58n4ZZXfMW1HO4zdDRtulJfO8XC4435kTluxZgRgHIduyGM8dkevKN%0Asu%2BKK7qv5veXO%2FbBKHY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1237722764/241639ccdf2b4d8568d701fc5668/Screen+Shot+2024-11-02+at+3_14_48+PM.png?expires=1743477300&signature=4c6070ea8c4fe1f4bbbb33c0df50704ae0bf8bb7153762799cce891821f24cc9&req=dSIkEc58n4ZZXfMW1HO4zdDRtulJfO8XC4435kTluxZgRgHIduyGM8dkevKN%0Asu%2BKK7qv5veXO%2FbBKHY%3D%0A) **Step 2 - Connect Gumroad** ---------------------------- Click to "Connect with Gumroad" on the right side of the screen, review TRMNL applications then select "Authorize" [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1237723678/7545e4baf6b1b953e589db46c424/Screen+Shot+2024-11-02+at+3_15_55+PM.png?expires=1743477300&signature=871e5b3566badd8d800b0918ab7fdad4140c7eedf98bc39bebbbd941a6e34f86&req=dSIkEc58nodYUfMW1HO4zYZxML%2BAXV4Qn%2FIT2ZPypsxvskkwrOYwt81BlJA1%0AQ89E1aU%2FxsxLJsQiAxc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1237723678/7545e4baf6b1b953e589db46c424/Screen+Shot+2024-11-02+at+3_15_55+PM.png?expires=1743477300&signature=871e5b3566badd8d800b0918ab7fdad4140c7eedf98bc39bebbbd941a6e34f86&req=dSIkEc58nodYUfMW1HO4zYZxML%2BAXV4Qn%2FIT2ZPypsxvskkwrOYwt81BlJA1%0AQ89E1aU%2FxsxLJsQiAxc%3D%0A) **Step 3 - Configure Plugin** ----------------------------- Give your channel plugin a name then select a "Lookback Period." This is simply the number of days you prefer TRMNL to tally sales count and sales value. **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Gumroad data very soon. Stay focused. Did this answer your question? 😞😐😃 --- # RSS Feed | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_9ae76b8b46) [](#h_ad00ede8e2) [](#h_50a03f6786) [](#h_0635db1d4d) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) RSS Feed Get updates from your favorite website, blog and online publications ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 5 months ago Table of contents [](#h_9ae76b8b46) [](#h_ad00ede8e2) [](#h_50a03f6786) [](#h_0635db1d4d) Setting up your favorite RSS Feed is easy with TRMNL. Step 1 - Visit the RSS Feed Plugin ---------------------------------- Inside TRMNL, navigate to Plugins > RSS and create a plugin Name. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262720413/21cc474797172a309573314d3ce5/Screen+Shot+2024-11-22+at+5_26_13+PM.png?expires=1743477300&signature=10e3508850221ea66e0e8661b074819a227dce945530d9e39e186cc68ffbd9e2&req=dSIhFM58nYVeWvMW1HO4zXBG9XHpwSU2dxbWQpJIF96gJBvXQC%2BTLPjPpxBR%0Adt%2By%2BNdrnFX0hIdiv9Y%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262720413/21cc474797172a309573314d3ce5/Screen+Shot+2024-11-22+at+5_26_13+PM.png?expires=1743477300&signature=10e3508850221ea66e0e8661b074819a227dce945530d9e39e186cc68ffbd9e2&req=dSIhFM58nYVeWvMW1HO4zXBG9XHpwSU2dxbWQpJIF96gJBvXQC%2BTLPjPpxBR%0Adt%2By%2BNdrnFX0hIdiv9Y%3D%0A) **Step 2 - Add RSS Feed URL** ----------------------------- Drop in the URL of the RSS Feed you'd like to point to. XML files [like this one](https://search.cnbc.com/rs/search/combinedcms/view.xml?partnerId=wrss01&id=100003114) will work best. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262721874/7bcd6cfb4351884fe4562cd05340/Screen+Shot+2024-11-22+at+5_28_39+PM.png?expires=1743477300&signature=18b2f0b4023dcdb87517dcea0322ae6ca3756648c78080f228ae95913cca68b1&req=dSIhFM58nIlYXfMW1HO4zZbTfr%2BLVeSxpP0jg%2BJgj09BAvSnELkl1TT1Dco3%0AC9TFpNRqa2l5kzu7qdI%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262721874/7bcd6cfb4351884fe4562cd05340/Screen+Shot+2024-11-22+at+5_28_39+PM.png?expires=1743477300&signature=18b2f0b4023dcdb87517dcea0322ae6ca3756648c78080f228ae95913cca68b1&req=dSIhFM58nIlYXfMW1HO4zZbTfr%2BLVeSxpP0jg%2BJgj09BAvSnELkl1TT1Dco3%0AC9TFpNRqa2l5kzu7qdI%3D%0A) **Step 3 - Press Save and You're Done!** ---------------------------------------- Based on your device's refresh settings, you'll begin seeing RSS feed data very soon. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262723434/5634a9b53aca3ca234593ff80d6a/Screen+Shot+2024-11-22+at+5_31_05+PM.png?expires=1743477300&signature=d5ec9336f343807cfb324185b6ff4ec77172385f63fccfa2e6ba0124d16af9b1&req=dSIhFM58noVcXfMW1HO4zSo%2FvM7zswxKOYPnMcN4wDeZh9Gs3ys8SSUMmuFL%0AyyyTT8nCAKpGxbrz0YI%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1262723434/5634a9b53aca3ca234593ff80d6a/Screen+Shot+2024-11-22+at+5_31_05+PM.png?expires=1743477300&signature=d5ec9336f343807cfb324185b6ff4ec77172385f63fccfa2e6ba0124d16af9b1&req=dSIhFM58noVcXfMW1HO4zSo%2FvM7zswxKOYPnMcN4wDeZh9Gs3ys8SSUMmuFL%0AyyyTT8nCAKpGxbrz0YI%3D%0A) **Popular RSS Feeds** --------------------- We curated a list of some of the most popular RSS feeds on the internet, [check it out here](https://docs.google.com/spreadsheets/d/1EyQdmrFG9DHTK1VcGPV3BHi2jM4rtSjde95OR_shDHk/edit?gid=0#gid=0) . Stay focused. Did this answer your question? 😞😐😃 --- # Language Learning | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_d9153a497d) [](#h_ab5ff1806c) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Language Learning Discover new words in your target language. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 4 months ago Table of contents [](#h_d9153a497d) [](#h_ab5ff1806c) The TRMNL language learning plugin is simple -- 1 new word, every 12 hours, with an example sentence. Setting it up takes just a few seconds. **Step 1 - Visit the Language Learning Plugin** ----------------------------------------------- Inside TRMNL, navigate to Plugins > Language Learning. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303324607/7ee20edb5edde494577b5670ef4b/trmnl-language-learning-plugin.png?expires=1743477300&signature=714be1c6018a12218cd323659a7925a04a208429843b5b965487ea720240ef8a&req=dSMnFcp8mYdfXvMW1HO4zYAeDtQ9BsvBHauVoAezh88Kd%2Bg3YZaJuFIdC4gg%0AaiJA%2B12Px%2BXMtuRfjN0%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303324607/7ee20edb5edde494577b5670ef4b/trmnl-language-learning-plugin.png?expires=1743477300&signature=714be1c6018a12218cd323659a7925a04a208429843b5b965487ea720240ef8a&req=dSMnFcp8mYdfXvMW1HO4zYAeDtQ9BsvBHauVoAezh88Kd%2Bg3YZaJuFIdC4gg%0AaiJA%2B12Px%2BXMtuRfjN0%3D%0A) Choose a target language from the dropdown, then click Save. **Step 2 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing new words and sentences very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Screensaver | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Screensaver Peaceful graphics to keep you in flow. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 4 months ago TRMNL has a small (but growing) repository of fair use images that comprise our Screensaver graphic library. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303310107/82509658bacfcc41509f9230505d/trmnl-screensaver-plugin.jpeg?expires=1743477300&signature=e697f44cb7217d96b4688ac7c267a87bd65b95b9c33692cee7c3d49db40c0765&req=dSMnFcp%2FnYBfXvMW1HO4zW1KyTzjCbnQQqotAxb25PsVneGH3VpGV4bLt%2FRs%0A85Wbi53wKN%2FrZlGgxIs%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303310107/82509658bacfcc41509f9230505d/trmnl-screensaver-plugin.jpeg?expires=1743477300&signature=e697f44cb7217d96b4688ac7c267a87bd65b95b9c33692cee7c3d49db40c0765&req=dSMnFcp%2FnYBfXvMW1HO4zW1KyTzjCbnQQqotAxb25PsVneGH3VpGV4bLt%2FRs%0A85Wbi53wKN%2FrZlGgxIs%3D%0A) The currently collection of images is limited and we welcome submissions from our community. Email [\[email protected\]](/cdn-cgi/l/email-protection#cebaabafa38ebbbdabbabca3a0a2e0ada1a3) with images you'd like to be considered for the Screensaver library. Did this answer your question? 😞😐😃 --- # Email Meter | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_1756ce6bd2) [](#h_22be7b5a33) [](#h_135c87c4f8) [](#h_a3ec83aade) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Email Meter Benchmark stats from your Gmail or Microsoft inbox. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 5 months ago Table of contents [](#h_1756ce6bd2) [](#h_22be7b5a33) [](#h_135c87c4f8) [](#h_a3ec83aade) Measuring how you leverage email requires 2 things: a free or paid Email Meter account, and a little bit of (safe, ethical) web browser hacking. To make a free Email Meter account, visit [emailmeter.com](https://emailmeter.com/) . Then follow along below. **Step 1 - Visit the Email Meter Plugin** ----------------------------------------- Inside TRMNL, navigate to Plugins > Email Meter. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247934195/e3a96f74999ce07bcd48a410ef1c/email-meter-plugin-example.png?expires=1743477300&signature=6c1f13afbf2d198a42cc05295c66c489fed178cbd30c1e2e46545f923bdaab99&req=dSIjEcB9mYBWXPMW1HO4zeqOwpahwuPhTHRIXS2u19QAbt2jVEbM7dqYcZkZ%0Adg4zN2fP2QnL%2FwBFqkE%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247934195/e3a96f74999ce07bcd48a410ef1c/email-meter-plugin-example.png?expires=1743477300&signature=6c1f13afbf2d198a42cc05295c66c489fed178cbd30c1e2e46545f923bdaab99&req=dSIjEcB9mYBWXPMW1HO4zeqOwpahwuPhTHRIXS2u19QAbt2jVEbM7dqYcZkZ%0Adg4zN2fP2QnL%2FwBFqkE%3D%0A) **Step 2 - Find your Email Meter API Token** -------------------------------------------- Now for some web hacking. Don't worry, no coding experience is required. Using either Chrome or Firefox (web browser), log into Email Meter and visit your dashboard. It will look something like this: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247937188/7362f0a76e8252d2585367e1c816/email-meter-dashboard-example.png?expires=1743477300&signature=584d0c5056f3aea731e148b7b17f3fbeadaa6857602dbb9fa3e4f47519524a9a&req=dSIjEcB9moBXUfMW1HO4zdcNPt2VHB30sk%2FBuN8kHd2HW8mGZ3%2Bw5iLHUoPw%0Auc7UeJJJclNTIcHIcbc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247937188/7362f0a76e8252d2585367e1c816/email-meter-dashboard-example.png?expires=1743477300&signature=584d0c5056f3aea731e148b7b17f3fbeadaa6857602dbb9fa3e4f47519524a9a&req=dSIjEcB9moBXUfMW1HO4zdcNPt2VHB30sk%2FBuN8kHd2HW8mGZ3%2Bw5iLHUoPw%0Auc7UeJJJclNTIcHIcbc%3D%0A) Next, open your browser's Developer Tools via the browser's toolbar, navigating to View > Developer > Developer tools like so: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247937972/028b39f4f20802b7f22511fbdfb2/image.png?expires=1743477300&signature=0fa0d6d8af8a2bed33b5fa0965224b28105584a334bcf5a0cdca9115ac91ca0c&req=dSIjEcB9mohYW%2FMW1HO4zUrDoBqiZmckbJAnEuljMvIB2sPgu%2F30zUjEdQsp%0AadTkAHdjMagVEOtjq8s%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247937972/028b39f4f20802b7f22511fbdfb2/image.png?expires=1743477300&signature=0fa0d6d8af8a2bed33b5fa0965224b28105584a334bcf5a0cdca9115ac91ca0c&req=dSIjEcB9mohYW%2FMW1HO4zUrDoBqiZmckbJAnEuljMvIB2sPgu%2F30zUjEdQsp%0AadTkAHdjMagVEOtjq8s%3D%0A) A new section should appear in your browser. It may be along the bottom, the right side, or even popped out as a new tab. Click on the "Network" tab of this new pane. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247939040/2c570783013244bd5fd379243cde/image.png?expires=1743477300&signature=9de578389089f7408b4346287b44cd26a025f86926a717a1f7f596f3723a1a63&req=dSIjEcB9lIFbWfMW1HO4zSKPpgY%2B0WWL2G1TuekXDGhM%2FmLpa04kty1%2BnCrQ%0Axxhry%2BPfwBzamTPavls%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247939040/2c570783013244bd5fd379243cde/image.png?expires=1743477300&signature=9de578389089f7408b4346287b44cd26a025f86926a717a1f7f596f3723a1a63&req=dSIjEcB9lIFbWfMW1HO4zSKPpgY%2B0WWL2G1TuekXDGhM%2FmLpa04kty1%2BnCrQ%0Axxhry%2BPfwBzamTPavls%3D%0A) Now, reload the web page. You should see a lot of text populate this Network tab. After the page loads, type "team-labels" in the Filter field: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247940337/5e93a2894d7a2e35d4335d7e6a02/image.png?expires=1743477300&signature=1573a79bf4c84b70d4edf9b51f2520cc174e76435b15ebc8f5bb8b4aceb5c089&req=dSIjEcB6nYJcXvMW1HO4zWz9jiCxxFuP3RgHotwzp01Tad%2Bzh7p3Yw51Lkzn%0AgKfxG5flJeytF%2BwF6bQ%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247940337/5e93a2894d7a2e35d4335d7e6a02/image.png?expires=1743477300&signature=1573a79bf4c84b70d4edf9b51f2520cc174e76435b15ebc8f5bb8b4aceb5c089&req=dSIjEcB6nYJcXvMW1HO4zWz9jiCxxFuP3RgHotwzp01Tad%2Bzh7p3Yw51Lkzn%0AgKfxG5flJeytF%2BwF6bQ%3D%0A) Click on the result with the (orange) graphic, which will also have a Method value of "GET + Preflight" in one of the table columns to the right. On the new 'Headers' tab, scroll down to the Request Headers section and find the "Authorization" row. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247942433/9226e9bad1a12c0ce744f87c3fa1/email-meter-api-token.png?expires=1743477300&signature=62478c33379faf999925c5cc6eb2365cb55d3cb9a3f83b5f1a86e2da82b9da63&req=dSIjEcB6n4VcWvMW1HO4zUiBTmOSK8DEpIc1RZHKai8FGJkcy9r%2FTsALD9H5%0AhUSq1d0TyV%2FyP54yggo%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247942433/9226e9bad1a12c0ce744f87c3fa1/email-meter-api-token.png?expires=1743477300&signature=62478c33379faf999925c5cc6eb2365cb55d3cb9a3f83b5f1a86e2da82b9da63&req=dSIjEcB6n4VcWvMW1HO4zUiBTmOSK8DEpIc1RZHKai8FGJkcy9r%2FTsALD9H5%0AhUSq1d0TyV%2FyP54yggo%3D%0A) Copy the long string of characters after the word "Token" from this row. Note that you may need to click open to expand the Request Headers section if you don't see these rows of content. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your API token into the API Token field: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247944172/70251f2460f273b76de13acce04d/image.png?expires=1743477300&signature=f6d677470fd83ab70bfe944287563d89a51dbdfa9181b07bd1a009ce6439179e&req=dSIjEcB6mYBYW%2FMW1HO4zbfu%2BZwuEhUS5cV%2BjYYlmxaLBNUMge90sIl%2BcJMt%0AAvwmY943egjBAQ8Axjw%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1247944172/70251f2460f273b76de13acce04d/image.png?expires=1743477300&signature=f6d677470fd83ab70bfe944287563d89a51dbdfa9181b07bd1a009ce6439179e&req=dSIjEcB6mYBYW%2FMW1HO4zbfu%2BZwuEhUS5cV%2BjYYlmxaLBNUMge90sIl%2BcJMt%0AAvwmY943egjBAQ8Axjw%3D%0A) Optionally give your Email Meter plugin a name, then click Save. **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Email Meter analytics very soon. **Note**: the Email Meter team is aware of our integration and they are considering a simpler solution to connecting your account. Also, your API token may expire automatically for security purposes. If you notice incorrect stats, repeat Steps 2-3 above. Stay focused. Did this answer your question? 😞😐😃 --- # Eight Sleep | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Eight Sleep Coming soon. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 months ago Did this answer your question? 😞😐😃 --- # ChatGPT | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_c5a68a47a2) [](#h_ce37389cf8) [](#h_6a22222442) [](#h_b3d2229bba) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) ChatGPT What can ChatGPT help you with? ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 5 months ago Table of contents [](#h_c5a68a47a2) [](#h_ce37389cf8) [](#h_6a22222442) [](#h_b3d2229bba) Add a dash of artificial intelligence to your TRMNL e-ink display with ChatGPT. Step 1 - Visit the ChatGPT Plugin --------------------------------- Inside TRMNL, navigate to Plugins > ChatGPT and create a plugin Name. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253810445/54b6ce2dcdb5f7e44f55421bf0da/Screen+Shot+2024-11-15+at+5_45_41+PM.png?expires=1743477300&signature=04d940dafb860b12d58c4606b9c4f829656e3d1933802ab4238c85a382d0b1b8&req=dSIiFcF%2FnYVbXPMW1HO4zdeBPRT85qVeTQmkH4nSMgF20MIBgyq68DAQVzWX%0AL9rGWMX25h9pV5cmoc4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253810445/54b6ce2dcdb5f7e44f55421bf0da/Screen+Shot+2024-11-15+at+5_45_41+PM.png?expires=1743477300&signature=04d940dafb860b12d58c4606b9c4f829656e3d1933802ab4238c85a382d0b1b8&req=dSIiFcF%2FnYVbXPMW1HO4zdeBPRT85qVeTQmkH4nSMgF20MIBgyq68DAQVzWX%0AL9rGWMX25h9pV5cmoc4%3D%0A) **Step 2 - Create ChatGPT API Key** ----------------------------------- Go to [this link](https://platform.openai.com/settings/organization/api-keys) and create a new secret API. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253812246/88596fb0e8e5d9c64700b0dc8751/Screen+Shot+2024-11-15+at+5_48_27+PM.png?expires=1743477300&signature=b18ec564b3487645ff3f9da6115a4a3070c005eb8dff453ecbb6940db32f2f88&req=dSIiFcF%2Fn4NbX%2FMW1HO4zZtxVleZ7Sib5KHWZeG4iBNZivt1NaWp2vHafaIt%0A7fhdzSmtpTCMTqhjhEg%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253812246/88596fb0e8e5d9c64700b0dc8751/Screen+Shot+2024-11-15+at+5_48_27+PM.png?expires=1743477300&signature=b18ec564b3487645ff3f9da6115a4a3070c005eb8dff453ecbb6940db32f2f88&req=dSIiFcF%2Fn4NbX%2FMW1HO4zZtxVleZ7Sib5KHWZeG4iBNZivt1NaWp2vHafaIt%0A7fhdzSmtpTCMTqhjhEg%3D%0A) Give your key a name, add to a project and select All Permissions, then select create key. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253812624/5266e342ed9a0f499d13ae2c368b/Screen+Shot+2024-11-15+at+5_48_57+PM.png?expires=1743477300&signature=c398ceabf047e4aa74501ef429c1484c7f0517c786cc356bba75ac84b406f3b4&req=dSIiFcF%2Fn4ddXfMW1HO4zVSn811UIoFGxAErlJLegIE4LaJNtKNO4BOr3Wxv%0AADg%2FysaKzDg2mvJa4gY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253812624/5266e342ed9a0f499d13ae2c368b/Screen+Shot+2024-11-15+at+5_48_57+PM.png?expires=1743477300&signature=c398ceabf047e4aa74501ef429c1484c7f0517c786cc356bba75ac84b406f3b4&req=dSIiFcF%2Fn4ddXfMW1HO4zVSn811UIoFGxAErlJLegIE4LaJNtKNO4BOr3Wxv%0AADg%2FysaKzDg2mvJa4gY%3D%0A) Copy your API Key. **Step 3 - Configure Plugin** ----------------------------- Paste your Account API Key and create a prompt you want pulled repeatedly and press save. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253815703/0cdbeb9c111e0197ece8bdd3f682/Screen+Shot+2024-11-15+at+5_53_53+PM.png?expires=1743477300&signature=fed6b30eecd495a7969fc0f1aca6a90ef27f0f1eb602cb38f09e569394a32665&req=dSIiFcF%2FmIZfWvMW1HO4zYQvvTv%2FqhwoWmmpiwjzeaKJeTHhfjJBEzBVS0%2F%2B%0Akpvm%2BcYmZ4CncH9Bbbs%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253815703/0cdbeb9c111e0197ece8bdd3f682/Screen+Shot+2024-11-15+at+5_53_53+PM.png?expires=1743477300&signature=fed6b30eecd495a7969fc0f1aca6a90ef27f0f1eb602cb38f09e569394a32665&req=dSIiFcF%2FmIZfWvMW1HO4zYQvvTv%2FqhwoWmmpiwjzeaKJeTHhfjJBEzBVS0%2F%2B%0Akpvm%2BcYmZ4CncH9Bbbs%3D%0A) **Step 4 - You're Done!** ------------------------- [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253817025/af6ce6fac52e46dbcc145537018a/Screen+Shot+2024-11-15+at+5_55_52+PM.png?expires=1743477300&signature=690d7a8f91f0eab99df97f349f04ddfcf5239163208bf5b4ea0295514da84f25&req=dSIiFcF%2FmoFdXPMW1HO4zdLx0pchrb0cWAEg%2FNlah5VXydrZw9ra0ywtdWaZ%0AN4TmOtk0kgDzyPp2ico%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1253817025/af6ce6fac52e46dbcc145537018a/Screen+Shot+2024-11-15+at+5_55_52+PM.png?expires=1743477300&signature=690d7a8f91f0eab99df97f349f04ddfcf5239163208bf5b4ea0295514da84f25&req=dSIiFcF%2FmoFdXPMW1HO4zdLx0pchrb0cWAEg%2FNlah5VXydrZw9ra0ywtdWaZ%0AN4TmOtk0kgDzyPp2ico%3D%0A) Based on your device's refresh settings, you'll begin seeing ChatGPT data very soon. You will need to make sure you are below your rate limits or else TRMNL may show an error from ChatGPT. Details on rate limits [here](https://platform.openai.com/docs/guides/rate-limits?context=tier-one#usage-tiers) and error codes [here](https://platform.openai.com/docs/guides/error-codes/api-errors) . Stay focused. Did this answer your question? 😞😐😃 --- # Outlook Calendar | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_5c027e2a5a) [](#h_85c15ca329) [](#h_8cb205ac9c) [](#h_8e2de4e8f5) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Outlook Calendar View your upcoming schedule, apointments, and tasks. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated this week Table of contents [](#h_5c027e2a5a) [](#h_85c15ca329) [](#h_8cb205ac9c) [](#h_8e2de4e8f5) Connecting your Outlook 365 Calendar to TRMNL takes just a few seconds. **Step 1 - Visit the Outlook Calendar Plugin** ---------------------------------------------- Inside TRMNL, navigate to Plugins > Outlook Calendar. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268653992/291f94424686cc9349718dda8646/trmnl-outlook-calendar-plugin.png?expires=1743477300&signature=519acfc6d3ead73c02d69e3c83c7b9d12d8778def466d3c80df5ac29a64ebf71&req=dSIhHs97nohWW%2FMW1HO4zU0x7DrQZHyk4C62wOdJ1CvwHQOQjYYutAFor7VD%0AlCWRCEG%2FdlIIK28%2BH8A%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268653992/291f94424686cc9349718dda8646/trmnl-outlook-calendar-plugin.png?expires=1743477300&signature=519acfc6d3ead73c02d69e3c83c7b9d12d8778def466d3c80df5ac29a64ebf71&req=dSIhHs97nohWW%2FMW1HO4zU0x7DrQZHyk4C62wOdJ1CvwHQOQjYYutAFor7VD%0AlCWRCEG%2FdlIIK28%2BH8A%3D%0A) **Step 2 - Connect Outlook Calendar** ------------------------------------- **Note**: _Enabling this plugin requires publishing your Outlook calendar to an anonymized "ICS" style format. This is similar to publishing an unlisted YouTube video or "view with link" permission Google Docs file. If your calendar has sensitive data you may limit the published permissions to only expose timestamps, not event details._ First log in to your Outlook email at [outlook.office365.com](https://outlook.office365.com) . Visit your calendar on the left side navigation, then click the settings gear cog in the top right corner. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268644107/3d6c1b4e471501b168d6b7a61aaf/outlook-calendar-view.png?expires=1743477300&signature=bfda4be251155a41443321c9201d3520e930893b468561378f160fc6e82dbf14&req=dSIhHs96mYBfXvMW1HO4zbOR6tfCwErGtrNwrcetoqDakpq4qNSpgWpUsoGX%0AvOnr%2FldkFjbb4hIEtbk%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268644107/3d6c1b4e471501b168d6b7a61aaf/outlook-calendar-view.png?expires=1743477300&signature=bfda4be251155a41443321c9201d3520e930893b468561378f160fc6e82dbf14&req=dSIhHs96mYBfXvMW1HO4zbOR6tfCwErGtrNwrcetoqDakpq4qNSpgWpUsoGX%0AvOnr%2FldkFjbb4hIEtbk%3D%0A) Click the "Shared calendars" link, then underneath the "Publish a calendar" heading you can select a calendar + set permissions. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268644689/1546a677f4f832a57e894f04b345/image.png?expires=1743477300&signature=ed49ce3e1d7d858e65455602564e1f27e11e8c0bc39eb2bfcccdb987b3f96dd2&req=dSIhHs96mYdXUPMW1HO4zfkQuR84cIOutAq%2BQM2teSC3sC6MoaVOa%2BUq7Y9P%0AnHl%2BUj23K04Zp9oogY4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268644689/1546a677f4f832a57e894f04b345/image.png?expires=1743477300&signature=ed49ce3e1d7d858e65455602564e1f27e11e8c0bc39eb2bfcccdb987b3f96dd2&req=dSIhHs96mYdXUPMW1HO4zfkQuR84cIOutAq%2BQM2teSC3sC6MoaVOa%2BUq7Y9P%0AnHl%2BUj23K04Zp9oogY4%3D%0A) Click Publish, then click to copy the 2nd link labeled ICS. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268647467/2f614244b0e6eb8a6ed36330ab78/outlook-calendar-published-ics-link.png?expires=1743477300&signature=090b2eec3bb3f99338a7a3b739d388ac8c56ef0b52c9a3572b29f9c4a7268374&req=dSIhHs96moVZXvMW1HO4za57PBlL%2F2gI%2Bk2hiyyN6LbqwcmQ286rhsEWuAfE%0AXW9RRlui4j%2FjMFDEK4M%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268647467/2f614244b0e6eb8a6ed36330ab78/outlook-calendar-published-ics-link.png?expires=1743477300&signature=090b2eec3bb3f99338a7a3b739d388ac8c56ef0b52c9a3572b29f9c4a7268374&req=dSIhHs96moVZXvMW1HO4za57PBlL%2F2gI%2Bk2hiyyN6LbqwcmQ286rhsEWuAfE%0AXW9RRlui4j%2FjMFDEK4M%3D%0A) **Troubleshooting** If you don't see the ability to Share or Publish a calendar, first make sure that calendar sharing is enabled at the administrator level. The following view is accessible from your Office 356 admin area: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1274966999/ce6848a648120379361b6ae0e95a/office-365-admin-sharing-settings.png?expires=1743477300&signature=ff123e976247878dabd47b4c46ced345e957b9bcb4c25f40ba6b422fef984b6a&req=dSIgEsB4m4hWUPMW1HO4zYbXxgVRUFlyZsZRkP7aGvGhOyyhSa82hMJFCHr8%0AwlbwKv6inER8JcTxnKc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1274966999/ce6848a648120379361b6ae0e95a/office-365-admin-sharing-settings.png?expires=1743477300&signature=ff123e976247878dabd47b4c46ced345e957b9bcb4c25f40ba6b422fef984b6a&req=dSIgEsB4m4hWUPMW1HO4zYbXxgVRUFlyZsZRkP7aGvGhOyyhSa82hMJFCHr8%0AwlbwKv6inER8JcTxnKc%3D%0A) After confirming that users may share their calendars, retry the beginning of Step 2 above. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your published calendar link into the ICS input field. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1274965109/98d3cbff2dc82797032bd507e551/outlook-calendar-ics.png?expires=1743477300&signature=49202ad35a474abc3bc75129049d14ba8a7becc7d9ff45347d69f2e5088dbfcf&req=dSIgEsB4mIBfUPMW1HO4zeerngq16Q7gFdJD5zBr00Tsmm2aBF9TyLGOR7iZ%0AHMZniFR%2BY292FlhvO90%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1274965109/98d3cbff2dc82797032bd507e551/outlook-calendar-ics.png?expires=1743477300&signature=49202ad35a474abc3bc75129049d14ba8a7becc7d9ff45347d69f2e5088dbfcf&req=dSIgEsB4mIBfUPMW1HO4zeerngq16Q7gFdJD5zBr00Tsmm2aBF9TyLGOR7iZ%0AHMZniFR%2BY292FlhvO90%3D%0A) Next you may set a few preferences. **Time Format** 24 hours vs 12 hour (AM/PM) style. **Include Description** If "Yes," a truncated preview of the event's description field will be shown beneath the event title. Note that on the "default" Layout (explained below), setting this option to "No" will ~double the number of events shown thanks to saved space. **First Day of Week** Applies only to the "month" view. Similar to native Outlook Calendar (month view), this allows you to set which day of the week is represented by the first column, furthest to the left. Defaults to Sunday. **Ignored Phrases** Supports a list of words that will be used to ignore events based on title or description content. **Layout** * Default (upcoming events for today, tomorrow, next day) * Week (5-7 days upcoming) * Month (this calendar month) Note that only "Week" and "Month" layouts support multi-day events, but every layout supports all-day events. **Example** - Week layout with multi-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641947/975784ce19c21471b61c23b53fe3/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=1adc02de9a6586c728662cb380d75dcca246405e58b21c6770850a45b473ca8d&req=dSIhHs96nIhbXvMW1HO4za4Z2lUj%2BJWNLyn4J%2FcdpoO8RKMiEAFMyMrJUBe0%0AJfrNQ%2FPtuve7KJpyEDk%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641947/975784ce19c21471b61c23b53fe3/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=1adc02de9a6586c728662cb380d75dcca246405e58b21c6770850a45b473ca8d&req=dSIhHs96nIhbXvMW1HO4za4Z2lUj%2BJWNLyn4J%2FcdpoO8RKMiEAFMyMrJUBe0%0AJfrNQ%2FPtuve7KJpyEDk%3D%0A) **Example** - Default layout with all-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641949/9ff6ebc26b61de3ebf3315364ec5/image.png?expires=1743477300&signature=c39380e7ff7ffe4e5fc28c8d8843602b6ae4782714b3f25bf35223deea1ccde1&req=dSIhHs96nIhbUPMW1HO4zW7SFfc9T2AJnaH9YEp%2FVsVFXgD5jsrKWPSg39dY%0A3k4BGNkBHD5DhYVAzgo%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641949/9ff6ebc26b61de3ebf3315364ec5/image.png?expires=1743477300&signature=c39380e7ff7ffe4e5fc28c8d8843602b6ae4782714b3f25bf35223deea1ccde1&req=dSIhHs96nIhbUPMW1HO4zW7SFfc9T2AJnaH9YEp%2FVsVFXgD5jsrKWPSg39dY%0A3k4BGNkBHD5DhYVAzgo%3D%0A) **Example** - Month layout with multi-day event: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641948/4e26e6aa3efbcf6f298b23afaaf4/trmnl-google-calendar-month-example.png?expires=1743477300&signature=c0cc702325265dc17245eabdaf5ef9cc19b44913918f8424b92fc70ad7f58b64&req=dSIhHs96nIhbUfMW1HO4zfU4qi8IuCqK5ldPeuR%2Brf8b0ANfj4ZTRlOwB%2BL3%0AUX%2BKJXv4KbcpKZhedeE%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1268641948/4e26e6aa3efbcf6f298b23afaaf4/trmnl-google-calendar-month-example.png?expires=1743477300&signature=c0cc702325265dc17245eabdaf5ef9cc19b44913918f8424b92fc70ad7f58b64&req=dSIhHs96nIhbUfMW1HO4zfU4qi8IuCqK5ldPeuR%2Brf8b0ANfj4ZTRlOwB%2BL3%0AUX%2BKJXv4KbcpKZhedeE%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Outlook Calendar events very soon. Note: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched contains changes. Thus setting your layout to "Default" (which shows 2-3 days) but updating an event 4+ days in the future will not trigger a screen refresh. Stay focused. Did this answer your question? 😞😐😃 --- # Screenshot | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_500c135310) [](#h_c6336d48ce) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Screenshot Capture any web page. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_500c135310) [](#h_c6336d48ce) With the Screenshot plugin you can take a snapshot of any public web page, with any type of content. This could be a CCTV video feed, sports scores, or your child's lunch menu. Step 1 - Visit the Screenshot plugin ------------------------------------ Inside TRMNL, navigate to Plugins > Screenshot. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298107/41496724566070fedde711e0907a/trmnl-screenshot-plugin.png?expires=1743477300&signature=5ec0f97bcb9c54103cd7440bba4ff314d24a65a9bf9ee15526d0d6739ba0ea2f&req=dSMnFct3lYBfXvMW1HO4zWYRKotRlJVeMrudOJ0gAjVGv0W1vXj0hTQ6miEn%0A0oN6cCLhzH9AcBcDPUg%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298107/41496724566070fedde711e0907a/trmnl-screenshot-plugin.png?expires=1743477300&signature=5ec0f97bcb9c54103cd7440bba4ff314d24a65a9bf9ee15526d0d6739ba0ea2f&req=dSMnFct3lYBfXvMW1HO4zWYRKotRlJVeMrudOJ0gAjVGv0W1vXj0hTQ6miEn%0A0oN6cCLhzH9AcBcDPUg%3D%0A) First provide a website URL: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298293/3d62e38bed8fd60b7863266c68da/screenshot-plugin-url.png?expires=1743477300&signature=3f6f3df66b4b8d52f97c4341bccd0be4c1dd34238931413eb13a1d88c595d27b&req=dSMnFct3lYNWWvMW1HO4zRCDrMVY7CloubIkiPblxp3XQmwIaA07nshjuJMn%0A9NqFlBAAEmZ0jDHhVCQ%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298293/3d62e38bed8fd60b7863266c68da/screenshot-plugin-url.png?expires=1743477300&signature=3f6f3df66b4b8d52f97c4341bccd0be4c1dd34238931413eb13a1d88c595d27b&req=dSMnFct3lYNWWvMW1HO4zRCDrMVY7CloubIkiPblxp3XQmwIaA07nshjuJMn%0A9NqFlBAAEmZ0jDHhVCQ%3D%0A) Next, optionally add Header values in case the website needs to be authenticated. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1354106208/e4fb13881640fc02a86aa17b2a18/trmnl-screenshot-plugin-http-headers.png?expires=1743477300&signature=856daafeb52635806c50f3c9e8094ea3ecec328e1a9422f48c55dcc995d86baa&req=dSMiEsh%2Bm4NfUfMW1HO4zW461IKm%2BwSHn%2FovC2qzO4mTFSA6rgyJCg3mWwZh%0Ai2zCdVkCxjK7mnAkYTg%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1354106208/e4fb13881640fc02a86aa17b2a18/trmnl-screenshot-plugin-http-headers.png?expires=1743477300&signature=856daafeb52635806c50f3c9e8094ea3ecec328e1a9422f48c55dcc995d86baa&req=dSMiEsh%2Bm4NfUfMW1HO4zW461IKm%2BwSHn%2FovC2qzO4mTFSA6rgyJCg3mWwZh%0Ai2zCdVkCxjK7mnAkYTg%3D%0A) Assign header key/values with = and separate them with `&`. So `authorization=bearer xxx&content-type=application/json` becomes: ​ { "authorization":"bearer xxx", "content-type":"application/json" } If a key/value requires an `=` sign in the value, for example `bearer jwt==`, simply encode it as `%3D`, so `bearer%20jwt%3D%3D`. Finally, give your Screenshot plugin instance a name and click save. Step 2 - You're Done! --------------------- Based on your desired refresh settings, TRMNL will begin generating screenshots with this URL. **Troubleshooting** _The website doesn't look the same as in my browser._ * The TRMNL display resolution is 800x480. In your browser (Chrome/Firefox) hold down shift+ctrl+c (Windows) or shift+cmd+c (Mac) to enter the Inspector mode. Here you can change the viewport to 800x480 to simulate how TRMNL will see the contents. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298459/304ed0604c823e82ed122e738476/trmnl-screenshot-page-size-inspector.png?expires=1743477300&signature=1a005bd40a7be8f3eb3c0bc642b0c61b1080745c6d1374c407643445ba93861b&req=dSMnFct3lYVaUPMW1HO4zYcrGJ%2B3IpBVbViyGyNH4jjvmwiA1%2BGhNC41a6M8%0AyBCLTu9RcaH0aD54luU%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303298459/304ed0604c823e82ed122e738476/trmnl-screenshot-page-size-inspector.png?expires=1743477300&signature=1a005bd40a7be8f3eb3c0bc642b0c61b1080745c6d1374c407643445ba93861b&req=dSMnFct3lYVaUPMW1HO4zYcrGJ%2B3IpBVbViyGyNH4jjvmwiA1%2BGhNC41a6M8%0AyBCLTu9RcaH0aD54luU%3D%0A) _The website styling is broken_. * TRMNL does not visit this website directly and take a screenshot. Instead, we copy/paste the page's HTML contents into a new browser, then screenshot that result. This HTML will include references to CSS and JavaScript, which in most cases allows the page to be recreated anywhere. * In some cases, however, the web page may references CSS (styling) via relative links such as `"/styles.css"` instead of absolute links like `"https://some-website.com/styles.css"` . * For this situation, TRMNL attempts to convert all relative URLs for CSS + JavaScript to a full URL, granting our generated browser the context it needs to find your styling and interactive elements. This is not a perfect solution however. * If you have control over the web page you are screenshotting, we suggest ensuring that styles and other externally included libraries are available with absolute URLs instead of relative paths. _Images don't load._ * Similar to our note above on relative vs absolute content paths, TRMNL needs embedded images to point to a full URL. So if your web page has an "" tag with a source attribute such as "photo.jpg", TRMNL cannot determine which URL this photo should be loaded from. * While TRMNL attempts to find the image on your website URLs server, this is not a perfect solution. * Image "src" attributes need to contain absolute paths to ensure accuracy during screenshot generation. Did this answer your question? 😞😐😃 --- # GitHub Contributors | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_b1aaa4db1c) [](#h_b56f42d829) [](#h_268e1840b5) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) GitHub Contributors Summarized committer progress. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 4 months ago Table of contents [](#h_b1aaa4db1c) [](#h_b56f42d829) [](#h_268e1840b5) For a quick snapshot of your team's interactions with a given repository, the GitHub Contributors plugin can be set up in just a couple minutes. **Step 1 - Visit the GitHub Contributors plugin** ------------------------------------------------- Inside TRMNL, navigate to Plugins > GitHub Contributors. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303317277/84f49f32672d3fc584c10ce1eeaa/trmnl-github-contributors-plugin.png?expires=1743477300&signature=e75ae9c4f97b3aba9e1ad78f2c5ecd6aa2571b7563e9d7eb460e3de65b394074&req=dSMnFcp%2FmoNYXvMW1HO4zUNnLHx0IXAiBGSQQS%2BJBHrXN10pV0x43%2FjPv0qh%0AmHKd4h8W4wSqnh5y9dw%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303317277/84f49f32672d3fc584c10ce1eeaa/trmnl-github-contributors-plugin.png?expires=1743477300&signature=e75ae9c4f97b3aba9e1ad78f2c5ecd6aa2571b7563e9d7eb460e3de65b394074&req=dSMnFcp%2FmoNYXvMW1HO4zUNnLHx0IXAiBGSQQS%2BJBHrXN10pV0x43%2FjPv0qh%0AmHKd4h8W4wSqnh5y9dw%3D%0A) **Step 2 - Configure Plugin** ----------------------------- First provide the repository you'd like to monitor, along with a "Fine Grained Access Token" from your GitHub account. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303318645/bc0a6c505ecf93fa154a3fc65467/trmnl-github-contributor-fields.png?expires=1743477300&signature=3a3ca7e87a590b00e5ace8b0be3cc2b6122e3b34d4029916a7e027bc30391cd3&req=dSMnFcp%2FlYdbXPMW1HO4zeUdffhfMXw7wuXwySmS5VYIoBqgrjHNQUAfpeeq%0AF0HoNtHaPQWd3mi3sQM%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303318645/bc0a6c505ecf93fa154a3fc65467/trmnl-github-contributor-fields.png?expires=1743477300&signature=3a3ca7e87a590b00e5ace8b0be3cc2b6122e3b34d4029916a7e027bc30391cd3&req=dSMnFcp%2FlYdbXPMW1HO4zeUdffhfMXw7wuXwySmS5VYIoBqgrjHNQUAfpeeq%0AF0HoNtHaPQWd3mi3sQM%3D%0A) This access token only needs the "Read Repository Metadata" scope and can be created here: [https://github.com/settings/tokens?type=beta](https://github.com/settings/tokens?type=beta) After generation your GitHub should look like this: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303319304/9b2d8003df6e30a320661ad86dc8/github-fine-token-creation.png?expires=1743477300&signature=68db2e098c86a26481d953cf24805b81d36441f969ad49a25b0c9ca34f718ccf&req=dSMnFcp%2FlIJfXfMW1HO4zbnI5FX3swN8zSrS7Av7wES6jLfRfrrbOpfxpxuB%0ARwR8LXIm1lU9FCipy7o%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1303319304/9b2d8003df6e30a320661ad86dc8/github-fine-token-creation.png?expires=1743477300&signature=68db2e098c86a26481d953cf24805b81d36441f969ad49a25b0c9ca34f718ccf&req=dSMnFcp%2FlIJfXfMW1HO4zbnI5FX3swN8zSrS7Av7wES6jLfRfrrbOpfxpxuB%0ARwR8LXIm1lU9FCipy7o%3D%0A) The access token will be visible only once, at the top of this screen. Provide it inside TRMNL and click Save. **Step 3 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing contributor stats very soon. Stay focused. ​ Did this answer your question? 😞😐😃 --- # Importing and exporting private plugins | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_4112dcb4f0) [](#h_beb59a12f0) [](#h_8082721aed) [](#h_581fb988f0) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Importing and exporting private plugins You worked hard developing your plugin - now share it! ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_4112dcb4f0) [](#h_beb59a12f0) [](#h_8082721aed) [](#h_581fb988f0) There's a rich ecosystem of user-developed plugins outside of our [official integrations](https://usetrmnl.com/integrations) , and it's very simple to share and utilize these handcrafted private plugins. We've developed a standard ZIP file format that plugin developers (dare we say, artisans) can follow. It conveniently combines plugin settings, custom fields, and markup into one archive. Exporting a private plugin -------------------------- Exporting is as simple as clicking **Export** on the settings page for the specific plugin. A ZIP file will be downloaded with the entire contents of your plugin, including its settings, custom fields, and markup. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1377194969/89b08c4d39a1014ad64edf1f9fd7/CleanShot+2025-02-12+at+09_26_20%402x.png?expires=1743477300&signature=9513126730f0a59af54f3c4e3069c56009a32e6008819d3d2f34185a8e4e9611&req=dSMgEch3mYhZUPMW1HO4zUUmIaEY15ZDg1PAG6xJOOY0HdrOS2aI06WXaakj%0AM2EZAxRrhE4vhS%2FYL3k%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1377194969/89b08c4d39a1014ad64edf1f9fd7/CleanShot+2025-02-12+at+09_26_20%402x.png?expires=1743477300&signature=9513126730f0a59af54f3c4e3069c56009a32e6008819d3d2f34185a8e4e9611&req=dSMgEch3mYhZUPMW1HO4zUUmIaEY15ZDg1PAG6xJOOY0HdrOS2aI06WXaakj%0AM2EZAxRrhE4vhS%2FYL3k%3D%0A) Importing a private plugin -------------------------- On the [Private Plugin settings page](https://usetrmnl.com/plugin_settings?keyname=private_plugin) , simply click **Import new** and select the ZIP file to import. A new plugin will automatically be created and added to your playlist. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1377198793/970119152304656587d6f3eb8646/CleanShot+2025-02-12+at+09_28_31%402x.png?expires=1743477300&signature=18cdb498fd3e1d55b4e4cf281b6b7a648d4cdee665bce12f260724ab51c87f10&req=dSMgEch3lYZWWvMW1HO4zSF992onISPtYV8ksikdQtNgDZQ3773bmEW9X3gC%0A19z%2F%2Fe2KFjbf%2FRM4Yj8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1377198793/970119152304656587d6f3eb8646/CleanShot+2025-02-12+at+09_28_31%402x.png?expires=1743477300&signature=18cdb498fd3e1d55b4e4cf281b6b7a648d4cdee665bce12f260724ab51c87f10&req=dSMgEch3lYZWWvMW1HO4zSF992onISPtYV8ksikdQtNgDZQ3773bmEW9X3gC%0A19z%2F%2Fe2KFjbf%2FRM4Yj8%3D%0A) Plugin ZIP file contents ------------------------ The ZIP archive of a private plugin contains the following flat list of files (no subdirectories): settings.yml full.liquid half\_horizontal.liquid half\_vertical.liquid quadrant.liquid `settings.yml` is required. The `.liquid` files correspond to the individual [Liquid HTML templates](https://docs.usetrmnl.com/go/private-plugins/templates) for each viewport. The maximum template file size is 1 MB. settings.yml ------------ See [this article](https://intercom.help/trmnl/en/articles/10513740-custom-plugin-form-builder) for details on configuring `custom_fields`. \--- \# required: name: My Awesome Plugin strategy: polling # polling | webhook | static refresh\_interval: 60 # minutes; 15 | 60 | 360 | 720 | 1440 \# polling strategy only: polling\_url: https://example.com polling\_headers: '' polling\_verb: GET # GET | POST \# static strategy only: static\_data: '{"foo": "bar"}' # JSON string \# generic options: no\_screen\_padding: 'no' # 'no' | 'yes' (quotes are necessary!) dark\_mode: 'no' # 'no' | 'yes' (quotes are necessary!) \# custom plugin form fields (optional, see docs): custom\_fields: \- keyname: units name: Units field\_type: select options: - Metric - Imperial Did this answer your question? 😞😐😃 --- # Compare custom plugin types | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_f0839e6230) [](#h_408c8fe817) [](#h_864a583072) [](#h_5fd8956c0d) [](#h_531f88b37b) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Compare custom plugin types There are several ways to write a custom plugin - which is right for your application? ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_f0839e6230) [](#h_408c8fe817) [](#h_864a583072) [](#h_5fd8956c0d) [](#h_531f88b37b) From easiest to hardest: | | | | | | | --- | --- | --- | --- | --- | | | **Public** | **Server required?** | **OAuth required?** | **Language** | | **Private Plugin** | no | no | no | [Liquid](https://docs.usetrmnl.com/go/private-plugins/templates) | | **Recipe** | yes | no | no | [Liquid](https://docs.usetrmnl.com/go/private-plugins/templates) | | **Screenshot** | no | yes | no | any | | **Public Plugin** | yes | yes | yes | any | | **BYOS** | no | yes | no | any | Private Plugin -------------- The simplest way to write a custom plugin is as a [Private Plugin](https://intercom.help/trmnl/en/articles/9510536-private-plugins) . Feed it data via HTTP polling or a webhook, design a beautiful dashboard with our [UI framework](https://usetrmnl.com/framework/) , and we handle the rest. While private plugins are not publicly listed in the TRMNL directory, they can be conveniently shared with others by [exporting](https://intercom.help/trmnl/en/articles/10542599-importing-and-exporting-private-plugins) . For inspiration, check out the list of [awesome community plugins](https://github.com/usetrmnl/plugins) . Recipe ------ Recipes are simply private plugins that have been approved by the TRMNL team to be listed publicly. As recipe master, any changes you make will be automatically propagated to others who have installed your recipe. Learn more about [building and submitting recipes](https://intercom.help/trmnl/en/articles/10122094-plugin-recipes) . Screenshot ---------- Another way to get custom content to a TRMNL is to leverage the [Screenshot plugin](https://intercom.help/trmnl/en/articles/10302121-screenshot) . Write and host your own web app that serves up a TRMNL-friendly web page, and the Screenshot plugin will periodically poll your app to generate screen images. Public Plugin ------------- A public plugin is the most capable - and the most complex - custom plugin type. You provide a web application with an OAuth2 authentication flow, per-user setting management, and generated markup. TRMNL servers will periodically poll the application to generate images for the device. Learn how to [build and submit a public plugin](https://docs.usetrmnl.com/go/plugin-marketplace/introduction) . BYOS ---- For complete control over your TRMNL hardware, you can [Bring Your Own Server](https://docs.usetrmnl.com/go/diy/byos) . This capability bypasses all plugin functionality provided above. Did this answer your question? 😞😐😃 --- # General | TRMNL Help Center [Skip to main content](#main-content) [All Collections](/en/) General ![](https://intercom.help/trmnl/assets/svg/icon:book-bookmark/FFF) Getting started, FAQ, advanced features. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) By Ryan1 author20 articles [How to set up a new deviceUnboxing and connecting TRMNL for the first time.](https://help.usetrmnl.com/en/articles/9416306-how-to-set-up-a-new-device) [Special FunctionsHow to set up custom behaviors on your device.](https://help.usetrmnl.com/en/articles/9672080-special-functions) [How to Disassemble your TRMNLOpening up your device safely.](https://help.usetrmnl.com/en/articles/10003228-how-to-disassemble-your-trmnl) [How to Assemble your TRMNLClosing up your device safely.](https://help.usetrmnl.com/en/articles/10003236-how-to-assemble-your-trmnl) [TRMNL mobile appHow to use TRMNL on your iPhone or Android. Sort of.](https://help.usetrmnl.com/en/articles/10041383-trmnl-mobile-app) [Frequently Asked QuestionsPricing, use cases, and more.](https://help.usetrmnl.com/en/articles/8797283-frequently-asked-questions) [Custom plugins with Apple ShortcutsBuild TRMNL plugins directly from your Apple device.](https://help.usetrmnl.com/en/articles/10108737-custom-plugins-with-apple-shortcuts) [How refresh rates workUnderstanding when and how your device content is updated.](https://help.usetrmnl.com/en/articles/10113695-how-refresh-rates-work) [Plugin recipesSharing private plugins for other users to install.](https://help.usetrmnl.com/en/articles/10122094-plugin-recipes) [MashupsHow to build split-screen plugins.](https://help.usetrmnl.com/en/articles/10168132-mashups) [Device / WiFi troubleshootingUnderstanding error screens and connection issues.](https://help.usetrmnl.com/en/articles/10193157-device-wifi-troubleshooting) [Applying the screen (anti glare) protectorWhat is this screen film thing in my box?](https://help.usetrmnl.com/en/articles/10217443-applying-the-screen-anti-glare-protector) [Manually flash firmwareHow to set your device to a specific firmware version](https://help.usetrmnl.com/en/articles/10271569-manually-flash-firmware) [Refer & EarnBenefits and ideas for sharing TRMNL with your network.](https://help.usetrmnl.com/en/articles/10345253-refer-earn) [Translations and LocalizationsAccessibility improvements for your language or region.](https://help.usetrmnl.com/en/articles/10371653-translations-and-localizations) [International Customs / Duty FeesPricing impact when buying TRMNL from abroad.](https://help.usetrmnl.com/en/articles/10498361-international-customs-duty-fees) [Mirroring a Device](https://help.usetrmnl.com/en/articles/10530871-mirroring-a-device) [Device battery FAQOn charging and predicting your TRMNL's energy.](https://help.usetrmnl.com/en/articles/10556850-device-battery-faq) [How to change my time zoneSet a time zone from your user profile.](https://help.usetrmnl.com/en/articles/10575123-how-to-change-my-time-zone) [Finding your TRMNL Mac AddressFor debugging and customer support.](https://help.usetrmnl.com/en/articles/10614205-finding-your-trmnl-mac-address) --- # Fastmail Calendar | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_5dcc42048e) [](#h_2a21c29c63) [](#h_a62e236032) [](#h_6b10229053) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Fastmail Calendar Know what's on your schedule. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated this week Table of contents [](#h_5dcc42048e) [](#h_2a21c29c63) [](#h_a62e236032) [](#h_6b10229053) Connecting your Fastmail Calendar to TRMNL takes just a few seconds. **Step 1 - Visit the Fastmail Calendar Plugin** ----------------------------------------------- Inside TRMNL, navigate to Plugins > Fastmail Calendar. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309302016/7071d89009920f92ddc3e45cb6b9/trmnl-fastmail-calendar-plugin.png?expires=1743477300&signature=5444ae52339f65ed8ebc1ff2e87945dfe8724ca0bb219af371de71847bd29bd7&req=dSMnH8p%2Bn4FeX%2FMW1HO4zR6BXqasNMNh%2F0Ndrk%2B5gI9rDz6rmLRmIK317UYi%0AYingcPZ6GL2Fzskdz2E%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309302016/7071d89009920f92ddc3e45cb6b9/trmnl-fastmail-calendar-plugin.png?expires=1743477300&signature=5444ae52339f65ed8ebc1ff2e87945dfe8724ca0bb219af371de71847bd29bd7&req=dSMnH8p%2Bn4FeX%2FMW1HO4zR6BXqasNMNh%2F0Ndrk%2B5gI9rDz6rmLRmIK317UYi%0AYingcPZ6GL2Fzskdz2E%3D%0A) **Step 2 - Connect Fastmail Calendar** -------------------------------------- **Note**: _Enabling this plugin requires publishing your Fastmail calendar to an anonymized "ICS" style format. This is similar to publishing an unlisted YouTube video or "view with link" permission Google Docs file. If your calendar has sensitive data you may limit the published permissions to only expose timestamps, not event details._ Inside Fastmail, navigate to Settings > Calendar. Beside the calendar you wish to integrate with TRMNL, click the Edit & Share button. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309298292/b5333575c9acd9bf6b156be24ac4/fastmail-calendar-sharing-example.png?expires=1743477300&signature=3f7c70cf959560d989d62c7b919924fa37cfcbb648f1f5cbd2959fcd7d8f05d2&req=dSMnH8t3lYNWW%2FMW1HO4zexTpmSFk2tOEJ4Ij1dKy4p0EMKq6zaL%2B07kp2Cl%0AX8ZBwqlLds10LLyyLjY%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309298292/b5333575c9acd9bf6b156be24ac4/fastmail-calendar-sharing-example.png?expires=1743477300&signature=3f7c70cf959560d989d62c7b919924fa37cfcbb648f1f5cbd2959fcd7d8f05d2&req=dSMnH8t3lYNWW%2FMW1HO4zexTpmSFk2tOEJ4Ij1dKy4p0EMKq6zaL%2B07kp2Cl%0AX8ZBwqlLds10LLyyLjY%3D%0A) In the **Publish** section and click the toggle button next to Full event details or Free/busy information, depending on what information you wish to share. ([source](https://www.fastmail.help/hc/en-us/articles/360060590793-Calendar-sharing) ) Click "Copy to clipboard" below this long URL. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your published calendar link into the ICS input field. Important: replace the "webcal" text with "https" so your full URL looks like `https://user.fm/calendar/v1-....`. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254989/12ed03b21313c38bad3b8b612033/outlook-calendar-ics.png?expires=1743477300&signature=e952f0eeb79b40da506e364be3213e1645e88838b614fb0d929fb58350afdb3e&req=dSMnH8t7mYhXUPMW1HO4zRRil5K4H2YEpK8V8mYyppdBdRkywyqg2nZW%2Fna%2F%0ACL2dTEJ6FlkLKCTYl8w%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254989/12ed03b21313c38bad3b8b612033/outlook-calendar-ics.png?expires=1743477300&signature=e952f0eeb79b40da506e364be3213e1645e88838b614fb0d929fb58350afdb3e&req=dSMnH8t7mYhXUPMW1HO4zRRil5K4H2YEpK8V8mYyppdBdRkywyqg2nZW%2Fna%2F%0ACL2dTEJ6FlkLKCTYl8w%3D%0A) Next you may set a few preferences. **Time Format** 24 hours vs 12 hour (AM/PM) style. **Include Description** If "Yes," a truncated preview of the event's description field will be shown beneath the event title. Note that on the "default" Layout (explained below), setting this option to "No" will ~double the number of events shown thanks to saved space. **First Day of Week** Applies only to the "month" view. Tis allows you to set which day of the week is represented by the first column, furthest to the left. Defaults to Sunday. **Ignored Phrases** Supports a list of words that will be used to ignore events based on title or description content. **Layout** * Default (upcoming events for today, tomorrow, next day) * Week (5-7 days upcoming) * Month (this calendar month) Note that only "Week" and "Month" layouts support multi-day events, but every layout supports all-day events. **Example** - Week layout with multi-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254986/ba9f12a8d7f59af871d70f9fa6fd/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=5796af8201ae26586db4b829ab3ebc165dbb7c65368beb83298b88b74a7d68a2&req=dSMnH8t7mYhXX%2FMW1HO4zYOwo2%2Fgu10sFtxwEAWkiHE5sQP07HZQjANZAij4%0ATeexDctq6dP24r%2BtoRs%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254986/ba9f12a8d7f59af871d70f9fa6fd/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=5796af8201ae26586db4b829ab3ebc165dbb7c65368beb83298b88b74a7d68a2&req=dSMnH8t7mYhXX%2FMW1HO4zYOwo2%2Fgu10sFtxwEAWkiHE5sQP07HZQjANZAij4%0ATeexDctq6dP24r%2BtoRs%3D%0A) **Example** - Default layout with all-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254985/ad37544e88a0bf8d47f8ae4187bb/image.png?expires=1743477300&signature=f5268b4241ce0628c916769aa1d7bf2302606c8506fcb293319015c62975d94a&req=dSMnH8t7mYhXXPMW1HO4zdkQH1%2BYSy0Y6bGUSgLaYFTOAhRYyxyuH%2BZOpCPK%0ASq1QvzSEneBUtd6VRq4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254985/ad37544e88a0bf8d47f8ae4187bb/image.png?expires=1743477300&signature=f5268b4241ce0628c916769aa1d7bf2302606c8506fcb293319015c62975d94a&req=dSMnH8t7mYhXXPMW1HO4zdkQH1%2BYSy0Y6bGUSgLaYFTOAhRYyxyuH%2BZOpCPK%0ASq1QvzSEneBUtd6VRq4%3D%0A) **Example** - Month layout with multi-day event: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254988/ada78f4dba493527a556e203e7db/trmnl-google-calendar-month-example.png?expires=1743477300&signature=186f5e4effa07e6407258f5d15f402f128dea6106cbe1b24dd6114fdcfdb1f36&req=dSMnH8t7mYhXUfMW1HO4zUr6fT4MLkspSkDVqs4eiVmXvl7ZJq8s4mNErqjC%0AfaWUYSsJmvUuKzxA9tU%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1309254988/ada78f4dba493527a556e203e7db/trmnl-google-calendar-month-example.png?expires=1743477300&signature=186f5e4effa07e6407258f5d15f402f128dea6106cbe1b24dd6114fdcfdb1f36&req=dSMnH8t7mYhXUfMW1HO4zUr6fT4MLkspSkDVqs4eiVmXvl7ZJq8s4mNErqjC%0AfaWUYSsJmvUuKzxA9tU%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Fastmail Calendar events very soon. Note: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched contains changes. Thus setting your layout to "Default" (which shows 2-3 days) but updating an event 4+ days in the future will not trigger a screen refresh. Stay focused. Did this answer your question? 😞😐😃 --- # Alias Plugin | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_3c78692475) [](#h_e087776f9e) [](#h_2a312aef61) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Alias Plugin Fetch encrypted content from any origin server. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over a week ago Table of contents [](#h_3c78692475) [](#h_e087776f9e) [](#h_2a312aef61) Advanced TRMNL users who can generate screens themselves, can make use of our Alias plugin. As the name indicates, this plugin simply passes along your own (hosted) image to your TRMNL device. This may sound similar to our Image Display plugin, but with one key difference: Alias lets you encrypt + decrypt the content, making it impossible for TRMNL to know what's being displayed. **How it works** ---------------- TRMNL expects image content to be accessible over the internet / home-network. This image content may then be plugged into the TRMNL web application in either plain text or encrypted format. The diagram below explains how each of the Alias plugin strategies differ. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405932721/466e4b48f1b6a64677806197d324/image.png?expires=1743477300&signature=611f44627156d572207ae9f696035f4a5c8654c7218b6f09967bea112633ae7c&req=dSQnE8B9n4ZdWPMW1HO4zVN1njb1IpJo7W2g9QveEBgQGuSMjreRGVPt7teB%0ATG3KfvYwEIvFbaav8Wc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405932721/466e4b48f1b6a64677806197d324/image.png?expires=1743477300&signature=611f44627156d572207ae9f696035f4a5c8654c7218b6f09967bea112633ae7c&req=dSQnE8B9n4ZdWPMW1HO4zVN1njb1IpJo7W2g9QveEBgQGuSMjreRGVPt7teB%0ATG3KfvYwEIvFbaav8Wc%3D%0A) **Getting started** ------------------- To set up an Alias plugin, first provide the absolute URL of your image. Make sure the image is Bitmap (bmp3), 800x480 pixels, 1-bit sRGB 2c, and of size 48062B (exact). [See here](https://docs.usetrmnl.com/go/diy/byod-s) for a hint on generating this format with ImageMagick. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405945732/3edb0b165d114e6c119c71ffda20/image.png?expires=1743477300&signature=7bdee9b4f0c23c283b2bae263442fd950bc51060a928326c103aa7821b531710&req=dSQnE8B6mIZcW%2FMW1HO4zeq45XeyHJ2V9xzpjwqPMRnLR%2F36isfi7aQqUANN%0A%2B7QM37GAkbZD0MHGS1k%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405945732/3edb0b165d114e6c119c71ffda20/image.png?expires=1743477300&signature=7bdee9b4f0c23c283b2bae263442fd950bc51060a928326c103aa7821b531710&req=dSQnE8B6mIZcW%2FMW1HO4zeq45XeyHJ2V9xzpjwqPMRnLR%2F36isfi7aQqUANN%0A%2B7QM37GAkbZD0MHGS1k%3D%0A) **Type - Plain Text** When your TRMNL device requests content from your Alias plugin instance, TRMNL will respond with the data you provided in the TRMNL web application. For example, `https://yourwebserver.com/image1.bmp` as per the screenshot above. **Type - Encrypted** For an alias with type Encrypted, encrypt your image\_url using algorithm. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405951354/2af38f5cabaa8b46469f602077e8/image.png?expires=1743477300&signature=8e9de05dcef6c323359f25dc21be30a7f503054b655382bd8f11def83d5f936a&req=dSQnE8B7nIJaXfMW1HO4zY%2BaoUt0jnEW0g2SPolM7bZaxeXXNoynAm29KkUn%0AjAhjJwfbjqxgoZ0djIQ%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1405951354/2af38f5cabaa8b46469f602077e8/image.png?expires=1743477300&signature=8e9de05dcef6c323359f25dc21be30a7f503054b655382bd8f11def83d5f936a&req=dSQnE8B7nIJaXfMW1HO4zY%2BaoUt0jnEW0g2SPolM7bZaxeXXNoynAm29KkUn%0AjAhjJwfbjqxgoZ0djIQ%3D%0A) Next, provide a decryption key to your TRMNL device via the captive WiFi portal. You can instantiate WiFi pairing mode by holding the boot button on the back of your TRMNL for 5-6 seconds, then letting go, while the device is turned on. Your TRMNL device will store this decryption key onboard, and never share it over the internet. **Putting it all together** --------------------------- The Alias plugin provides a secure way to generate and consume content without sharing any information with the TRMNL servers, while still leveraging the convenience and power of the TRMNL web application. Did this answer your question? 😞😐😃 --- # Nextcloud Calendar | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_afd0056e0c) [](#h_849963f256) [](#h_1fd00278c7) [](#h_cda014d0b9) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Nextcloud Calendar Know what's on your schedule. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated this week Table of contents [](#h_afd0056e0c) [](#h_849963f256) [](#h_1fd00278c7) [](#h_cda014d0b9) Connecting your Nextcloud Calendar to TRMNL takes just a few seconds. **Step 1 - Visit the Nextcloud Calendar Plugin** ------------------------------------------------ Inside TRMNL, navigate to Plugins > Nextcloud Calendar. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893778/861832c7a56c196f0983c2982968/trmnl-nextcloud-calendar-plugin.png?expires=1743477300&signature=353f7142099f6645aa4908e2d14b5f0cdb1a451cf95f1cfd97a65a2f198d2391&req=dSMlFcF3noZYUfMW1HO4zeK1s95TFSJ4j4y51dIVgsHE9c6UwffjyZrI0Inw%0AphBMVe9EkS71XlHyyo4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893778/861832c7a56c196f0983c2982968/trmnl-nextcloud-calendar-plugin.png?expires=1743477300&signature=353f7142099f6645aa4908e2d14b5f0cdb1a451cf95f1cfd97a65a2f198d2391&req=dSMlFcF3noZYUfMW1HO4zeK1s95TFSJ4j4y51dIVgsHE9c6UwffjyZrI0Inw%0AphBMVe9EkS71XlHyyo4%3D%0A) **Step 2 - Connect Nextcloud Calendar** --------------------------------------- **Note**: _Enabling this plugin requires publishing your Nextcloud calendar to an anonymized "ICS" style format. This is similar to publishing an unlisted YouTube video or "view with link" permission Google Docs file. If your calendar has sensitive data you may limit the published permissions to only expose timestamps, not event details._ Inside your Nextcloud Calendar, open the share menu and click the "+" next to the "Share link" option ([source](https://docs.nextcloud.com/server/19/user_manual/pim/calendar.html#publishing-a-calendar) ). Copy this URL to your clipboard. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your published calendar link into the ICS input field. Your full URL should begin with "https". You can attempt to visit it in your web browser -- it should download an ".ics" file to your computer which you can safely delete. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893212/d1f05602d03f23cbc311811b50e1/outlook-calendar-ics.png?expires=1743477300&signature=5b0b900e07e3e27b161eb2b7c98007ddda60e6bc63e2792c9d8484eafd9a8117&req=dSMlFcF3noNeW%2FMW1HO4zbfr1AZ43eYvXbj%2BeDLoJuaF8CZ%2FFROcw24OfpQk%0A1l9bMmYn0H%2FAwlTFKp8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893212/d1f05602d03f23cbc311811b50e1/outlook-calendar-ics.png?expires=1743477300&signature=5b0b900e07e3e27b161eb2b7c98007ddda60e6bc63e2792c9d8484eafd9a8117&req=dSMlFcF3noNeW%2FMW1HO4zbfr1AZ43eYvXbj%2BeDLoJuaF8CZ%2FFROcw24OfpQk%0A1l9bMmYn0H%2FAwlTFKp8%3D%0A) Next you may set a few preferences. **Time Format** 24 hours vs 12 hour (AM/PM) style. **Include Description** If "Yes," a truncated preview of the event's description field will be shown beneath the event title. Note that on the "default" Layout (explained below), setting this option to "No" will ~double the number of events shown thanks to saved space. **First Day of Week** Applies only to the "month" view. Tis allows you to set which day of the week is represented by the first column, furthest to the left. Defaults to Sunday. **Ignored Phrases** Supports a list of words that will be used to ignore events based on title or description content. **Layout** * Default (upcoming events for today, tomorrow, next day) * Week (5-7 days upcoming) * Month (this calendar month) Note that only "Week" and "Month" layouts support multi-day events, but every layout supports all-day events. **Example** - Week layout with multi-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893215/73db96468f5457af475ea6f4368b/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=62cc247ae4083b9ec2af908ab76bd3d6e42fe54aa9d643a0d3bbf4afb630cc35&req=dSMlFcF3noNeXPMW1HO4zeYq9Hmt%2BlGMROV%2Fdo46lpFhiMduOMW%2BywqN%2By0s%0ApfJvyxda1aK0Tz0TnRA%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893215/73db96468f5457af475ea6f4368b/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=62cc247ae4083b9ec2af908ab76bd3d6e42fe54aa9d643a0d3bbf4afb630cc35&req=dSMlFcF3noNeXPMW1HO4zeYq9Hmt%2BlGMROV%2Fdo46lpFhiMduOMW%2BywqN%2By0s%0ApfJvyxda1aK0Tz0TnRA%3D%0A) **Example** - Default layout with all-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893219/f8624712faa8499e1556fb9707ab/image.png?expires=1743477300&signature=425af27998a28618c0764c32914407d1310cf169d7978800e1fe51d266ac850b&req=dSMlFcF3noNeUPMW1HO4zXPPN%2BHuxT60gHQ%2BhGj98qfgIlkhp2rXCm1DCbaF%0Av%2B30141HR4nDvVNpGCU%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893219/f8624712faa8499e1556fb9707ab/image.png?expires=1743477300&signature=425af27998a28618c0764c32914407d1310cf169d7978800e1fe51d266ac850b&req=dSMlFcF3noNeUPMW1HO4zXPPN%2BHuxT60gHQ%2BhGj98qfgIlkhp2rXCm1DCbaF%0Av%2B30141HR4nDvVNpGCU%3D%0A) **Example** - Month layout with multi-day event: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893218/a8c0f02b2dca36c3fee6b53cecea/trmnl-google-calendar-month-example.png?expires=1743477300&signature=fe8e097f6958314d6667338dc0619ae80870fe1a7a6276971b1dda19b7a113e2&req=dSMlFcF3noNeUfMW1HO4zSpuH6FrQDMKM4i0dF7PtKQ%2FiR7bfR6cfgfKSBio%0AWUgx2w7Ochidf2ew%2FMM%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1323893218/a8c0f02b2dca36c3fee6b53cecea/trmnl-google-calendar-month-example.png?expires=1743477300&signature=fe8e097f6958314d6667338dc0619ae80870fe1a7a6276971b1dda19b7a113e2&req=dSMlFcF3noNeUfMW1HO4zSpuH6FrQDMKM4i0dF7PtKQ%2FiR7bfR6cfgfKSBio%0AWUgx2w7Ochidf2ew%2FMM%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Nextcloud Calendar events very soon. Note: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched contains changes. Thus setting your layout to "Default" (which shows 2-3 days) but updating an event 4+ days in the future will not trigger a screen refresh. Stay focused. Did this answer your question? 😞😐😃 --- # Tempest Weather Station | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_ccb8a030af) [](#h_76a25856ba) [](#h_4a17c1a801) [](#h_5eba78d3af) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Tempest Weather Station Dedicated e-ink screen for your local climate. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_ccb8a030af) [](#h_76a25856ba) [](#h_4a17c1a801) [](#h_5eba78d3af) Connecting your Tempest WeatherFlow device to TRMNL takes just a few seconds. Step 1 - Visit the Tempest Weather Station plugin ------------------------------------------------- Inside TRMNL, navigate to Plugins > Tempest Weather Station. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1360392682/53da199eaf8d988b344858e64ec0/tempest-eink-weather-plugin-trmnl.png?expires=1743477300&signature=b3a606bce4e1fe006927ec4e6010e6413c43d0c2afdc4f639fcb70f6acba012a&req=dSMhFsp3n4dXW%2FMW1HO4zfg2WL%2Fmfsm8pYDHzCjHYcaJkNMyzdk3JJ0FIbfo%0Aw%2FvFjB%2B3qnrp3DVKwn4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1360392682/53da199eaf8d988b344858e64ec0/tempest-eink-weather-plugin-trmnl.png?expires=1743477300&signature=b3a606bce4e1fe006927ec4e6010e6413c43d0c2afdc4f639fcb70f6acba012a&req=dSMhFsp3n4dXW%2FMW1HO4zfg2WL%2Fmfsm8pYDHzCjHYcaJkNMyzdk3JJ0FIbfo%0Aw%2FvFjB%2B3qnrp3DVKwn4%3D%0A) Click to "Connect with Tempest Weather Station" on the right side of the screen. **Step 2 - Connect Tempest** ---------------------------- You'll be redirected to the tempestwx.com website. Log in and then approve TRMNL's data access request. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347628324/17f54e631f34f4f706f11808aab8/tempest-oauth2-consent-screen.png?expires=1743477300&signature=bf3f4e5f18bd314f41198814d7da04a2abb449d7f17e39978c4af9d73965c3e2&req=dSMjEc98lYJdXfMW1HO4zfH5pV%2BwQlqIzfjHi6IfA9%2BYmxjvLaSN4U3TGklb%0AOYMWJPXs3z32f5Iij80%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347628324/17f54e631f34f4f706f11808aab8/tempest-oauth2-consent-screen.png?expires=1743477300&signature=bf3f4e5f18bd314f41198814d7da04a2abb449d7f17e39978c4af9d73965c3e2&req=dSMjEc98lYJdXfMW1HO4zfH5pV%2BwQlqIzfjHi6IfA9%2BYmxjvLaSN4U3TGklb%0AOYMWJPXs3z32f5Iij80%3D%0A) This is "read only" and will not modify any settings or stations on your account. If for some reason the above screen does not appear, but instead yields "Unknown Application" like below, try switching to a desktop computer (if on a phone) or to Google Chrome (if on Safari). [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1374546645/0c93a1b57c0d7b126ecdc9730230/tempest-unknown-application.png?expires=1743477300&signature=009aa48c39d57a6d35139136f3de11fb14c2bfc79e1761b7c73b5d921186fe2b&req=dSMgEsx6m4dbXPMW1HO4zVXRT3P8247gthySaHXkMYFaNiSHJTqNGbmySd%2Bw%0A%2BDJykjFrccRgbgI9%2FBc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1374546645/0c93a1b57c0d7b126ecdc9730230/tempest-unknown-application.png?expires=1743477300&signature=009aa48c39d57a6d35139136f3de11fb14c2bfc79e1761b7c73b5d921186fe2b&req=dSMgEsx6m4dbXPMW1HO4zVXRT3P8247gthySaHXkMYFaNiSHJTqNGbmySd%2Bw%0A%2BDJykjFrccRgbgI9%2FBc%3D%0A) **Step 3 - Configure Plugin** ----------------------------- Select which Tempest Station's weather data you want to display on your TRMNL device, as well as the measurement format for a few metrics. ​ [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1360392123/efbeb7bb012a9181d3a8f4dc8d1c/trmnl-tempest-weather-settings.png?expires=1743477300&signature=5daa5941378bf62b638f37e53fda36efb84b7f13621225d9839b4d86c5e6661f&req=dSMhFsp3n4BdWvMW1HO4zZIaoUb2P6FVBAS4eBhNpkI7iAKZS4UiTV6Ka8ha%0AAbRTUZz93QnCjpMOn1M%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1360392123/efbeb7bb012a9181d3a8f4dc8d1c/trmnl-tempest-weather-settings.png?expires=1743477300&signature=5daa5941378bf62b638f37e53fda36efb84b7f13621225d9839b4d86c5e6661f&req=dSMhFsp3n4BdWvMW1HO4zZIaoUb2P6FVBAS4eBhNpkI7iAKZS4UiTV6Ka8ha%0AAbRTUZz93QnCjpMOn1M%3D%0A) If you'd like to capture weather from multiple stations, and perhaps combine it on a single screen, simply create multiple instances of this plugin and then [generate a Mashup](https://intercom.help/trmnl/en/articles/10168132-mashups) to see them all together. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347634322/816c039e60f77a4d21f41004a239/atfdsbbcfhi97iqrzyfzunti4o55?expires=1743477300&signature=08f2b72a99ca0ad7db67ff8e91ecb23460e572a88b8f1dd753c587f01acab832&req=dSMjEc99mYJdW%2FMW1HO4zSEfDDP0ugK1O%2FaycVn%2F2IdeUKzSogQkOo4u902B%0A91mzGCTddO940RJjJ6E%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1347634322/816c039e60f77a4d21f41004a239/atfdsbbcfhi97iqrzyfzunti4o55?expires=1743477300&signature=08f2b72a99ca0ad7db67ff8e91ecb23460e572a88b8f1dd753c587f01acab832&req=dSMjEc99mYJdW%2FMW1HO4zSEfDDP0ugK1O%2FaycVn%2F2IdeUKzSogQkOo4u902B%0A91mzGCTddO940RJjJ6E%3D%0A) In the example above, 2 stations in nearby locations are shown side by side. **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Tempest Weather Station forecasts very soon. Stay focused. Did this answer your question? 😞😐😃 --- # Custom plugin filters | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_bbc4b2f9f5) [](#h_7946179100) [](#h_1390794d23) [](#h_e379e72cb3) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Custom plugin filters Improve content formatting with Liquid and localizations. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_bbc4b2f9f5) [](#h_7946179100) [](#h_1390794d23) [](#h_e379e72cb3) Below is a growing list of custom (fancy) mutations available to Private Plugins, whose variable interpolation is powered by the open source [Liquid library](https://github.com/Shopify/liquid) . Getting started with Liquid --------------------------- To get started quickly with `{{ liquid }}` flavor variable notation, create a Private Plugin inside TRMNL, visit the Markup Editor, then follow along our Liquid 101 guide: [https://help.usetrmnl.com/en/articles/10671186-liquid-101](https://help.usetrmnl.com/en/articles/10671186-liquid-101) To understand how Liquid words under the hood, check out the official docs: [https://rubydoc.info/gems/liquid](https://rubydoc.info/gems/liquid) To parse and re-format Liquid-injected data, see the "Filters" section of this cheat sheet: [https://github.com/shopify/liquid/wiki/liquid-for-designers#standard-filters](https://github.com/shopify/liquid/wiki/liquid-for-designers#standard-filters) TRMNL custom filters -------------------- Given our web application is built in Ruby/Rails, we're able to extend the default Liquid library with custom filters using the following strategy: [https://github.com/shopify/liquid/wiki/liquid-for-programmers#extending-liquid](https://github.com/shopify/liquid/wiki/liquid-for-programmers#extending-liquid) We currently offer the following extensions: ​ {{ 1234 | number\_with\_delimiter }} # => 1,234 \# custom delimiter (default is comma) {{ 1234 | number\_with\_delimiter: '.' }} # => 1.234 {{ 1000000 | number\_with\_delimiter: ' ' }} # => 1 000 000 \# optional 2nd arg separates whole number from fractional value {{ 1234.57 | number\_with\_delimiter: ' ', ',' }} # => 1 234,57 \# currency handling {{ 10420 | number\_to\_currency }} # => $10,420.00 {{ 152350.69 | number\_to\_currency: '£' }} # => £152,350.69 \# optional 2nd + 3rd args delimit + separate {{ 1234.57 | number\_to\_currency: '£', '.', ',' }} # => £1.234,57 \# pluralize + inflect/humanize {{ "book" | pluralize: 1 }} # => 1 book {{ "book" | pluralize: 2 }} # => 2 books {{ "octopus" | pluralize: 3 }} # => 3 octopi {{ "person" | pluralize: 4 }} # => 4 people \# convert a variable to JSON {{ my\_var | json }} => {"foo":"bar"} Note: named parameters are not supported by the Liquid library, so you must supply all preceding arguments in the case that you want to override a 2nd+ parameter default. TRMNL also offers **localization filters**. First, `l_date` localizes a date (object or string) to a friendlier format with [strftime syntax](https://www.foragoodstrftime.com/) . {{ '2025-01-11' | l\_date: '%y %b' }} # => 25 Jan \# with a specific locale, ex: Korean {{ '2025-01-11' | l\_date: '%y %b', 'ko' }} # => 25 1월 \# with the user's locale; good for published Plugin Recipes {{ '2025-01-11' | l\_date: '%y %b', trmnl.user.locale }} # => 25 1월 Next, `l_word` translates common words to another language. Contribute more [here](https://github.com/usetrmnl/localizations) .

{{ "today" | l\_word: 'es-ES' }}

# => hoy {% assign day = "tomorrow" %}

{{ day | l\_word: trmnl.user.locale }}

# => 내일 Troubleshooting --------------- Combining filters with our Framework handlers, for example [Value Formatting](https://usetrmnl.com/framework/format_value) , may produce unexpected results. For example: {{ 10420.00 | number\_to\_currency }} Will yield $10,420 without `.00` trailing decimal places, because `value--tnums` attempts to simplify whole numbers. Adding more custom filters -------------------------- Email [\[email protected\]](/cdn-cgi/l/email-protection#2450414549645157415056494a480a474b49) or hop inside our Developer-only Discord > #Plugins channel to request additional filters or arguments. Did this answer your question? 😞😐😃 --- # Parcel | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_9e3156ffa6) [](#h_89c38aefe6) [](#h_f9f095fd68) [](#h_15e74e811e) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Parcel Track package deliveries ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 2 months ago Table of contents [](#h_9e3156ffa6) [](#h_89c38aefe6) [](#h_f9f095fd68) [](#h_15e74e811e) The [Parcel](https://parcelapp.net/) app for iOS and macOS conveniently tracks packages across many different delivery providers. Connecting the plugin to your Parcel account only takes a few steps. A premium subscription to Parcel is required. Step 1 - Visit the Parcel Plugin -------------------------------- Inside TRMNL, navigate to Plugins > Parcel. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400194731/546539679885055242b6619b226a/CleanShot+2025-02-27+at+14_30_03%402x.png?expires=1743477300&signature=8979edd10d84049517c409fa84dd2587ec9cf4dd002e151038263280b20772e3&req=dSQnFsh3mYZcWPMW1HO4zWIegNXx17%2BgYK7lkPP41t6lmd05gvsM1acrpngo%0AlyuCPtMOqhwuvO%2BxnGA%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400194731/546539679885055242b6619b226a/CleanShot+2025-02-27+at+14_30_03%402x.png?expires=1743477300&signature=8979edd10d84049517c409fa84dd2587ec9cf4dd002e151038263280b20772e3&req=dSQnFsh3mYZcWPMW1HO4zWIegNXx17%2BgYK7lkPP41t6lmd05gvsM1acrpngo%0AlyuCPtMOqhwuvO%2BxnGA%3D%0A) Step 2 - Log in to Parcel Web Access ------------------------------------ In a new tab, visit [https://web.parcelapp.net/](https://web.parcelapp.net/) and follow the instructions to sign in. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400112654/0aa43be30c28b278cf075ca36d10/CleanShot+2025-02-27+at+13_41_58%402x.png?expires=1743477300&signature=e7cb10d106689a1eabd432fe212630e7fb3e7288049db06dcad5139eb422c2a8&req=dSQnFsh%2Fn4daXfMW1HO4zdYagVLbSzZoYYL6Q8HhsfpI75otY5Mw0U9M1zPE%0ArbuhwUXJoieEpgVli78%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400112654/0aa43be30c28b278cf075ca36d10/CleanShot+2025-02-27+at+13_41_58%402x.png?expires=1743477300&signature=e7cb10d106689a1eabd432fe212630e7fb3e7288049db06dcad5139eb422c2a8&req=dSQnFsh%2Fn4daXfMW1HO4zdYagVLbSzZoYYL6Q8HhsfpI75otY5Mw0U9M1zPE%0ArbuhwUXJoieEpgVli78%3D%0A) Step 3 - Generate the API Key ----------------------------- Click on "API" to bring up the dialog box. Then click "Create a Key" to generate a new API key. Copy the API key into the clipboard. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400125575/59992a502ceb633c3647e2bd5575/CleanShot+2025-02-27+at+13_47_30%402x.png?expires=1743477300&signature=754205ffee172f40b503ddaff98b07f5f4b1555da7f9f30b70c7bf29f21f6123&req=dSQnFsh8mIRYXPMW1HO4zdiYugan2gl7KNRaCQT%2FBF4O1Ol4OqGSWL2RI4w8%0AR2uNHZ1RKGKbIsgwwMo%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400125575/59992a502ceb633c3647e2bd5575/CleanShot+2025-02-27+at+13_47_30%402x.png?expires=1743477300&signature=754205ffee172f40b503ddaff98b07f5f4b1555da7f9f30b70c7bf29f21f6123&req=dSQnFsh8mIRYXPMW1HO4zdiYugan2gl7KNRaCQT%2FBF4O1Ol4OqGSWL2RI4w8%0AR2uNHZ1RKGKbIsgwwMo%3D%0A) [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400127330/bac66a7bbab40f184cd046161be6/CleanShot+2025-02-27+at+13_47_58%402x.png?expires=1743477300&signature=72c7f24952880fbaab97e4f3a982757b8628c486676bc0931a9faae90d4c5722&req=dSQnFsh8moJcWfMW1HO4zTqPH2x5gtKUW5U0QnD6hQqFPOxq8tQioVtR1Y%2BM%0AqZ37WGFXN2SIBmgplTw%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400127330/bac66a7bbab40f184cd046161be6/CleanShot+2025-02-27+at+13_47_58%402x.png?expires=1743477300&signature=72c7f24952880fbaab97e4f3a982757b8628c486676bc0931a9faae90d4c5722&req=dSQnFsh8moJcWfMW1HO4zTqPH2x5gtKUW5U0QnD6hQqFPOxq8tQioVtR1Y%2BM%0AqZ37WGFXN2SIBmgplTw%3D%0A) Step 4 - Configure Plugin ------------------------- Back in the TRMNL dashboard, paste in the API key, and select what type of deliveries to display. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400195353/46c0d2d7dd06cb8e9587c96ae98b/CleanShot+2025-02-27+at+14_30_39%402x.png?expires=1743477300&signature=bdc65ca26f5c32247c5594a487457650ea0454a429f0a1e97114815c1ae5a221&req=dSQnFsh3mIJaWvMW1HO4zYWhBnss6vZ1IV8m%2BmXv4TE9YzB2KGDcPtLXeSNA%0AjUnUllq5VRQncOThN5c%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1400195353/46c0d2d7dd06cb8e9587c96ae98b/CleanShot+2025-02-27+at+14_30_39%402x.png?expires=1743477300&signature=bdc65ca26f5c32247c5594a487457650ea0454a429f0a1e97114815c1ae5a221&req=dSQnFsh3mIJaWvMW1HO4zYWhBnss6vZ1IV8m%2BmXv4TE9YzB2KGDcPtLXeSNA%0AjUnUllq5VRQncOThN5c%3D%0A) You're done! Did this answer your question? 😞😐😃 --- # Apple Calendar | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_52c09d09bd) [](#h_6f0d1dbfba) [](#h_f4f62660ac) [](#h_8aacec4e45) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Apple Calendar Know what's on your schedule. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated this week Table of contents [](#h_52c09d09bd) [](#h_6f0d1dbfba) [](#h_f4f62660ac) [](#h_8aacec4e45) Connecting your Apple Calendar to TRMNL takes just a few seconds. **Step 1 - Visit the Apple Calendar Plugin** -------------------------------------------- Inside TRMNL, navigate to Plugins > Apple Calendar. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298675/eef2da86b4339441e96589d28212/trmnl-apple-calendar-plugin.png?expires=1743477300&signature=11814b341d8a0d8756f370259f815736e1468466a550564d4b7fdc892971598e&req=dSMnHst3lYdYXPMW1HO4zc1bc1M4Qnyam8rDDaVe47zFzqUhMxlNl%2B2xSLaX%0Avmp6vr4KGk5bUjAceV8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298675/eef2da86b4339441e96589d28212/trmnl-apple-calendar-plugin.png?expires=1743477300&signature=11814b341d8a0d8756f370259f815736e1468466a550564d4b7fdc892971598e&req=dSMnHst3lYdYXPMW1HO4zc1bc1M4Qnyam8rDDaVe47zFzqUhMxlNl%2B2xSLaX%0Avmp6vr4KGk5bUjAceV8%3D%0A) **Step 2 - Connect Apple Calendar** ----------------------------------- **Note**: _Enabling this plugin requires publishing your Apple calendar to an anonymized "ICS" style format. This is similar to publishing an unlisted YouTube video or "view with link" permission Google Docs file. If your calendar has sensitive data you may limit the published permissions to only expose timestamps, not event details._ First open your Apple Calendar client on your computer. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308301059/837e44ebd8a14967aad48d8ff5b0/apple-calendar-left-navigation.png?expires=1743477300&signature=568e3365d9ebe464ca63ec5e16917274d339719c00f46aecc70fa7d6090c2cf6&req=dSMnHsp%2BnIFaUPMW1HO4zRE4hi4Ziz6uDCsS%2Fd378B4fEl2mmshx0dBdSE2F%0A2zL2fi5qLZ8w%2FTiXPp4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308301059/837e44ebd8a14967aad48d8ff5b0/apple-calendar-left-navigation.png?expires=1743477300&signature=568e3365d9ebe464ca63ec5e16917274d339719c00f46aecc70fa7d6090c2cf6&req=dSMnHsp%2BnIFaUPMW1HO4zRE4hi4Ziz6uDCsS%2Fd378B4fEl2mmshx0dBdSE2F%0A2zL2fi5qLZ8w%2FTiXPp4%3D%0A) Ctrl-click on the calendar and check the Public Calendar box. After a moment (you may need to navigate away, then re-open this pane) a URL will appear below. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308301491/843b66f140fae1bf0ff1827e080b/apple-calendar-public-calendar-enabled.png?expires=1743477300&signature=37b4d1827a1cb3be28b44ab09f29089aff8a33aa9db9ed72b1aa509a3b4b86a6&req=dSMnHsp%2BnIVWWPMW1HO4zX8VHuoPy2rilUcT9KD%2BsZHvLua7SB8Jtct8v188%0AW1QdxKrQceBn2Z8HbIc%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308301491/843b66f140fae1bf0ff1827e080b/apple-calendar-public-calendar-enabled.png?expires=1743477300&signature=37b4d1827a1cb3be28b44ab09f29089aff8a33aa9db9ed72b1aa509a3b4b86a6&req=dSMnHsp%2BnIVWWPMW1HO4zX8VHuoPy2rilUcT9KD%2BsZHvLua7SB8Jtct8v188%0AW1QdxKrQceBn2Z8HbIc%3D%0A) Copy this long URL value. **Step 3 - Configure Plugin** ----------------------------- Back inside TRMNL, paste your published calendar link into the ICS input field. Important: replace the "webcal" text with "https" so your full URL looks like `https://p44-caldav.icloud.com/published....`. [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298414/7bc2902394d8211a93895570d471/outlook-calendar-ics.png?expires=1743477300&signature=732ff5057f8f54dff7299b6c1df544feb46f1eb60524c0b75e7e26838b39f71d&req=dSMnHst3lYVeXfMW1HO4zThSn729h857d2sJuz8dOGbd0aptsXCBh3hhR6Q%2F%0A9wP1QH7tQbjMXSLhkI8%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298414/7bc2902394d8211a93895570d471/outlook-calendar-ics.png?expires=1743477300&signature=732ff5057f8f54dff7299b6c1df544feb46f1eb60524c0b75e7e26838b39f71d&req=dSMnHst3lYVeXfMW1HO4zThSn729h857d2sJuz8dOGbd0aptsXCBh3hhR6Q%2F%0A9wP1QH7tQbjMXSLhkI8%3D%0A) Next you may set a few preferences. **Time Format** 24 hours vs 12 hour (AM/PM) style. **Include Description** If "Yes," a truncated preview of the event's description field will be shown beneath the event title. Note that on the "default" Layout (explained below), setting this option to "No" will ~double the number of events shown thanks to saved space. **First Day of Week** Applies only to the "month" view. Similar to native Outlook Calendar (month view), this allows you to set which day of the week is represented by the first column, furthest to the left. Defaults to Sunday. **Ignored Phrases** Supports a list of words that will be used to ignore events based on title or description content. **Layout** * Default (upcoming events for today, tomorrow, next day) * Week (5-7 days upcoming) * Month (this calendar month) Note that only "Week" and "Month" layouts support multi-day events, but every layout supports all-day events. **Example** - Week layout with multi-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298417/dbc0841cf5d9669a90984702c9cc/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=c0c56dd89283a7d529d94c2e73ff1243166f228e5ad64f16473eccb058c330ee&req=dSMnHst3lYVeXvMW1HO4zcqRWr4bdpSdwUeeM6sG1uXn66KxywYsf2PhQKAx%0AqfKwKFj8%2F7CRSoM5YAg%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298417/dbc0841cf5d9669a90984702c9cc/trmnl-google-calendar-week-mode.png?expires=1743477300&signature=c0c56dd89283a7d529d94c2e73ff1243166f228e5ad64f16473eccb058c330ee&req=dSMnHst3lYVeXvMW1HO4zcqRWr4bdpSdwUeeM6sG1uXn66KxywYsf2PhQKAx%0AqfKwKFj8%2F7CRSoM5YAg%3D%0A) **Example** - Default layout with all-day event ("Michael OOO") [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298415/f6dfe9c4d612b9058780446b133d/image.png?expires=1743477300&signature=d774d001ee6353414a99e6f2c4c6df5ca5ec641ad519daeaa40e92487cc54092&req=dSMnHst3lYVeXPMW1HO4zUgDArzL6rZApZBVB%2FVGVWNFXzol%2BWQAEaKgnzXY%0AxCO2AV6%2FbCACF1RdTi4%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298415/f6dfe9c4d612b9058780446b133d/image.png?expires=1743477300&signature=d774d001ee6353414a99e6f2c4c6df5ca5ec641ad519daeaa40e92487cc54092&req=dSMnHst3lYVeXPMW1HO4zUgDArzL6rZApZBVB%2FVGVWNFXzol%2BWQAEaKgnzXY%0AxCO2AV6%2FbCACF1RdTi4%3D%0A) **Example** - Month layout with multi-day event: [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298419/deea0f97fbe778307c6489df51c5/trmnl-google-calendar-month-example.png?expires=1743477300&signature=4c26541edfa7a771a3c7065e694d2a0771ce46a8693033e8695c88ae30419e05&req=dSMnHst3lYVeUPMW1HO4zaC%2B%2FIcM7cYzaEobIRSdybrJKQENg8QWtLmp4n57%0AOQ1ruyvFloNCvG5z%2FDM%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1308298419/deea0f97fbe778307c6489df51c5/trmnl-google-calendar-month-example.png?expires=1743477300&signature=4c26541edfa7a771a3c7065e694d2a0771ce46a8693033e8695c88ae30419e05&req=dSMnHst3lYVeUPMW1HO4zaC%2B%2FIcM7cYzaEobIRSdybrJKQENg8QWtLmp4n57%0AOQ1ruyvFloNCvG5z%2FDM%3D%0A) **Step 4 - You're Done!** ------------------------- Based on your device's refresh settings, you'll begin seeing Apple Calendar events very soon. Note: while we fetch data according to your refresh interval, TRMNL only generates new screen renders if the data fetched contains changes. Thus setting your layout to "Default" (which shows 2-3 days) but updating an event 4+ days in the future will not trigger a screen refresh. Stay focused. Did this answer your question? 😞😐😃 --- # Custom plugin form builder | TRMNL Help Center [Skip to main content](#main-content) Table of contents [](#h_c77ca39ebe) [](#h_98df974ac6) [](#h_df4f3fd8e6) [](#h_77cc4d0b70) [](#h_db4dc8a5cf) [All Collections](/en/) [Plugins](https://help.usetrmnl.com/en/collections/7820559-plugins) Custom plugin form builder Create user-facing configuration fields in YAML. ![Ryan avatar](https://static.intercomassets.com/avatars/7041257/square_128/icon--brand_1024px-1717452963.png) Written by Ryan Updated over 3 weeks ago Table of contents [](#h_c77ca39ebe) [](#h_98df974ac6) [](#h_df4f3fd8e6) [](#h_77cc4d0b70) [](#h_db4dc8a5cf) If you're new to building plugins, see [Private Plugins](https://intercom.help/trmnl/en/articles/9510536-private-plugins) and [Public Plugins API Docs](https://docs.usetrmnl.com/go/plugin-marketplace/introduction) . Below is a guide to adding **user-facing form fields inside a Private Plugin or [Recipe](https://intercom.help/trmnl/en/articles/10122094-plugin-recipes) .** **How it works** ---------------- Step 1 - Plugin author (you) creates custom fields [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1367287123/83c1ef9708e957ef648c12dfa136/trmnl-custom-plugin-fields.png?expires=1743477300&signature=30f76eae6d843819c9c85813d555f14ba9a32c6f1edd8c3a9927e2ac2ceacd1d&req=dSMhEct2moBdWvMW1HO4zayKCIC0Ybz%2BwIxf1RkgSB1FQw2IKtRz%2BB%2FBvh2d%0Azkdo%2B73SwJIzSzBf2nE%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1367287123/83c1ef9708e957ef648c12dfa136/trmnl-custom-plugin-fields.png?expires=1743477300&signature=30f76eae6d843819c9c85813d555f14ba9a32c6f1edd8c3a9927e2ac2ceacd1d&req=dSMhEct2moBdWvMW1HO4zayKCIC0Ybz%2BwIxf1RkgSB1FQw2IKtRz%2BB%2FBvh2d%0Azkdo%2B73SwJIzSzBf2nE%3D%0A) Step 2 - Plugin user (including you) can interact with rendered fields [![](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1367265600/58802f7035cdfad36d07fc21e609/trmnl-custom-field-example.png?expires=1743477300&signature=da613ae7a9d792b73eb7fd5227f07bf26406b89edce894e6e1082c30d7eacf1c&req=dSMhEct4mIdfWfMW1HO4zYmge8tlaXgJC0TU2WVM%2BgbDrWQlLqRHB2sjKUTV%0AAQOnDo4%2FFvDdwuSy%2Bfs%3D%0A)](https://downloads.intercomcdn.com/i/o/v9ws3u2x/1367265600/58802f7035cdfad36d07fc21e609/trmnl-custom-field-example.png?expires=1743477300&signature=da613ae7a9d792b73eb7fd5227f07bf26406b89edce894e6e1082c30d7eacf1c&req=dSMhEct4mIdfWfMW1HO4zYmge8tlaXgJC0TU2WVM%2BgbDrWQlLqRHB2sjKUTV%0AAQOnDo4%2FFvDdwuSy%2Bfs%3D%0A) Step 3 - Provided values are accessible via author-defined key/value pairs inside the Markup Editor {{ trmnl.plugin\_settings.custom\_fields\_values }} \# => { "password": "secret", "lookback\_period": "7" } Let's begin! **Supported field types** ------------------------- Where possible, TRMNL follows [HTML5 input types](https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Forms/HTML5_input_types) to leverage native browser validations and UX features. Our current selection includes: * url * string * text (textarea) * code (like textarea, but monospace font) * number * password * date (M Y D) * time (HH:SS) * select (single or multi) * time\_zone * copyable (produces 'click to copy' button) Coming soon: * radio (binary toggle) * email * xhrFetch (`select` field that fetches `