HubbyCal
Your simple & clean daily dashboard
13
Connections
Available settings
Calendar Setup Method
• Setup — ICS Links: Recommended for all users. Paste your calendar links; Google OAuth is not required and cannot expire. Ignore the OAuth Configuration section at the bottom of this page.
• Legacy Setup — Google OAuth: DEPRECATED. OAuth access can expire or be revoked and will then need to be connected again. Existing Legacy users should migrate to Setup — ICS Links.
SETUP
1. Open Google Calendar on a computer.
2. Select Gear → Settings.
3. Under Settings for my calendars in the left sidebar, click the specific calendar you want to add.
4. Scroll to Integrate calendar.
5. Copy the Secret address in iCal format.
6. Paste it into that calendar's ICS Link field below.
7. Repeat for each additional calendar.
⚠️ Using a calendar shared by someone else? ⚠️
The regular Public URL to this calendar will not work. The calendar owner must open that calendar's settings, copy its Secret address in iCal format, and securely send that link to the person setting up HubbyCal. Paste the owner-provided link into the matching ICS field. If the calendar is genuinely public, its Public address in iCal format can be used instead. If neither iCal address is available, use Legacy Setup with Google OAuth.
Treat private ICS links like passwords and do not share them publicly. HubbyCal fetches them only when TRMNL refreshes and does not save, cache, or log their contents.
⚠️ LEGACY SETUP — OAUTH MAY EXPIRE ⚠️
Google OAuth access can expire or be revoked. When that happens, HubbyCal cannot load your calendars until OAuth is connected again. Legacy users are strongly encouraged to migrate to Setup — ICS Links, which does not use expiring OAuth access.
Legacy Setup remains available only to avoid immediately breaking existing installations.
Google OAuth setup:
1. Open Google Cloud Console and create or select a project.
2. Enable the Google Calendar API.
3. Set up the OAuth consent screen, then create an OAuth Client ID for a Web application.
4. Copy HubbyCal's Authorized Redirect URI into Google's Authorized redirect URIs field.
5. In HubbyCal, scroll to OAuth Configuration at the bottom of the page. Paste the Client ID and Client Secret into the matching fields. The Authorization URL and Token URL are already configured—do not change them.
6. Save, then select Connect with OAuth. Your calendars will appear as dropdown choices. HubbyCal requests read-only calendar access.
⚠️ IMPORTANT: Check the Client ID and Client Secret for leading or trailing spaces before saving. TRMNL hides these fields after they are saved. If either value is wrong, you may need to remove and reinstall HubbyCal. ⚠️
Troubleshooting: If Google says the app is being tested and can only be accessed by developer-approved testers, open Google Cloud Console → Google Auth Platform → Audience. Under Publishing status, select Publish App, then confirm In Production. If you intentionally want to keep the app in Testing, add the Google account you are connecting under Test users instead. Return to HubbyCal and select Connect with OAuth again.
DISPLAY OPTIONS
Choose how much of your schedule appears in the Full layout. Other layouts always show today only.
Full View - Days to Show
Show the current one-day dashboard or three complete daily dashboards side by side.
REGULAR CALENDARS
Add up to 5 calendars to the main event list. In Setup, paste each calendar's private ICS link into its matching section. Legacy Setup users can continue using the Google Calendar dropdown. Leave unused sections blank.
For each calendar, choose its event color and optional display name. Each event can show up to 3 avatars. To use photos instead of initials, enable the avatar switch and enter up to 3 direct, publicly accessible image URLs separated by commas. Multiple photos appear as overlapping avatars.
Calendar 1 - Private ICS Link
Calendar 1 - Select Calendar
Choose one of the calendars available to your connected Google account.
Calendar 1 - Name
Calendar 1 - Color
Calendar 1 - Show Avatar Image?
Calendar 1 - Avatar Image Link
Calendar 1 - Avatar/Initials Circle Color
Auto-switches to black or white if it matches Calendar 1's own Color above.
Calendar 2 - Private ICS Link
Calendar 2 - Select Calendar
Choose one of the calendars available to your connected Google account.
Calendar 2 - Name
Calendar 2 - Color
Calendar 2 - Show Avatar Image?
Calendar 2 - Avatar Image Link
Calendar 2 - Avatar/Initials Circle Color
Auto-switches to black or white if it matches Calendar 2's own Color above.
Calendar 3 - Private ICS Link
Calendar 3 - Select Calendar
Choose one of the calendars available to your connected Google account.
Calendar 3 - Name
Calendar 3 - Color
Calendar 3 - Show Avatar Image?
Calendar 3 - Avatar Image Link
Calendar 3 - Avatar/Initials Circle Color
Auto-switches to black or white if it matches Calendar 3's own Color above.
Calendar 4 - Private ICS Link
Calendar 4 - Select Calendar
Choose one of the calendars available to your connected Google account.
Calendar 4 - Name
Calendar 4 - Color
Calendar 4 - Show Avatar Image?
Calendar 4 - Avatar Image Link
Calendar 4 - Avatar/Initials Circle Color
Auto-switches to black or white if it matches Calendar 4's own Color above.
Calendar 5 - Private ICS Link
Calendar 5 - Select Calendar
Choose one of the calendars available to your connected Google account.
Calendar 5 - Name
Calendar 5 - Color
Calendar 5 - Show Avatar Image?
Calendar 5 - Avatar Image Link
Calendar 5 - Avatar/Initials Circle Color
Auto-switches to black or white if it matches Calendar 5's own Color above.
WORK CALENDARS
Add up to 2 calendars for the compact Work Strip. In Setup, paste each calendar's private ICS link into its matching section. Legacy Setup users can continue using the Google Calendar dropdown. To show a work-location event in the strip, end its title with (Home) or (Office)—for example, "Alex Work (Home)." Home and Office events remain in the Work Strip for the full day. All other events from these calendars display with the regular events. Leave an unused work-calendar section blank.
Work Calendar 1 - Private ICS Link
Work Calendar 1 - Select Calendar
Choose a calendar used for work schedule events.
Work Calendar 1 - Name
Work Calendar 1 - Color
Work Calendar 1 - Show Avatar Image?
Work Calendar 1 - Avatar Image Link
Work Calendar 1 - Avatar/Initials Circle Color
Work Calendar 2 - Private ICS Link
Work Calendar 2 - Select Calendar
Choose a second calendar used for work schedule events.
Work Calendar 2 - Name
Work Calendar 2 - Color
Work Calendar 2 - Show Avatar Image?
Work Calendar 2 - Avatar Image Link
Work Calendar 2 - Avatar/Initials Circle Color
WEATHER
Weather is optional and works worldwide. Search for a city, address, or postal code. Severe-weather alerts are currently available only for locations in the United States.
Weather - Location
Search for any city, address, or postal code worldwide, then select a result.
Weather - Temperature Units
Choose how the current temperature, high, and low are displayed.
Legacy Weather City
Legacy Weather State
Legacy Weather Country
ADDITIONAL FEATURES
Everything below is optional. Add birthdays, choose a holiday calendar for the small holiday line, choose a Spotlight calendar for the fixed footer, or add countdowns and household reminders as needed.
BIRTHDAYS
Add birthdays to a connected calendar as recurring all-day events with Birthday in the title. Google Contact birthdays are not included in calendar feeds and will not appear automatically. Birthday events appear at the top of the day's schedule by default.
Birthday Display
Show birthdays as priority events or in the date header.
Birthday Event Color
Holiday Calendar - ICS Link
Google Holiday Calendars may provide only a Public address in iCal format. That public ICS link is correct and will work here.
Holiday - Select Calendar
Choose the Google Calendar whose event title should appear as today's holiday. Leave blank to hide holidays.
Holiday Display
Show holidays in the date header or as priority events at the top of the day's schedule.
Holiday Event Color
Spotlight Calendar - Private ICS Link
Spotlight - Select Calendar
Choose the Google Calendar whose first event today should appear in the fixed Spotlight footer. Leave blank to use only the optional fallback text.
Spotlight - Label
Spotlight - Always Show?
Spotlight - Fallback Text
HOW COUNTDOWNS WORK
HubbyCal displays one countdown at a time. The closest upcoming date always appears first, regardless of which numbered field it uses. After that date passes, the next upcoming countdown appears. Leave unused title and date pairs blank.
Countdown 1 - Title
Countdown 1 - Date
Countdown 2 - Title
Countdown 2 - Date
Countdown 3 - Title
Countdown 3 - Date
Garbage - Days
To select more than one day, hold Command on Mac or Ctrl on Windows while clicking each day.
Recycling - Days
To select more than one day, hold Command on Mac or Ctrl on Windows while clicking each day.
Custom Reminder - Label
Custom Reminder - Days
DEBUG / TESTING
These switches let you preview every important HubbyCal state without changing your real calendars. Use them to test event counts, the welcome screen, quote screen, holidays, countdowns, work events, reminders, and weather alerts. Turn the switches back off when you finish testing.
Show Fake Events?
Fake Event Count
Preview "No Calendars Set Up" State?
Forces the welcome/not-connected screen, regardless of your actual calendar setup.
Preview Quote Screen?
Forces the empty-day quote fallback, as if nothing were scheduled today.
Show Fake Holiday?
Displays a test holiday using the selected Holiday Display setting.
Birthday Test State
Preview a birthday by itself or alongside other events. The Birthday Display setting controls whether it appears in the header or event list.
Show Fake Countdown?
Displays a test countdown in the header.
Show Fake Work Events?
Displays test events in the work strip.
Show Fake Reminders?
Displays test reminders in the reminder pill.
Show Fake Weather Alert?
Displays a test weather alert in the header.
CHANGELOG
August 26, 2026
• Added configurable Birthday and Holiday display modes and colors.
• Birthday and Holiday events now stay above regular events.
• Birthday and Holiday event cards now use dedicated icons and omit unnecessary all-day time details.
• Added a Happy Birthday empty-day state with a dedicated birthday icon and Birthday debug previews.
• Clarified the post-setup refresh delay on the welcome screen.
• Improved OG headers with abbreviated weekdays, non-wrapping dates, and single-line weather alerts.
August 24, 2026
• Strengthened the recommendation to use Setup — ICS Links.
• Added a clear warning that Legacy Google OAuth access can expire or be revoked.
August 23, 2026
• Fixed birthday and Spotlight calendar source handling when switching between Setup and Legacy Setup.
• Restored the full current-weather display to the three-day Full header.
• Improved single-work-event pill sizing in the three-day Full layout.
• Consolidated all countdown fields into one section and clarified that the closest upcoming date displays first.
August 22, 2026
• Added a selectable one-day or three-day Full layout.
• Each day in the three-day layout has its own date, weather, Work Strip, events, empty state, and Spotlight.
• Added clear setup instructions for private calendars shared by another owner.
August 21, 2026
• Added recommended Setup using private ICS calendar links.
• Removed the Google OAuth requirement for new users.
• Preserved Legacy OAuth Setup for existing users.
• Added ICS support for regular, work, holiday, and Spotlight calendars.
• Added recurring, all-day, exception, and cancelled-event handling.
• HubbyCal does not save, cache, or log ICS links or calendar contents.
• Simplified the setup-method descriptions and moved all OAuth guidance into Legacy Setup.
• Grouped Weather into its own collapsible section.
August 18, 2026
• Added Fahrenheit and Celsius weather options.
• Home and Office work events now remain in the Work Strip for the full day.
• Other work tags now display as regular events.
• Added troubleshooting instructions for Google OAuth testing-mode errors.