Open-source appointment scheduling. Self-host in minutes.
Booking pages, calendar sync, video rooms, automated emails — on your server.
Built on Elixir/OTP so it keeps running while you're not looking.
Self-host with Docker → · Try the Cloud → · Docs → · Issues →
Quick start
docker run --name tymeslot \
-p 4000:4000 \
-e SECRET_KEY_BASE="$(openssl rand -base64 64 | tr -d '\n')" \
-e PHX_HOST=localhost \
-v tymeslot_data:/app/data \
-v tymeslot_pg:/var/lib/postgresql/data \
luka1thb/tymeslot:latest
Open http://localhost:4000 — your scheduling platform is live. For SMTP, TLS, reverse proxy, and external Postgres, see the Docker guide.
Keep
tymeslot_pgas a named volume. Replacing it with a host path can fail on Docker Desktop, rootless Docker, and SELinux hosts. If you need a specific path, use external Postgres.
What you get
No double-bookings━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Every connected calendar is checked at the moment of booking — one conflict anywhere blocks the slot everywhere. |
Availability that mirrors reality━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Working hours, date-specific overrides, vacation blocks, per-meeting buffers, booking windows, minimum notice — without touching a calendar. |
Email that delivers━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Responsive MJML templates, |
SSO-first auth━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Email/password, Google, GitHub, plus generic OAuth/OIDC — Keycloak, Authentik, Okta, Azure AD. Disable registration or password auth independently. |
Embed anywhere━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Inline, popup, or floating button. Signed, domain-locked tokens — your widget, only on your site. |
Privacy by design━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ AES-encrypted credentials at rest, no third-party analytics or tracking pixels, rate-limited public endpoints, HMAC-signed webhooks, CSRF and signed tokens throughout. |
Plus: two themes (Quill, Rhythm) with dark mode, five languages (English, German, Ukrainian, French, Italian), white-label option, Telegram notifications, drag-and-drop calendar dashboard, attendee-driven reschedule flow, integration health alerts.
Integrations
Calendars
Google Calendar |
Outlook |
CalDAV |
Nextcloud |
Radicale |
Zimbra |
mailbox.org |
Video & location
Google Meet |
Microsoft Teams |
MiroTalk P2P |
In-Person / Phone |
Custom Links |
Webhooks (meeting_created, meeting_cancelled, meeting_rescheduled) plug into n8n, Zapier, Make, or your own backend. HMAC-signed payloads.
Screenshots
![]() Booking page — Quill or Rhythm theme, dark mode, five languages |
![]() Embed widget — inline, popup, or floating button |
Deploy
| Method | Guide | Notes |
|---|---|---|
| Docker | README-Docker.md | Single container, Postgres included — recommended |
| Cloudron | README-Cloudron.md | One-click install, automatic updates |
| Railway | Deploy → | One-click cloud, no server |
| Managed Cloud | tymeslot.app | Zero setup, free tier |
Full configuration reference (SMTP, OAuth, OIDC, reCAPTCHA, external Postgres, SSO-only mode): Docker guide.
Stack
Pricing
Self-hostedFreeforever — Elastic Licence 2.0 ✓ Full feature set |
Managed CloudFree · €5/mofree plan — €5/mo for Pro ✓ Zero maintenance |
Contributing & licence
PRs and issues welcome — see CONTRIBUTING.md. Licensed under the Elastic License 2.0 — free to use and self-host; commercial redistribution requires a separate agreement.
Report security vulnerabilities via the contact page.
Built by Luka Karsten Breitig · Diletta Luna OÜ · Tallinn, Estonia.

