12
Connections
A dense, configurable weekly calendar for TRMNL, with all-day events, availability shading, overlap handling, and event-response styling.
Available settings
Calendar Feed Source
Choose TRMNL Companion for calendars synced by the Companion app, or Apps Script for Google Calendar with accurate attendee response and out-of-office status. Use only one source per plugin instance.
Google Apps Script Template
Setup: Copy this complete template into Code.gs at script.google.com. In Project Settings, set the time zone to match your TRMNL account. In Services (+), add Calendar API. Copy the Calendar Webhook URL below into the PASTE_YOUR_CALENDAR_WEBHOOK_URL_HERE placeholder, review CONFIG, and keep visibleCalendarDays identical to the plugin setting below. Standard TRMNL accounts should keep maxPayloadBytes at 1900; TRMNL+ subscribers may use 4900. Run pushNow() once and approve access; expect an HTTP 2xx line with calendar count, event count, byte count, and status totals. Then run installTrigger() once for five-minute updates.
Calendar Webhook URL
Copy this private URL when setting up Google Apps Script. Do not share it.
Visible Calendar Days
Any continuous range within Sun-Sat, for example Mon-Fri, Sun-Sat, or Tue-Sat. Apps Script users must enter the same value in CONFIG.visibleCalendarDays.
Example: Mon-Fri
Visible Calendar Hours
Whole-hour display window in 24-hour time without AM or PM. For example, use 8-17 for 8 AM-5 PM.
Example: 8-17
Available Hours
Hours outside this range are striped. Use 24-hour time without AM or PM, either as one range such as 9-17 or per-day ranges such as Mon=9-17, Fri=8-16. Leave blank to disable.
Example: Mon=9-17, Tue=9-17, Wed=9-17, Thu=9-17, Fri=8-16
Hide Time in Events
Choose whether timed event boxes show the full start–end range, the start time only, or no time.
Time Format
Controls the clock, hour labels, and event times.
Calendar Event Filtering
Comma-separated case-insensitive phrases to hide events. Prefix a phrase with = to match the complete event name exactly.
Example: Focus Time, =Home
String Trimming
Comma-separated case-insensitive quoted strings to remove text from event names. Quotes are required; commas inside quoted strings are kept as part of the text to remove.
Example: " - Weekly", ", Inc.", "Customer, External"
Emoji Filtering
Remove emoji and leading symbols from event names. Disable to preserve them.
Header Row & Column Size
Enter two percentages as X%, X%. The first sets the day/date header-row height relative to a final one-hour row; the second sets the hours header-column width relative to a final day column.
Example: 75%, 75%
Alternating Row Fill Colour
Alternate available-hour row fills. Disable to use the lighter fill for every available row; outside-hours shading and the current-hour fill are unchanged.
Black and White
Render the calendar using black and white only. Note that some features like Available Hours and Alternating Row Fill Colour will not be visible.
Override Mashup Border
Leave blank to disable this setting and keep TRMNL's native border. To override it with a darker border and optional padding, enter the desired padding measurements in top, right, bottom, left order (for example: 3px, 3px, 3px, 3px). Invalid values are treated as disabled. Each side must have a minimum value of 2px to render correctly.
Example: 3px, 3px, 3px, 3px
Demo Mode
Replace every displayed event title with Mock Event while preserving real event times, durations, response status, filtering, and layout.