Add Hello Cal - #3228
Add Hello Cal#3228valit wants to merge 6 commits into
Conversation
Next StepsHello! Thank you so much for your change 🤜 🤛 . There are a few things you need to do:
Manual Review RequiredHang tight! A Tidbyt engineer will be by shortly to review your change. Here is what they will be looking for:
|
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
recheck |
|
I have read the CLA Document and I hereby sign the CLA |
Three bugs fixed since initial submission: - Date text row 1px too high across all screens (pad y=3 → y=4) - Long title Marquee rendered at x=0 with no scroll when title was narrower than the 64px container; now uses width=58 with pad=(3,14,0,0) so any title wider than 58px actually scrolls and both margins are 3px symmetric - TITLE_STATIC_MAX lowered 61 → 58 to match the new Marquee width Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sync from private tidbyt-cal repo. Key changes: - PREPARATION_TIME (15 min) replaces SWITCH_LEAD / is_contiguous - PERSISTENCE_TIME (10 min) + EXTENDED_THRESHOLD (4 h) for extended events - Most-recently-started wins when events overlap; simultaneous events synthesized as "Event + N other(s)" with automatic decrement - 8 pm look-ahead also applies synthesis Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a timed event is upcoming and we are within the configurable alert window (default 3 min, range 1–5 min), render_event() returns an animated WebP that alternates between the normal state (yellow text on black) and an inverted state (full-width yellow bar, black text) at 1-second intervals. The title row is raised 1px in both phases. Two new schema fields are exposed: a Toggle to enable/disable the alert and a Dropdown for the alert window duration. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- All-day events now show "Today" or "Tomorrow" instead of "All day" - In-progress timed events show "Now" instead of the start time - After-8pm look-ahead extended to all-day events (new tomorrow events take priority; continuing multi-day events fall back) - Date row shows "Tomorrow" for all look-ahead events (timed or all-day) so both rows consistently communicate the look-ahead context Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hi @valit — this looks like a really useful app, and I noticed it's unfortunately been sitting here awaiting review since June. In case you haven't come across it, Tronbyt is an open-source, self-hosted continuation of the Tidbyt ecosystem. It was created after development of the original Tidbyt community app repository largely stalled after Tidbyt joined Modal. Tronbyt provides an open-source replacement server and firmware for Tidbyt hardware, along with its own maintained fork of Pixlet. Its apps repository is a direct fork of I checked and I don't believe Hello Cal has been ported to Tronbyt yet. There is a separate Google Calendar app currently being developed there, but that uses the Google Calendar API/OAuth. Hello Cal's provider-independent iCal approach would still be really useful — particularly for non-Google calendars and for users who don't want to configure OAuth. If you're interested, it would be great to see Hello Cal submitted to I'm not affiliated with Tronbyt — just a Tidbyt/Tronbyt user who noticed some excellent contributions sitting unmerged here. |
Hello Cal
Summary: Next event, always in view
Description: A calendar display for any iCal feed — including secondary Google Calendars most calendar apps can't reach. Shows your next event, correctly handles recurring meetings, and adapts to your local timezone.
What this app does
Hello Cal connects to any iCal feed (the standard
.icsformat used by Google Calendar, Apple Calendar, Outlook, and others) and displays your next upcoming event on the Tidbyt. It shows the event title, date, and start time — or "All day" for all-day events.A few things worth calling out for reviewers:
Any iCal feed, not just primary Google Calendar. Google Calendar's Tidbyt integration only surfaces the primary calendar. This app accepts the secret iCal address from any calendar — secondary work calendars, shared family calendars, etc.
Recurring events with ordinal weekday rules. The RRULE engine handles
BYDAYcodes with ordinal prefixes (e.g.BYDAY=3MO= "3rd Monday of the month"), which are common in real-world calendars for things like recurring team meetings or street-cleaning schedules. It also handles EXDATE exclusions and RECURRENCE-ID overrides (rescheduled individual occurrences).Local timezone via the Location field. The app uses the standard
schema.Locationfield; the user's timezone is extracted from the location JSON and applied to all event times and date comparisons, so the display is always correct regardless of where the iCal feed was created.Schema fields
Manifest
hello-cal