Booking Calendar is a self-hosted PWA designed for single-admin appointment management. It runs on your own server, keeps your data under your control, and supports a complete booking flow using shareable booking links.
For detailed guides, API references, and deployment instructions, please visit our documentation site:
👉 booking-calendar-docs.vercel.app
- Admin Control: Full dashboard for managing slots, appointments, and unique booking links.
- Guest Experience: Streamlined public booking page with mobile-first design.
- Conflict Prevention: Built-in double-booking prevention with intelligent slot overlap checks.
- Smart Notifications:
- Email alerts with
.icscalendar attachments for instant syncing. - Token-based one-click cancellation links for guests.
- Real-time Web Push notifications for administrators.
- Email alerts with
- Advanced Sharing: Public appointment detail pages with persistent shareable links.
- Community Events: Support for community-driven events with public approval workflows.
- Integrations:
- Webhooks: HMAC-signed notifications for Discord, Slack, or custom automations.
- CalDAV: Import remote busy times anonymously and write approved bookings back to your own calendar.
- iCal Export: Export your entire schedule or specific ranges to external calendars.
- Performance & Security:
- Native PWA: Installable on both mobile and desktop.
- Rate Limiting: IP-based protection against brute-force and spam.
- Async Processing: Asynchronous email delivery to ensure zero-latency booking responses.
- Privacy: Self-hosted SQLite persistence — your data never leaves your server.
Tip
You can find detailed guides and screenshots for every page under the Pages category in the documentation.
- Frontend: React 19, TypeScript, Base Web, Vite.
- Backend: Bun native HTTP server, Layered Architecture.
- Database: TypeORM + SQLite (file-based persistence).
- Notifications: Nodemailer, Web Push (VAPID), Webhooks.
Released under the GPL 3.0 License.