Cal.com is an open-source alternative to Calendly that empowers users to self-host or use a hosted version of a fully customizable scheduling platform. It’s designed for individuals, teams, enterprises, and developers who need control over their data, branding, and workflows — without vendor lock-in. Built for modern web stacks, it supports deep integrations, custom domains, and embedded scheduling components.
Built on the T3 stack (Next.js, tRPC, Prisma, Tailwind CSS, and TypeScript), Cal.com uses PostgreSQL for data storage and integrates with OAuth providers, video conferencing tools like Daily.co, and payment systems. It supports deployment via Docker, Gitpod, or manual setup, and offers a public API, webhooks, and React scheduling components for embedding into third-party apps.
What You Get
- Self-hostable scheduling platform - Deploy Cal.com on your own infrastructure with full control over data, using Docker or manual PostgreSQL setup.
- Custom booking links - Create branded, personalized URLs for your calendar (e.g., cal.com/yourname) instead of generic Calendly links.
- API and webhooks - Integrate scheduling workflows with external systems using a public REST API and real-time event webhooks.
- Embeddable scheduling components - Use React components to embed Cal.com booking forms directly into your website or app.
- Multi-participant group scheduling - Schedule meetings with multiple attendees using Dynamic Group Links and Collective Events.
- Payment integration for bookings - Accept payments via Stripe for paid appointments, coaching sessions, or consultations directly through the booking flow.
- Enterprise compliance - Supports SOC 2 Type II, HIPAA, GDPR, CCPA, and ISO 27001 for regulated industries like healthcare and finance.
- AI-powered scheduling (Cal.ai) - Leverage AI to auto-suggest optimal meeting times, summarize calls, and automate follow-ups.
- Custom availability rules - Set buffers, minimum notice periods, daily/weekly booking limits, and time-slot intervals to prevent calendar overload.
- OAuth and SSO integration - Connect Google, Microsoft, and other identity providers for seamless user authentication via NextAuth.
Common Use Cases
- Running a coaching business - A life coach uses Cal.com to offer paid 30-minute sessions with Stripe payments, custom branding, and buffer times to avoid burnout.
- Managing enterprise sales pipelines - A SaaS company embeds Cal.com booking forms into their CRM to let prospects schedule demos without leaving the site.
- Building a scheduling SaaS product - A developer uses Cal.com’s API and React components to build a white-labeled booking platform for their clients.
- Coordinating team availability across time zones - A remote team uses Dynamic Group Links to let clients book meetings with any available member without back-and-forth emails.
- Healthcare provider scheduling - A telehealth clinic uses Cal.com’s HIPAA-compliant hosting to let patients book video consultations with secure, branded links.
Under The Hood
Architecture
- Monorepo structure using TurboRepo with well-defined packages for core, enterprise, and API layers, enabling independent development and testing
- Layered backend design with Prisma ORM, tRPC for type-safe endpoints, and service/repository patterns that cleanly separate business logic from data access
- Frontend organized with Next.js App Router, leveraging server components and dynamic route handlers for scalable UI and API endpoints
- Dependency injection via custom service registries and interfaces, enhancing testability and plugin extensibility
- Unified internationalization and environment-driven feature flags for flexible, locale-aware deployments
- Consistent tooling across the codebase with Biome, Prisma schema generation, and Gitpod for reproducible development environments
Tech Stack
- Next.js 14 with App Router and TypeScript for server-rendered, high-performance frontend
- Prisma ORM with PostgreSQL as the primary data store, supported by structured migrations and production-ready configurations
- NestJS for backend services, integrated via versioned API endpoints with strong TypeScript typing and dependency injection
- Turbo monorepo orchestrating multiple packages with shared configuration and parallelized builds
- Biome as the unified linter and formatter, enforcing code consistency across frontend and backend
- Docker Compose and Heroku deployment pipelines with Redis, SendGrid, and Stripe for enterprise SaaS reliability
Code Quality
- Extensive test coverage across unit, integration, and end-to-end layers with Vitest and Playwright, including robust mocking of external dependencies
- Clear modular separation between domains like app-store, features, and trpc, isolating business logic from infrastructure concerns
- Comprehensive error handling with structured validation, tRPC error types, and defensive input sanitization
- Consistent naming conventions with descriptive prefixes and suffixes that clarify component roles
- Strong TypeScript enforcement throughout, with Zod schemas for form validation and precise API and database type definitions
- Rigorous linting and test isolation practices using vi.mock() to ensure deterministic, fast, and side-effect-free tests
What Makes It Unique
- Unified, extensible API layer for native integration of multiple conferencing platforms with automated OAuth orchestration and credential management
- Decoupled API versioning using NestJS with dynamic routing and consistent DTO patterns, enabling seamless backward compatibility
- Real-time username validation via tRPC integrated with session state, providing instant user feedback without full page reloads
- Modular app store architecture that treats third-party integrations as plug-in modules, abstracting authentication and sync logic
- Server-side email and calendar workflow engine with encrypted env vars and cron-driven syncs, reducing reliance on external SaaS
- Built-in team impersonation and granular availability controls, empowering enterprise users with self-service scheduling autonomy