Cal.com
Connect your Cal.com calendar so the AI can check availability and book appointments.
Overview
Cal.com is the primary booking engine for Empfio. When a customer chooses a time slot, the agent calls Cal.com's API to confirm availability and create the booking — no double-bookings, no manual calendar checks.
What you need
- A Cal.com account (free plan works)
- An API key (secret key)
- An event type ID
Setup
1. Get your API key
- Log in to Cal.com
- Go to Settings → Developer → API Keys
- Click Add → choose API key (not OAuth) → give it a name → Save
- Copy the key — it starts with
cal_live_
Store this key safely. Cal.com only shows it once.
2. Find your event type ID
- Go to Event Types in your Cal.com dashboard
- Click on the event type you use for appointments (e.g. "30 min consultation")
- The ID is in the URL:
app.cal.com/event-types/123/edit—123is your event type ID
3. Connect in Empfio
- Open Settings → Integrations → Cal.com
- Paste your API key in Secret Key
- Enter your event type ID in Event Type ID
- Changes save automatically
How it works
When a customer reaches the slot selection step:
- The agent calls the Empfio backend to fetch available slots
- Empfio queries Cal.com's availability API for the next few days
- Available slots are returned and presented to the customer as interactive buttons
- When the customer confirms a time, the agent creates a booking
- Empfio calls Cal.com to create the calendar event
- The booking appears in both your Cal.com calendar and the Empfio dashboard
Cal.com webhooks
For real-time sync (cancellations and reschedules made directly in Cal.com), you can configure Cal.com to send webhooks back to Empfio:
- In Cal.com, go to Settings → Developer → Webhooks
- Add a new webhook with the URL:
https://your-domain.com/api/v1/webhooks/calcom- Select the events:
BOOKING_CREATED,BOOKING_CANCELLED,BOOKING_RESCHEDULED - Optionally set a webhook secret for signature verification
- Save
This ensures that if someone cancels or reschedules directly in Cal.com, the change is reflected in Empfio automatically.
Troubleshooting
| Problem | Fix |
|---|---|
| "No slots available" | Check your Cal.com availability settings — ensure working hours are set |
| "Could not book" | Verify your API key hasn't expired in Cal.com |
| Slots show wrong timezone | Set your timezone in Cal.com → Settings → General |
| "Couldn't reach Cal.com" | Check the key starts with cal_live_ and hasn't expired |
| Wrong appointment type booked | Verify the Event Type ID matches the one in your Cal.com URL |