Appointment scheduling for one person. You, probably.
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.
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.yamlEdit 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 -dOpen 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.
- Configuration β fields, defaults and examples.
- Deployment β run it, update it, recover it.
- Development β change it without making a hobby of it.
- Philosophy β what belongs here. And what doesn't.
- Architecture β where the pieces live.
