Empfio Docs

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

  1. Log in to Cal.com
  2. Go to Settings → Developer → API Keys
  3. Click Add → choose API key (not OAuth) → give it a name → Save
  4. Copy the key — it starts with cal_live_

Store this key safely. Cal.com only shows it once.

2. Find your event type ID

  1. Go to Event Types in your Cal.com dashboard
  2. Click on the event type you use for appointments (e.g. "30 min consultation")
  3. The ID is in the URL: app.cal.com/event-types/123/edit123 is your event type ID

3. Connect in Empfio

  1. Open Settings → Integrations → Cal.com
  2. Paste your API key in Secret Key
  3. Enter your event type ID in Event Type ID
  4. Changes save automatically

How it works

When a customer reaches the slot selection step:

  1. The agent calls the Empfio backend to fetch available slots
  2. Empfio queries Cal.com's availability API for the next few days
  3. Available slots are returned and presented to the customer as interactive buttons
  4. When the customer confirms a time, the agent creates a booking
  5. Empfio calls Cal.com to create the calendar event
  6. 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:

  1. In Cal.com, go to Settings → Developer → Webhooks
  2. Add a new webhook with the URL:
https://your-domain.com/api/v1/webhooks/calcom
  1. Select the events: BOOKING_CREATED, BOOKING_CANCELLED, BOOKING_RESCHEDULED
  2. Optionally set a webhook secret for signature verification
  3. Save

This ensures that if someone cancels or reschedules directly in Cal.com, the change is reflected in Empfio automatically.

Troubleshooting

ProblemFix
"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 timezoneSet 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 bookedVerify the Event Type ID matches the one in your Cal.com URL

On this page