What Is Cal.com?
Cal.com is an open-source scheduling platform โ think Calendly, but you own the code, the data, and the deployment. 32K+ GitHub stars.
Why It Matters
- No vendor lock-in โ switch hosting anytime
- Full API access โ embed scheduling in your product
- Custom workflows โ trigger webhooks, emails, SMS on booking
- White-label โ remove branding, use your domain
- GDPR compliant โ data stays on your infrastructure
Key Features
| Feature | Cal.com | Calendly |
|---|---|---|
| Self-hosted | โ | โ |
| Open source | โ (AGPL) | โ |
| API access | โ Full | โ ๏ธ Limited |
| Custom branding | โ | ๐ฐ Enterprise |
| Round-robin | โ | ๐ฐ Premium |
| Collective scheduling | โ | ๐ฐ Enterprise |
| Webhooks | โ | ๐ฐ Premium |
| Price (self-hosted) | $0 | N/A |
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Cal.com Stack โ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Next.js โ โ Prisma โ โ
โ โ Frontend โ โ ORM โ โ
โ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโฌโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโผโโโโโโโโ โ
โ โ PostgreSQL โ โ
โ โโโโโโโโโโโโโโโโโ โ
โ โ
โ Integrations: Google Calendar, โ
โ Outlook, Zoom, Meet, Stripe โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโSelf-Host on Kubernetes
Helm Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: calcom
namespace: scheduling
spec:
replicas: 2
template:
spec:
containers:
- name: calcom
image: calcom/cal.com:latest
ports:
- containerPort: 3000
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: calcom-secrets
key: database-url
- name: NEXTAUTH_SECRET
valueFrom:
secretKeyRef:
name: calcom-secrets
key: nextauth-secret
- name: NEXTAUTH_URL
value: "https://cal.yourdomain.com"
- name: CALENDSO_ENCRYPTION_KEY
valueFrom:
secretKeyRef:
name: calcom-secrets
key: encryption-key
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "1"Docker Compose (Quick Start)
version: "3.9"
services:
calcom:
image: calcom/cal.com:latest
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://cal:cal@db:5432/calcom
- NEXTAUTH_SECRET=your-secret-here
- NEXTAUTH_URL=http://localhost:3000
depends_on:
- db
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=cal
- POSTGRES_PASSWORD=cal
- POSTGRES_DB=calcom
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:Workflow Automations
Cal.com triggers webhooks on every booking event:
// Webhook payload on BOOKING_CREATED
{
"triggerEvent": "BOOKING_CREATED",
"payload": {
"title": "AI Strategy Consultation",
"startTime": "2026-06-10T10:00:00Z",
"endTime": "2026-06-10T10:30:00Z",
"attendees": [{"name": "Client", "email": "client@company.com"}],
"organizer": {"name": "Luca Berton", "email": "luca@lucaberton.com"}
}
}Connect to n8n or Zapier for:
- CRM record creation (HubSpot, Salesforce)
- Slack notification to your team
- Pre-meeting email with agenda template
- Invoice generation after meeting
When to Use Cal.com
| Use Case | Cal.com | Calendly |
|---|---|---|
| Solo consultant | โ Free forever | $10/mo |
| Team scheduling | โ Self-hosted | $15/user/mo |
| SaaS embed (scheduling API) | โ Full API | โ Not designed for |
| Enterprise compliance (GDPR) | โ Data on your infra | โ ๏ธ US-hosted |
| White-label product | โ Remove all branding | โ |