🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

ElevenLabs to Cal.com, book calls during the chat

Lisa Granqvist Partner Workflow Automation Expert

Your “quick call” turns into five emails, two missed replies, and a calendar link the lead never clicks. Meanwhile, you’re stuck playing human scheduler, and the best prospects quietly move on.

Sales managers feel this in the pipeline. Clinic admins feel it at the front desk. Consultants and coaches deal with it too, especially when the ElevenLabs Cal.com booking experience is supposed to be frictionless but isn’t.

This workflow lets callers book in real time, during the conversation. You’ll see how it checks Cal.com availability, books the slot, and responds instantly, so your team stops doing the scheduling dance.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: ElevenLabs to Cal.com, book calls during the chat

The Challenge: Scheduling Friction During Live Conversations

Booking should be the easiest part of a great call. But in real life, the moment someone says “Can we meet next week?”, your process often falls apart. The caller is thinking in real time, but your scheduling is asynchronous: you send a link, they get distracted, the slot disappears, and now you’re back to negotiating times. It’s mentally draining because you have to keep context in your head (time zones, meeting length, buffers, who owns the calendar) while still trying to keep the conversation warm and confident.

It adds up fast. Here’s where it breaks down.

  • Live calls end with “I’ll send a link,” which pushes commitment to later and lowers show-up rates.
  • Teams double-book when someone confirms a time verbally, but nobody actually reserves it in the calendar.
  • Time zone confusion sneaks in, especially when callers speak loosely (“around 3-ish tomorrow”).
  • Every manual follow-up steals focus from higher-value work like closing deals or supporting patients.

The Fix: Voice-Driven Booking That Checks and Reserves Slots

This automation turns your scheduling into a real-time conversation, not a post-call chore. When an inbound voice agent (powered by ElevenLabs) needs to check times or book a meeting, it calls an n8n webhook behind the scenes. n8n inspects the request to decide what the caller is trying to do: check availability or confirm a booking. If it’s just a check, the workflow queries Cal.com availability and returns a clear answer that the voice agent can say out loud. If the caller confirms a time, n8n sends a booking request to Cal.com, locks the slot, and returns a confirmation message immediately. No tab-switching. No “hang on while I look.”

The workflow begins when ElevenLabs sends a tool request into n8n. n8n either checks Cal.com for open times or books the appointment, then responds to the webhook so the agent can confirm the result verbally.

What Changes: Before vs. After

Real-World Impact

Say your team books 8 calls a day. Manually, a rep usually spends about 10 minutes per booking: checking Cal.com, confirming the time, sending the invite, and fixing mistakes when the slot is gone. That’s roughly 80 minutes daily. With this workflow, the caller proposes a time, n8n checks availability in seconds, and booking happens the moment they say “yes.” You’re left with near-zero admin time per call, plus fewer reschedule threads.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • ElevenLabs to run the voice agent and tools
  • Cal.com for availability checks and bookings
  • Cal.com API key (generate it in Cal.com settings)

Skill level: Intermediate. You’ll paste webhook URLs into ElevenLabs and connect Cal.com credentials in n8n.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A webhook receives the voice agent’s request. ElevenLabs calls your n8n webhook whenever it needs to check a slot or finalize a booking.

The request is classified as “check” or “book”. An if-condition reviews the incoming payload so n8n doesn’t guess what to do. It routes the call down the right path.

Cal.com is queried or updated via HTTP requests. For availability, the workflow hits the Cal.com API and pulls back open times. For booking, it posts the meeting details to reserve the slot.

A response is returned instantly to the caller experience. n8n responds to the webhook with a clean success or “try another time” message, which ElevenLabs reads out in a natural voice.

You can easily modify the meeting type, buffers, and fallback messages to match your scheduling rules. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the incoming webhook that receives appointment inquiries and kicks off the workflow.

  1. Add the Incoming Webhook Trigger node and set HTTP Method to POST.
  2. Set Path to appointment-webhook.
  3. Set Response Mode to responseNode so the response will be sent from Return Webhook Response.

Use the Test URL from Incoming Webhook Trigger while building. Switch to the production URL only after activation.

Step 2: Add Slot Verification Logic

Route incoming requests based on whether the payload is asking to check availability or create a booking.

  1. Add the Verify Slot Inquiry node and connect it to Incoming Webhook Trigger.
  2. Configure the condition to compare Left Value to {{ $json.body.tool }} and set Operator to equals.
  3. Set Right Value to checkAvailableSlot.
  4. Understand the branching: Verify Slot Inquiry outputs to Check Calendar Availability on the “true” path, and to Create Booking Request on the “false” path.

⚠️ Common Pitfall: If $json.body.tool is missing or misspelled in the webhook payload, the flow will always follow the “false” path to Create Booking Request.

Step 3: Connect Cal.com and Check Availability

Configure the availability lookup against Cal.com to validate slots before booking.

  1. Add the Check Calendar Availability node and connect it from the “true” output of Verify Slot Inquiry.
  2. Set URL to https://api.cal.com/v1/slots and enable Send Query.
  3. Add query parameters:
    • startTime = {{ $json.body.startTime }}
    • endTime = {{DateTime.fromISO($json.body.startTime, { zone: 'Asia/Kolkata' }) .set({ hour: 18, minute: 0, second: 0 }) .format("yyyy-MM-dd'T'HH:mm:ssZZ")}}
    • eventTypeId = [YOUR_ID]
    • timeZone = Asia/Kolkata
  4. Credential Required: Connect your calApi credentials.

Step 4: Create Booking Requests

Configure booking creation in Cal.com for requests that aren’t availability checks.

  1. Add the Create Booking Request node and connect it from the “false” output of Verify Slot Inquiry.
  2. Set URL to https://api.cal.com/v1/bookings and Method to POST.
  3. Set Specify Body to json and use the following JSON Body:
  4. { "eventTypeId": "[YOUR_ID]", "start": "{{ $json.body.startTime }}", "end": "{{ DateTime.fromISO($json.body.startTime).plus({ minutes: 30 }).format("yyyy-MM-dd'T'HH:mm:ssZZ") }}", "responses": { "name": "{{ $json.body.name }}", "email": "{{ $json.body.email }}" }, "timeZone": "Asia/Kolkata", "language": "en", "title": "Test", "metadata":{} }
  5. Credential Required: Connect your calApi credentials.

⚠️ Common Pitfall: Replace [YOUR_ID] with your real Cal.com event type ID in both Check Calendar Availability and Create Booking Request to avoid API errors.

Step 5: Configure the Webhook Response

Return data back to the caller after availability checks or booking creation.

  1. Add the Return Webhook Response node.
  2. Connect both Check Calendar Availability and Create Booking Request to Return Webhook Response.
  3. Leave default settings unless you want to customize the response payload.

Step 6: Test and Activate Your Workflow

Run a full end-to-end test to ensure webhooks, routing, and Cal.com calls work as expected.

  1. Click Execute Workflow and send a sample POST request to the Incoming Webhook Trigger test URL.
  2. Verify that a payload with {"tool":"checkAvailableSlot"} routes to Check Calendar Availability and returns availability through Return Webhook Response.
  3. Verify that a payload without that tool value routes to Create Booking Request and returns the booking response through Return Webhook Response.
  4. Once successful, toggle the workflow to Active and use the production webhook URL.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Cal.com credentials can expire or lack the right scopes. If availability checks suddenly fail, look in your n8n Credentials and re-test the Cal.com connection first.
  • If you add waits or the caller’s speech-to-intent is slow, processing times vary. Increase the timeouts so the webhook response doesn’t return before Cal.com replies.
  • ElevenLabs prompts tend to be generic out of the box. Add your scheduling rules (time zone handling, buffers, required fields like name and email) early or you’ll be correcting bookings later.

Common Questions

How quickly can I implement this ElevenLabs Cal.com booking automation?

Usually about an hour once your Cal.com API key is ready.

Can non-technical teams implement this Cal.com booking automation?

Yes, but you will need someone comfortable copying webhook URLs and testing a few calls. No coding, just careful setup and permissions.

Is n8n free to use for this ElevenLabs Cal.com booking workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in ElevenLabs usage and any Cal.com plan costs tied to your account.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this ElevenLabs Cal.com booking solution to my specific challenges?

Start in ElevenLabs: tighten the system prompt so it always collects the fields you require (name, email, meeting reason). In n8n, you can adjust the “Verify Slot Inquiry” logic to recognize your own phrasing, then swap the Cal.com HTTP endpoints if your account uses different event types. Common tweaks include adding a confirmation email/SMS after booking, enforcing business-hour rules, and routing certain callers to a different calendar.

Why is my Cal.com connection failing in this workflow?

Most of the time it’s an invalid or expired Cal.com API key saved in n8n credentials. It can also be the wrong endpoint for your Cal.com setup, or missing permissions on the event type you’re trying to book. If failures happen only during busy periods, rate limits and timeouts are another common culprit.

What’s the capacity of this ElevenLabs Cal.com booking solution?

If you self-host, capacity mostly depends on your server and Cal.com API limits, not n8n itself.

Is this ElevenLabs Cal.com booking automation better than using Zapier or Make?

Often, yes. Voice-driven booking usually needs branching logic (“check” vs “book”), clean webhook responses, and retries when a slot is taken, and that’s frankly easier to control in n8n. You also get the self-hosting option, which matters once call volume grows and per-task pricing starts to sting. Zapier or Make can still work if you only need a simple “create event” action after a form submission, not a back-and-forth scheduling conversation. If you’re torn, Talk to an automation expert and we’ll map it to your exact flow.

Once this is live, scheduling stops being a follow-up task and becomes part of the call itself. Set it up, test it a few times, and let the workflow handle the repetitive part so your team can stay focused.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal