๐Ÿ”ฅ Cal

The calendar system of the Inquiry Institute

Cal is three things working together: a CalDAV server that holds every faculty member's calendar, a shared Carillon that marks the hours and seasons, and a daemon called Calcifer that watches for upcoming events and delivers alarms to faculty via Matrix.

How It Works

Radicale

At the center is Radicale, a lightweight CalDAV and CardDAV server. Every faculty member gets their own principal โ€” a private namespace at cal.inquiry.institute/{username}/ where they can create calendars, store events, and sync across devices.

Authentication is handled by Supabase SSO: the same credentials faculty use for the rest of the Institute's systems. Administrators (Custodian, Hypatia) have read/write access to all calendars.

Carillon

The Carillon is the Institute's shared, read-only calendar โ€” a bell tower in data. It contains two kinds of recurring events: the daily bells that mark the rhythm of each day, and the Wheel of the Year that marks the turning of the seasons and the Institute's academic quarters.

Every faculty member is automatically subscribed to the Carillon. It also has a public feed anyone can add to their calendar app โ€” no account required.

The Bells

Six daily bells. Floating time โ€” they ring in your local timezone.

06:00 Dawn The fire stirs
09:00 Morning The day takes shape
12:00 Midday The sun is highest
15:00 Afternoon The day turns
18:00 Twilight The fire dims
Night The fire rests

Floating time ยท no timezone ยท bells appear in your local time

The Wheel of the Year

Eight seasonal markers define four quarters of the academic year.

Spring Quarter
Feb 1 ๐Ÿ•ฏ๏ธ Imbolc Candlemas โ€” Beginning of Spring Quarter
Mar 20 ๐ŸŒฑ Vernal Equinox Day and night in balance
Summer Quarter
May 1 ๐Ÿ”ฅ Beltane Beginning of Summer Quarter
Jun 20 โ˜€๏ธ Summer Solstice The longest day
Autumn Quarter
Aug 1 ๐ŸŒพ Lughnasadh Lammas โ€” Beginning of Autumn Quarter
Sep 22 ๐Ÿ‚ Autumnal Equinox Day and night in balance
Winter Quarter
Nov 1 ๐ŸŽƒ Samhain Beginning of Winter Quarter
Dec 21 โ„๏ธ Winter Solstice The longest night โ€” the sun returns

Calcifer

Calcifer ๐Ÿ”ฅ is the fire daemon. It runs alongside Radicale, polling every faculty member's calendar every five minutes. When an event has a VALARM trigger that falls within the current window, Calcifer delivers a reminder to the faculty member's private Matrix room.

The message includes the event name, time, and any notes โ€” so faculty receive their calendar alarms as chat messages, even if their calendar app is closed. Calcifer also watches the Carillon: when a bell is about to ring or a seasonal marker approaches, every subscribed faculty member gets a gentle nudge.

๐Ÿ”ฅ Calcifer ๐Ÿ”ฅ Upcoming: Midday
Wednesday, February 4 at 12:00 (in ~15 min)
The sun is highest

Connect Your Calendar

Faculty can sync their personal calendar with any CalDAV client โ€” Apple Calendar, GNOME Calendar, Thunderbird, DAVx5 on Android, and more. Events sync both ways: add on your phone, see it on your laptop.

Serverhttps://cal.inquiry.institute
UsernameYour inquiry.institute email
PasswordYour Supabase password

The Carillon is already in your calendar โ€” it's auto-subscribed for all faculty. To add it to a non-faculty device, use the public feed:

Carillon (public)webcal://cal.inquiry.institute/subscribe/carillon.ics

Under the Hood

Cal runs as a single container on Fly.io. Inside, Nginx handles TLS termination and routes traffic: browser requests to these pages, CalDAV protocol requests to Radicale. Supervisord keeps three processes alive โ€” Nginx, Radicale, and Calcifer. Calendar data lives on a persistent Fly volume.

Source on GitHub · Inquiry Institute