Replace Calendly with Self-Hosted Cal.com
Open-source scheduling infrastructure for everyone: round-robin, workflows, Stripe payments & routing forms Stop paying Teams ($16/seat/mo) ($160/mo for a 10-person team) and run Cal.com on a $4.50/mo Linux VPS with full data sovereignty.
1-to-100 Seat Total Cost of Ownership (TCO) Table
Comparing Calendly (Teams ($16/seat/mo)) vs Cal.com on Hetzner CX22 (4GB RAM / 2 vCPU).
| Team Size | Calendly Cost | Cal.com VPS | Net Annual Savings |
|---|---|---|---|
| 1 Seat (Solo) | $16.00/mo ($192/yr) | $4.50/mo (CX22) | +$138 / year |
| 5 Seats | $80.00/mo ($960/yr) | $4.50/mo (CX22) | +$906 / year |
| 10 Seats | $160.00/mo ($1,920/yr) | $4.50/mo (CX22) | +$1,866 / year |
| 25 Seats | $400.00/mo ($4,800/yr) | $4.50/mo (CX22) | +$4,746 / year |
| 50 Seats | $800.00/mo ($9,600/yr) | $4.50/mo (CX22) | +$9,546 / year |
| 100 Seats | $1,600.00/mo ($19,200/yr) | $4.50/mo (CX22) | +$19,146 / year |
Production Docker Compose + Caddy Auto-SSL
Copy and run docker compose up -d on any Ubuntu 24.04 server.
# Production Docker Compose: Cal.com (Replaces Calendly)
services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
networks:
- stack_net
calcom:
image: calcom/cal.com:latest
container_name: stack-calcom
restart: unless-stopped
environment:
- "NEXT_PUBLIC_WEBAPP_URL=https://cal.${DOMAIN:-yourdomain.com}"
- "DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD:-strongpassword}@postgres:5432/calcom"
- "NEXTAUTH_SECRET=${CALCOM_SECRET:-generate_32_byte_base64_secret}"
- "CALENDSO_ENCRYPTION_KEY=${CALCOM_ENC_KEY:-generate_32_byte_encryption_key}"
volumes:
- calcom_data:/data
networks:
- stack_net
postgres:
image: pgvector/pgvector:pg16
container_name: stack-postgres
restart: unless-stopped
environment:
- "POSTGRES_USER=postgres"
- "POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-strongpassword}"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- stack_net
networks:
stack_net:
driver: bridge
volumes:
caddy_data:
calcom_data:
postgres_data:
# Automatic Let's Encrypt HTTPS for Cal.com
calcom.{$DOMAIN:yourdomain.com} {
encode zstd gzip
reverse_proxy calcom:3000
}
Why Teams Switch to Cal.com
- ✓Full white-label on your own domain
- ✓Google, Outlook, Apple Calendar + Zoom/Meet sync
- ✓Automated SMS/Email reminders & routing forms
calcom/cal.com:latest
Deploy Cal.com in 60 Seconds
Sized automatically for Cal.com (1024MB container RAM + OS overhead).
Get All 16 Pre-Built Production Stacks + Encrypted S3 Backups
Includes pre-tuned docker-compose.yml, Caddy Auto-SSL, AES-256 encrypted nightly S3/R2 Postgres backups, and Ubuntu 24.04 UFW/Fail2ban hardening scripts.