Skip to main content

Book Cal.com meetings from ElevenLabs voice agent conversations

Workflow preview

Workflow preview
100%
Book Cal.com meetings from ElevenLabs voice agent conversations preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

This is a specific use case. The ElevenLabs guide for Cal.com bookings is comprehensive but I was having trouble with the...

Best for

  • Lead Nurturing automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.respondtowebhook, n8n-nodes-base.switch, n8n-nodes-base.webhook, n8n-nodes-base.httprequest

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Eric.

Original n8n.io source

1.1 Workflow description

Title
Book Cal.com meetings from ElevenLabs voice agent conversations
Workflow name
Book Cal.com meetings from ElevenLabs voice agent conversations

This is a specific use case. The ElevenLabs guide for Cal.com bookings is comprehensive but I was having trouble with the booking API request. So I built a simple workflow to validate the request and handle the booking creation.

Who's this for?

You have an ElevenLabs voice agent (or other external service) booking meetings in your Cal.com account and you want more control over the book_meeting tool called by the voice agent.

How's it work?

  • Request is received by the webhook trigger node
  • Request sent from ElevenLabs voice agent, or other source
  • Request body contains contact info for the user with whom a meeting will be booked in Cal.com
  • Workflow validates input data for required fields in Cal.com
  • If validation fails, a 400 bad request response is returned
  • If valid, meeting is booked in Cal.com api

How do I use this?

Create a custom tool in the ElevenLabs agent setup, and connect it to the webhook trigger in this workflow. Add authorization for security. Instruct your voice agent to call this tool after it has collected the required information from the user.

Expected input structure

Note: Modify this according to your needs, but be sure to reflect your changes in all following nodes. Requirements here depend on required fields in your Cal.com event type. If you have multiple event types in Cal.com with varying required fields, you'll need to handle this in this workflow, and provide appropriate instructions in your voice agent prompt.

"body": {
  "attendee_name": "Some Guy",
  "start": "2025-07-07T13:30:00Z",
  "attendee_phone": "+12125551234",
  "attendee_timezone": "America/New_York",
  "eventTypeId": 123456,
  "attendee_email": "[email protected]",
  "attendee_company": "Example Inc",
  "notes": "Discovery call to find synergies."
}

Modifications

Note: ElevenLabs doesn't handle webhook response headers or body, and only recognizes the response code. In other words, if the workflow responds with 400 Bad request that's the only info the voice agent gets back; it doesn't get back any details, eg. "User email still needed".

You can modify the structure of the expected webhook request body, and then you should reflect that structure change in all following nodes in the workflow. Ie. if you change attendee_name to attendeeFirstName and attendeeLastName then you need to make this change in the following nodes that use these properties. You can also require or make optional other user data for the Cal.com event type which would reduce or increase the data the voice agent must collect from the user.

You can modify the authorization of this webhook to meet your security needs. ElevenLabs has some limitations and you should be mindful of those, but it also offers a secret feature with proves useful.

An improvement to this workflow could include a GET request to a CRM or other db to get info on the user interacting with the voice agent. This could reduce some of the data collection needed from the voice agent, like if you already have the user's email address, for example. I believe you can also get the user's phone number if the voice agent is set up on a dial-in interface, so then the agent wouldn't need to ask for it. This all depends on your use case.

A savvy step might be prompting the voice agent to get an email, and using the email in this workflow to pull enrichment data from Apollo.io or similar ;-)

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Insufficient data response

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 2 - Success response

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 3 - Switch

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.1

Block 4 - Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 5 - Create booking

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

3. Summary Table

Workflow Book Cal.com meetings from ElevenLabs voice agent conversations
Complexity intermediate
Nodes 5
Categories Lead Nurturing
Author Eric
Published 04 Jul 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/5665/5665.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Book Cal.com meetings from ElevenLabs voice agent conversations do?

This is a specific use case. The ElevenLabs guide for Cal.com bookings is comprehensive but I was having trouble with the...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing use case.