Skip to content

Add Meeting Calendar: ICS events and live meetings - #3272

Open
tlambrou wants to merge 3 commits into
tidbyt:mainfrom
tlambrou:codex/meeting-calendar
Open

tlambrou wants to merge 3 commits into
tidbyt:mainfrom
tlambrou:codex/meeting-calendar

Conversation

@tlambrou

@tlambrou tlambrou commented Sep 9, 2026 •

Copy link
Copy Markdown

Adds Meeting Calendar: today’s timed events and live-meeting status from one iCloud, Google Calendar, or Outlook ICS subscription per installation. Users configure the link and appearance in Tidbyt’s mobile app; no separate hosting, device API token, or paid subscription is required.

The app rotates remaining events, recognizes common meeting providers, pages simultaneous calls, and merges overlapping/back-to-back busy intervals. It uses normal rotation, requests full animation playback, returns no image for empty/disabled states, and bounds graphic lifetime with max_age. The standalone Starlark parser supports the documented recurrence/timezone subset and reports unsupported input instead of silently presenting a partial schedule. Setup, privacy, revocation, and compatibility limits are documented in the app README.

The submitted package contains a single Starlark file and only standard Pixlet runtime imports. Maintained calendar/display modules are bundled in the source project; validation checks the generated artifact and runs all four suites against that exact bundle. Normal, active, and simultaneous-call preview GIFs remain byte-for-byte identical after bundling.

Tracking issue: https://github.com/tlambrou/tidbyt-calendar/issues/1

Review requirement

The single-file package resolves the bot’s multiple-file objection. The refreshed Modules result requests review of http.star, which the app needs to fetch ICS subscriptions directly. URL validation restricts requests to HTTPS subscription endpoints for iCloud, Google Calendar, and Outlook. The app does not log subscription URLs or calendar contents.

Validation

Physical original-device testing is pending access to a device credential configuration. Hosted full-animation playback, no-image behavior, and expiration also remain pending hosted access; local rendering/pushing cannot establish those contracts. Low-level network exceptions cannot be caught in Pixlet 0.34.0, so prior-image expiration is the fallback; HTTP response and parser failures have safe error screens.

Synthetic previews

Today’s events
Simultaneous meetings

@tidbyt

tidbyt Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

⚠️ The automated review process is experimental and likely has bugs. Please bear with us as we iron out the kinks and enable you to ship changes at high velocity 🚀

Next Steps

Hello! Thank you so much for your change 🤜 🤛 . There are a few things you need to do:

  • Sign the CLA if you haven't already
  • Ensure your build is green! Any problem will display a proposed solution to try out
  • Get a review, either by Tidbyt Bot or by a Tidbyt engineer

Manual Review Required

Hang tight! A Tidbyt engineer will be by shortly to review your change. Here is what they will be looking for:

Test Details
✅ App Dir All files are in a single app directory
🟡 Modules Usage of http.star requires review
✅ Original Author The original author matches the PR author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant