
32×32 · Livereal render
ProductivityLive
Calendar
Next meeting from your ICS calendars: countdown ring, scrolling title and today's timeline.
At a glance
OutputLiveRendered by the engine and streamed over Bluetooth as its data changes (about 5–9 frames a second).
Settings7every one editable live in the studio, or by an agent with
update_app_settingsSourcecalendar.pysrc/deskdot/apps/calendar.py
Settings
| Setting | Type | Default | Options / range |
|---|---|---|---|
| General | |||
ICS linksurlsSecret iCal/ICS URLs (Google 'secret address in iCal format', Outlook 'published ICS'), one per line. They are never shown on the panel. | text | empty | up to 2000 characters |
Layoutlayout | choice | Next meeting | Next meetingAgenda |
Look ahead (hours)lookahead | whole number | 12 | 1 – 72 |
Include all-day eventsall_day | on/off | Off | on / off |
24-hour timeshour24 | on/off | On | on / off |
| Focus | |||
Take over before a meetingtake_over | on/off | On | on / off |
Minutes beforetake_over_minutes | whole number | 5 | 1 – 30 |
Try it
render a frame to PNG (no panel needed)
$ uv run deskdot preview calendar --settings '{"layout":"agenda"}' --out calendar.pngshow it on your panel (engine running)
$ curl -X POST http://127.0.0.1:8765/api/apps/calendar/activateOr ask your agent: “Show Calendar on my panel”. It calls show_app with "calendar". New here? Set up DeskDot first.
More productivity apps

Productivity
CI Radiator
GitHub Actions status tiles for your repos, and a should-I-deploy verdict.
10 settings

Productivity
Claude Mascot
Animated Claude sprite for agent status: thinking, working, waiting, done.
3 settings

Productivity
Custom
Screens pushed by other tools (Home Assistant, scripts) via POST /api/custom/{name}.
1 settings

Productivity
Daily Dose
Quotes, dad jokes, useless facts, advice, cat facts, pun jokes and on-this-day, in rotation.
23 settings