Introduction
The Booking Kit is an open-source TypeScript toolkit for building production-grade booking and scheduling systems. It provides the database schema, scheduling math, and UI components — without locking you into a SaaS platform.
Philosophy
Section titled “Philosophy”“Hide the Math, Expose the UI.”
The hard parts — timezone-aware slot computation, RRULE recurrence expansion, double-booking prevention, team scheduling algorithms — are encapsulated in @thebookingkit/core. The UI components are copy-paste source code you own entirely, following the shadcn/ui convention.
Who is The Booking Kit for?
Section titled “Who is The Booking Kit for?”- SaaS builders adding booking to their platform (clinics, salons, studios, tutoring)
- Agencies building custom scheduling for clients
- Solo developers who need Cal.com-level features without the Cal.com codebase
What’s included?
Section titled “What’s included?”| Package | Description |
|---|---|
@thebookingkit/core | Framework-agnostic scheduling engine, business logic, and adapter interfaces |
@thebookingkit/db | Drizzle ORM schema (23 tables), migrations, and type exports for PostgreSQL 15+ |
@thebookingkit/ui | 21 React components — booking calendar, slot picker, admin views |
Key capabilities
Section titled “Key capabilities”- Slot computation with RRULE expansion, override masking, and booking/buffer filtering
- Timezone-safe math — all computation in UTC, display in any IANA timezone
- Double-booking prevention at the database level via Postgres
EXCLUDE USING gist - Team scheduling — round-robin, collective, managed, fixed assignment
- Payments — Stripe integration with cancellation policies and no-show fees
- Workflow automation — trigger-condition-action engine for booking events
- Webhooks — HMAC-SHA256 signed, replay-protected, with exponential backoff retry
- Multi-tenancy — Organization isolation, RBAC, cascading settings
- 21 React components — customer booking flow, admin dashboard, payments, workflows
Framework agnostic
Section titled “Framework agnostic”@thebookingkit/coreis pure TypeScript. Runs in Node.js, Deno, Bun, and edge runtimes.@thebookingkit/dbuses standard Postgres via Drizzle ORM. Database constraints work regardless of your backend.@thebookingkit/uiprovides React components. Use@thebookingkit/corewith any frontend framework.
Next steps
Section titled “Next steps”- Installation — Add The Booking Kit to your project
- Quick Start — Compute your first available slots
- Architecture — Understand how the pieces fit together
- Live Demo — See The Booking Kit in action with a working barber shop booking app