eleith f2be42a1ab
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
ci/woodpecker/tag/cli Pipeline was successful
ci/woodpecker/tag/web Pipeline was successful
ci/woodpecker/tag/worker Pipeline was successful
[when] release 0.1.2
2026-11-03 08:54:04 -08:00
2026-11-03 08:54:04 -08:00
2026-08-22 10:24:30 -07:00
2026-11-03 08:54:04 -08:00
2026-11-02 12:22:14 -08:00
2026-07-28 06:57:42 -07:00

📅 When

Appointment scheduling for one person. You, probably.

When's homepage with two meeting types and their available lengths

More screenshots.

A public booking page, an admin UI, Google and CalDAV calendars, and email notifications. Configure it in YAML. Keep your appointments in SQLite.

No teams. No round-robin routing. No subscription to your own calendar.

Get started

You'll need Docker Compose 2.24 or newer. In a fresh directory:

mkdir when
cd when
mkdir config data public
curl -fsSLo compose.yaml https://git.eleith.com/eleith/when/raw/branch/main/docs/compose.yaml
curl -fsSLo config/when.yaml https://git.eleith.com/eleith/when/raw/branch/main/docs/when.example.yaml
chmod 600 config/when.yaml

Edit config/when.yaml: your public HTTPS URL (url.app), admin password, owner details, SMTP account and calendar. No .env file is required.

Put a trusted reverse proxy in front of When; see the proxy requirements. Keep your config private and readable by container UID 1000; make data/ writable by that UID. See permissions.

docker compose up -d

Open your public proxy URL and its /admin page to get a lay of the land. Optional environment interpolation, port overrides and persistent sessions are covered in deployment.

There is a lot more going on under the hood, read more documentation if you want to learn more.

Documentation

S
Description
a single user config driven calendaring app
Readme
5.8 MiB
1 Stars 1 Watchers 0 Forks
Languages
TypeScript 87.7%
Svelte 11.1%
JavaScript 0.5%
CSS 0.4%
Dockerfile 0.3%