Case study · Stack

How Cal.com built scheduling in the open, then closed it

Cal.com is a scheduling platform and API that companies use to let people book time with them. For five years its code was public: a TypeScript monorepo with Next.js, tRPC, Prisma and Postgres, plus a NestJS API, until it moved production to a private repository in 2026.
Copy this stackcal.com Scheduling infrastructure · United States · founded 2021

Language

UI library

  • Reactgithub.com

    Builds the booking pages and the app interface.

Full-stack framework

Database

Login

Payments

Styling and UI kit

Build and runtime

  • Turborepogithub.com

    Orchestrates builds, dev servers and tests across the monorepo.

ORM

  • Prismagithub.com

    Defines the schema and handles database migrations and queries.

Data fetching

  • tRPCgithub.com

    Type-safe calls between the web app and its back end.

  • Redisgithub.com

    Backs the API v2 job queues through Bull and ioredis.

Backend framework

  • NestJSgithub.com

    Framework for the public API v2.

  • Trigger.devtrigger.dev

    Runs booking side effects, calendar syncs and fraud checks as durable background tasks.

    Why: Developer experience: clear docs, an easy dashboard and a simple fit with their Prisma monorepo.

Testing

  • Playwrightgithub.com

    End-to-end tests, with Vitest for unit tests.

Error monitoring

  • Sentrygithub.com

    Error tracking in the web app and the API.

WhatsApp and SMS

  • Dailygithub.com

    Video calls for meetings booked through Cal.com.

How they built it

A full-stack TypeScript monorepo

The public code lists its core as Next.js, tRPC, React, Tailwind CSS and Prisma on top of PostgreSQL, organized as a Yarn and Turborepo monorepo.

The main web app talks to the back end through tRPC, while the newer public API (v2) is a separate NestJS app that uses Redis and Bull for queues.

Sources:github.com github.com github.com

Background work moved to Trigger.dev

Since 2024, Cal.com runs millions of background tasks a month on Trigger.dev: everything that happens after a booking, calendar syncs, and phishing and fraud checks.

A Cal.com engineer said developer experience was the deciding factor: clean docs, an easy dashboard and a simple fit with their Prisma monorepo, with production workflows live within days.

Sources:trigger.dev

Going closed source in 2026

In April 2026, Cal.com moved its production codebase to a private repository. The company argued that AI tools now make it cheap to scan public code for vulnerabilities, putting customer data at risk.

The public repo became Cal.diy, an MIT-licensed community edition without the enterprise features. Cal.com says production has since diverged, with major rewrites of systems like authentication and data handling, so the stack below reflects the open code and may differ from what runs today.

Sources:cal.com github.com

Also detected on their website

Found on the homepage with the open Wappalyzer rules (HTML, scripts and headers). It shows what runs in the browser, not the whole backend.

  • Cloudflare
  • Cloudflare Bot Management
  • Google Tag Manager
  • HSTS