Free No per-seatCalendar syncTeam scheduling

Cal.com

Self-hosted scheduling that doesn't charge per seat. The Calendly replacement where your booking data stays yours.

30 min setup ◆◆◇ Some copy-pasting Reversible

What it does

Let people book time with you without the back-and-forth. Sync with Google, Outlook, and Apple calendars. Set availability, buffer times, and event types. Team scheduling, round-robin assignment, and payment collection included.

Why we like it

Calendly charges $10-$16/month per seat. A 5-person team pays $600-$960/year. Cal.com self-hosted: $10/month for the VPS, unlimited seats. The trade-off: setup is 30 minutes instead of 2 minutes, and you manage your own OAuth credentials for calendar sync.

What it replaces

Calendly, Acuity Scheduling, Chili Piper, SavvyCal

Setup guide

Here's the setup, step by step. Let people book time with you without the back-and-forth. Sync with Google, Outlook, and Apple calendars. Set availability, buffer times, and event types. Team scheduling, round-robin assignment, and payment collection included.

Steps

  1. Provision a VPS with 2GB RAM
  2. Install Docker and Docker Compose
  3. Clone the Cal.com self-hosting repo
  4. Configure .env with your domain, database, and Google OAuth credentials
  5. Run docker-compose up -d

The code

This is the actual configuration you'll use. Lines you need to edit are highlighted.

What this doesThe key variables. Clone the repo for the full compose file.
.env (excerpt)
NEXT_PUBLIC_WEBAPP_URL=https://book.yourdomain.com  ← your domainDATABASE_URL=postgresql://cal:pass@db:5432/cal  ← set a passwordGOOGLE_CLIENT_ID=your-google-oauth-id  ← from Google Cloud consoleGOOGLE_CLIENT_SECRET=your-google-oauth-secretCALCOM_TELEMETRY_DISABLED=1
⚠ Before you run thisGoogle Calendar integration requires a Google Cloud project with OAuth credentials (free, but involves setup). This is Google's requirement, not Cal.com's.

Resource cost

Needs a $10/month VPS (2GB RAM). Runs Next.js + Postgres.

Next

More tools like this