Browse / Scheduling and staffing
Cal.diy
MIT community edition of Cal.com: self-hosted booking pages, event types and availability with API v2.
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.
- 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
- 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
Cal.com Free · $0 per month closed source
- HostedOpen the hosted app
Cal.com Teams · $12 per user/month closed source
- HostedOpen the hosted app
Cal.com Organizations · $28 per user/month closed source
- HostedOpen the hosted app
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_URLNEXT_PUBLIC_WEBAPP_URLNEXTAUTH_URLNEXTAUTH_SECRETCALENDSO_ENCRYPTION_KEYCRON_API_KEYGOOGLE_API_CREDENTIALSMS_GRAPH_CLIENT_IDMS_GRAPH_CLIENT_SECRETZOOM_CLIENT_IDZOOM_CLIENT_SECRETDAILY_API_KEYEMAIL_SERVER_HOSTEMAIL_FROMNEXT_PUBLIC_APP_NAMENEXT_PUBLIC_COMPANY_NAMENEXT_PUBLIC_DISABLE_SIGNUPNEXT_PUBLIC_MINUTES_TO_BOOKNEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL- Config files
.env.exampledocker-compose.ymlapps/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
- github.com/calcom/cal.diy
- MIT license
- Last commit Sep 1, 2026
- 48,115 stars
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.
Reach
Partial coverage. 6 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create, reschedule and cancel bookings | Reachable | API v2 introduction lists bookings; apps/api/v2 ships in the cal.diy repo |
| Manage event types | Reachable | API v2 introduction lists event types |
| Manage availability schedules | Reachable | API v2 introduction lists schedules |
| Query bookable slots | Reachable | slots endpoints are part of API v2 (cal.com/docs/api-reference/v2); not re-verified this run |
| Register webhooks | Reachable | API v2 introduction lists webhooks |
| Manage users and profile | Reachable | API v2 covers the authenticated user; managed users are a Platform feature |
| Connect Google or Outlook calendars | Undetermined | OAuth connection is a browser flow; API v2 has calendar endpoints but the consent step is manual |
| Teams, organizations and round-robin | Not reachable | README: Teams and Organizations removed from Cal.diy; on Cal.com they are paid plans |
| Workflows and automated reminders | Not reachable | README: Workflows removed from Cal.diy |
| Routing forms | Not reachable | cal.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.mdagents/skills/vercel-react-best-practices/SKILL.md.opencode/skill/*/SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: Next.js web app with Docker and Vercel deployment | 95% |
| executionModel | no model at runtime for scheduling; RETELL_AI_KEY in .env.example is an optional integration | 90% |
| operability | apps/api/v2 (NestJS) in the repo; docker-compose.yml defines a calcom-api service; docs at cal.com/docs/api-reference/v2 | 85% |
| effort | .env.example at repo root with commented keys; README 'Important run-time variables' table | 90% |
| editions | README: MIT, no hosted Cal.diy; cal.com/pricing: Free USD 0, Teams USD 12, Organizations USD 28 per user per month | 80% |
| active | shortlist pushedAt 2026-09-01 | – |
| reach | 70% | |
| provenance | 40% |
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
- github.com/calcom/cal.diy sourcing:scheduling-staffing:github
- cal.com/docs/api-reference/v2/introduction sourcing:scheduling-staffing:curated
- cal.com/pricing analysis:scheduling-staffing
- news.ycombinator.com/item?id=47780456 sourcing:scheduling-staffing:community