MCPSERV.CLUB
Cal.com

Cal.com

Self-Hosted

Open-source scheduling like Calendly

Active(100)
38.5kstars
2views
Updated 11 hours ago
Cal.com screenshot 1
1 / 3

Overview

Discover what makes Cal.com powerful

Cal.com (formerly Calendso) is an open‑source, self‑hosted booking and scheduling platform that aims to replace proprietary services like Calendly. From a developer’s standpoint, the project is designed for extensibility and performance: it exposes a rich GraphQL API, supports webhooks, and can be integrated into existing authentication or billing pipelines. The core of the application is a full‑stack React/Next.js frontend coupled with an Express/Node backend that communicates with a PostgreSQL database via Prisma ORM. The system is built to be modular; most features—such as time‑zone handling, availability rules, and email notifications—are implemented as pluggable modules that can be overridden or replaced without touching the core codebase.

Frontend

Backend

Data Layer

Authentication

Overview

Cal.com (formerly Calendso) is an open‑source, self‑hosted booking and scheduling platform that aims to replace proprietary services like Calendly. From a developer’s standpoint, the project is designed for extensibility and performance: it exposes a rich GraphQL API, supports webhooks, and can be integrated into existing authentication or billing pipelines. The core of the application is a full‑stack React/Next.js frontend coupled with an Express/Node backend that communicates with a PostgreSQL database via Prisma ORM. The system is built to be modular; most features—such as time‑zone handling, availability rules, and email notifications—are implemented as pluggable modules that can be overridden or replaced without touching the core codebase.

Architecture

  • Frontend: Next.js 13 with React Server Components, TypeScript, and Tailwind CSS. The UI is a single‑page application that consumes the GraphQL API over HTTP/2, leveraging server‑side rendering for SEO and performance.
  • Backend: Node.js 20 with Express, TypeScript, and Apollo Server. Business logic is split into services (e.g., scheduling, notifications) and controllers, following a clean‑architecture pattern that facilitates unit testing.
  • Data Layer: PostgreSQL 14+ accessed through Prisma. The schema is versioned with Prisma migrations, and the database supports advanced features such as JSONB for flexible event metadata.
  • Authentication: The platform integrates with OAuth providers (Google, GitHub, Microsoft) and supports JWT‑based session handling. Custom authentication can be injected via the auth plugin interface.
  • Containerization: Docker Compose files are provided for local development, and a Helm chart is available for Kubernetes deployments. The container image is built on node:20-alpine and serves both the API and UI, reducing runtime overhead.

Core Capabilities

  • GraphQL API: CRUD operations for users, teams, event types, bookings, and availability. The schema is extensible; developers can add custom fields to the Event type via a plugin hook.
  • Webhooks & Callbacks: Triggered on booking creation, cancellation, or rescheduling. The payload is JSON and can be consumed by external services (Zapier, custom microservices).
  • Email & SMS: Out‑of‑the‑box integration with SendGrid, Postmark, and Twilio. The notification service is pluggable; you can swap providers by implementing the IEmailProvider interface.
  • Recurrence & Availability: Support for complex recurrence rules (iCal RFC 5545) and time‑zone aware calendars. Availability is defined per user or team, allowing shared booking links that automatically respect each participant’s calendar.
  • Plugin System: A cal.com/plugins directory lets developers drop in JavaScript modules that register routes, middlewares, or GraphQL resolvers. The system uses a simple dependency injection container to wire plugins at runtime.

Deployment & Infrastructure

Cal.com is designed for self‑hosting on any platform that supports Docker or Kubernetes. Key requirements:

  • CPU/RAM: Minimum 2 vCPU and 4 GB RAM for a small team; production clusters scale horizontally via the Kubernetes Helm chart.
  • Storage: Persistent PostgreSQL volumes are required; optional S3-compatible storage can be used for media uploads.
  • CI/CD: The repository includes GitHub Actions that build Docker images, run tests, and push to Docker Hub. Developers can integrate these workflows into their own pipelines.
  • Scaling: The API layer is stateless; load balancers can route traffic to multiple replicas. The database scales via read replicas or sharding if needed.

Integration & Extensibility

  • OAuth & SSO: Built‑in support for SAML, OIDC, and custom OAuth providers. Developers can expose a /auth endpoint that redirects to any identity provider.
  • Custom Domains & SSL: The platform can serve multiple subdomains, each mapped to a team or user. Let’s Encrypt certificates are automatically provisioned via Certbot in the Docker image.
  • Webhook Callbacks: Developers can register custom endpoints that receive events, enabling real‑time integration with CRMs or ticketing systems.
  • SDKs & Client Libraries: While the primary API is GraphQL, a lightweight TypeScript SDK is available in the packages/sdk folder for client applications.

Developer Experience

  • Documentation: The repo contains a comprehensive docs/ folder with architecture diagrams, API reference, and plugin guides. The README is kept concise but links to deeper resources.
  • Community: Active discussions on GitHub, a dedicated Discord channel, and regular community calls. The project follows the Contributor Covenant, making it welcoming for newcomers.
  • Testing: Jest and Playwright are used for unit and end‑to‑end tests. The test suite covers core scheduling logic, ensuring that new features do not regress existing behavior.
  • Licensing: AGPLv3 guarantees that any derivative work must also be open source, which aligns with the community‑driven ethos of Cal.com.

Use Cases

  1. Enterprise Scheduling – A SaaS company can host Cal.com to offer its customers a self‑hosted booking widget that integrates with their existing identity and billing systems.
  2. Consulting Firms – Teams can share custom event types (e.g.,

Open SourceReady to get started?

Join the community and start self-hosting Cal.com today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
NOASSERTION
Stars
38.5k
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Supported OS
LinuxDocker
Author
calcom
calcom
Last Updated
11 hours ago