Coaches need a reliable way to book clients, collect payments, and keep notes. Cal.com delivers a self‑hosted scheduling platform that works on desktop and mobile. This guide shows coaches how to set up Cal.com, run core workflows, add advanced patterns, and avoid the most common mistakes.
Cal.com is an open‑source booking engine. Unlike SaaS tools that lock you into a vendor, Cal.com can run on your own server or on the hosted cloud. For coaches, the key concepts are:
Coaches can start with the free cloud plan at app.cal.com. For full control, deploy the Docker image on a VPS (e.g., DigitalOcean $5/mo). The Docker command is:
docker run -p 3000:3000 -e DATABASE_URL=postgres://user:pass@db/cal -e NEXTAUTH_SECRET=your_secret calcom/cal.com:latest
Self‑hosting costs about $10‑$15 per month including backups.
Navigate to Event Types → New Event. Fill in:
Save and copy the public booking URL. You’ll embed it on your website or send it via email.
In Settings → Calendar Connections, click Google and authorize. For payments, go to Integrations → Stripe and add your API keys. Test with Stripe’s “4242 4242 4242 4242” card.
Open the event you just created, click Advanced Settings. Example:
Upload your logo (200 × 200 px) under Branding → Logo. Set the primary color to #0066cc to match your website. Enable a custom domain (e.g., schedule.yourcoachsite.com) in Domain Settings.
1. Share the “30‑Minute Discovery Call” link on your contact page.
2. Client books, pays, and receives an automatic Zoom link.
3. In the confirmation email, include a Google Form link for a pre‑session questionnaire.
4. After the call, mark the booking as “Completed” and add notes in the “Booking Details” pane.
Cal.com does not have native recurring bookings, but you can simulate them with a Zapier automation:
This pattern saves you from manually sending new links every week.
For paid sessions, enable Stripe in the event settings. Use the “Collect payment at booking” option. If you need a deposit, set “Partial payment” to 50 % and charge the remainder manually after the session.
Create an email template in Settings → Email Templates**:
Subject: Your Coaching Summary – {{event.title}}
Hi {{customer.name}},
Thank you for our {{event.title}} on {{event.start_time}}. Here are the next steps…
[Link to shared Google Doc]
Best,
{{host.name}}
Enable “Send after event ends” to automate delivery.
Set the event capacity to 10–20 participants. Turn on “Collect attendee emails” and enable “Waitlist” to manage overflow. Use the built‑in Zoom “Webinar” integration for larger audiences.
Create three event types:
| Package | Duration | Price | Features |
|---|---|---|---|
| Starter | 30 min | $80 | Email recap |
| Growth | 60 min | $150 | PDF worksheet |
| Premium | 90 min | $220 | Follow‑up call + 2 worksheets |
Offer a discount code “COACH10” for first‑time clients. Add the code under Integrations → Stripe → Coupons**.
Use Cal.com’s webhook feature:
The payload includes client name, email, and selected event. Your CRM can add the lead to a “New Coaching Prospect” list and start a 7‑day email sequence.
For teams, create separate user accounts for each coach. In Team Settings**, set “Round Robin” routing so new bookings are assigned to the coach with the fewest upcoming sessions. This balances workload without manual admin.
Problem: Two event types share the same time slot, causing double‑bookings.
Fix: Use “Global Availability” in Settings → Availability. Define a master schedule and link each event type to it.
Problem: Clients in different zones see the wrong time.
Fix: Enable “Display in client’s time zone” in Settings → General. Test by opening the booking link from a VPN set to another country.
Problem: Clients never receive the Zoom link.
Fix: Verify the “From” address in Settings → Email. Use a verified domain (e.g., noreply@yourcoachsite.com) to avoid spam filters.
Problem: Sessions run back‑to‑back, leaving no time for notes.
Fix: Add a 10‑minute buffer before and a 15‑minute buffer after each event. This also reduces “no‑show” anxiety.
Problem: Live clients encounter payment errors.
Fix: Switch Stripe to “Test Mode”, run a full booking flow, and confirm the webhook fires. Then toggle back to Live mode.
No. The free plan lets you embed a Stripe or PayPal link, but you cannot use Cal.com’s built‑in payment gateway without a Pro subscription.
Yes. Connect your Google account in Settings → Calendar Connections. Events appear in both calendars instantly.
Go to Event Types → Edit → Advanced Settings → Buffer before/after. A 15‑minute buffer is common for preparation and notes.
Yes. Enable “Require authentication” and share the private booking link only with your client list.
Add a custom field or embed a Google Form in the confirmation email. The data appears in the booking details for quick reference.
With this guide, coaches can launch Cal.com quickly, run smooth booking flows, and grow their practice without technical headaches.