mothermachine

Browse / Scheduling and staffing

Cal.diy

MIT community edition of Cal.com: self-hosted booking pages, event types and availability with API v2.

AdaptableOperable Business appWeb app Deterministic TypeScript API License: MIT

Cal.diy is the community-driven fork of Cal.com with the enterprise code removed (no Teams, Organizations, Insights, Workflows or SSO). It ships the booking page, event types, availability schedules, calendar and video integrations, and the NestJS API v2 under apps/api/v2. Self-hosting is driven by a heavily commented .env.example; Cal.com remains the Builder's hosted, closed edition.

Use it when
  • I want a Calendly-style booking page for my practice that I host, under MIT, with no license key
  • I want my agent to read availability and book or move appointments through a documented API
Gotchas
  • README warns the community edition is 'strictly recommended for personal, non-production use' and points commercial users to Cal.com
  • Heavy stack: Node 18+, PostgreSQL, yarn monorepo; README suggests 16 GB for the Node process during builds
  • apps/api/v2/README.md still tells developers to seed a Deployment row and set CALCOM_LICENSE_KEY; confirm API v2 runs license-free in Cal.diy
  • cal.com/pricing shows API-related items only on Teams and Organizations; the hosted Free plan may not issue API keys
  • Repository was renamed from calcom/cal.com to calcom/cal.diy in 2026; old links redirect

Last activity Sep 1, 2026. Fit: adaptable 3, operable 3.

Editions

Cal.diy self-hosted · Free open source

closed source

closed source

closed source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only22 things to edit

Copy .env.example to .env, generate NEXTAUTH_SECRET and CALENDSO_ENCRYPTION_KEY, set DATABASE_URL and NEXT_PUBLIC_WEBAPP_URL, then add credentials for the integrations you use (GOOGLE_API_CREDENTIALS, MS_GRAPH_CLIENT_ID and secret, ZOOM_CLIENT_ID and secret, DAILY_API_KEY, EMAIL_SERVER_HOST). Branding and booking behavior have their own keys: NEXT_PUBLIC_APP_NAME, NEXT_PUBLIC_COMPANY_NAME, NEXT_PUBLIC_DISABLE_SIGNUP, NEXT_PUBLIC_MINUTES_TO_BOOK, NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL. Event types, schedules and the booking page are configured in the UI.

Env vars
DATABASE_URL NEXT_PUBLIC_WEBAPP_URL NEXTAUTH_URL NEXTAUTH_SECRET CALENDSO_ENCRYPTION_KEY CRON_API_KEY GOOGLE_API_CREDENTIALS MS_GRAPH_CLIENT_ID MS_GRAPH_CLIENT_SECRET ZOOM_CLIENT_ID ZOOM_CLIENT_SECRET DAILY_API_KEY EMAIL_SERVER_HOST EMAIL_FROM NEXT_PUBLIC_APP_NAME NEXT_PUBLIC_COMPANY_NAME NEXT_PUBLIC_DISABLE_SIGNUP NEXT_PUBLIC_MINUTES_TO_BOOK NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL
Config files
.env.example docker-compose.yml apps/api/v2/.env.example
Prompt files
none
Accounts you need
Google Cloud (calendar OAuth, optional)Microsoft Entra (Outlook, optional)Zoom or Daily.co (video, optional)Cal.com (hosted editions only)

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderremote or local

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
cal.com/docs/api-reference/v2/introduction

Reach

Partial coverage. 6 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create, reschedule and cancel bookingsReachableAPI v2 introduction lists bookings; apps/api/v2 ships in the cal.diy repo
Manage event typesReachableAPI v2 introduction lists event types
Manage availability schedulesReachableAPI v2 introduction lists schedules
Query bookable slotsReachableslots endpoints are part of API v2 (cal.com/docs/api-reference/v2); not re-verified this run
Register webhooksReachableAPI v2 introduction lists webhooks
Manage users and profileReachableAPI v2 covers the authenticated user; managed users are a Platform feature
Connect Google or Outlook calendarsUndeterminedOAuth connection is a browser flow; API v2 has calendar endpoints but the consent step is manual
Teams, organizations and round-robinNot reachableREADME: Teams and Organizations removed from Cal.diy; on Cal.com they are paid plans
Workflows and automated remindersNot reachableREADME: Workflows removed from Cal.diy
Routing formsNot reachablecal.com/pricing lists routing forms under Teams; EE code removed from Cal.diy

Code stack

Languages
TypeScript
Frameworks
Next.jstRPCReactPrismaNestJSTailwind CSS
Package manager
yarn
Database
PostgreSQL
Hosting target
dockervercelrailwayrender
Built
Mixed (recorded, never ranked)

Skills

Ships a calcom-api skill that teaches an agent the booking API, alongside contributor-facing React and design skills.

Kind
bundled
Paths
agents/skills/calcom-api/SKILL.md agents/skills/vercel-react-best-practices/SKILL.md .opencode/skill/*/SKILL.md

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Next.js web app with Docker and Vercel deployment95%
executionModelno model at runtime for scheduling; RETELL_AI_KEY in .env.example is an optional integration90%
operabilityapps/api/v2 (NestJS) in the repo; docker-compose.yml defines a calcom-api service; docs at cal.com/docs/api-reference/v285%
effort.env.example at repo root with commented keys; README 'Important run-time variables' table90%
editionsREADME: MIT, no hosted Cal.diy; cal.com/pricing: Free USD 0, Teams USD 12, Organizations USD 28 per user per month80%
activeshortlist pushedAt 2026-09-01–
reach70%
provenance40%

Open questions

  • Does API v2 in Cal.diy start without CALCOM_LICENSE_KEY, and does the Docker image include the calcom-api service by default?
  • Are API keys available on the Cal.com hosted Free plan?
  • Provenance is marked mixed only because CLAUDE.md and AGENTS.md sit at the repo root; confirm how much of recent work is agent-written
  • Does the official calcom/cal-mcp (last pushed 2025-05) still work against API v2 or a self-hosted instance?

Sources