Cal is a calendar, tasks, notes, links, files, boards, time tracking and mail — in one calm place that runs on your own hardware.
Every module can be toggled per workspace — keep it minimal or turn it into a full workbench.
Drag-and-drop, recurrence with exceptions, external iCal feeds, holidays, and a per-user default view.
Type “dentist fri 5pm #health” — Cal parses the date, time and tags. Saved filters and dependencies included.
Markdown notes that pin context to a day, link to each other, and live on the calendar too.
Columns, drag & drop, tracked-minutes chips, and public share links with view or edit tiers.
One running timer, manual entries, billable rates, tags, and CSV/JSON export — solidtime-style.
IMAP read/flags/delete and SMTP send with attachments — works with Gmail, Fastmail, or your own Dovecot.
Link unfurling with thumbnails, file uploads with share links, and RSS/YouTube channel feeds.
PWA in any browser, a Wails desktop app for Linux/Windows/macOS, and an Android app with a home-screen agenda widget.
ICS export, CalDAV/CardDAV, webhooks, an MCP endpoint for AI tools, and a JSON export of everything.
Pick whichever fits — the container is the simplest path.
All-in-one image: UI + API + embedded Postgres. Data persists in the volume.
docker run -d --name cal -p 8080:8080 -v cal-data:/data ghcr.io/dvorinka/cal
Pulls the published image by default; --build builds from source.
git clone https://github.com/Dvorinka/cal && cd cal && docker compose up -d
Linux, Windows and macOS builds with embedded Postgres — double-click and go.
github.com/Dvorinka/cal/releases
APK on the releases page. Point it at your server, get a home-screen agenda widget.
cal-android.apk
Cal embeds Postgres inside the same process — no cloud account, no analytics, no third-party calls. Everything lives in one volume you control, back up, or carry away.