Learn how to add Cal.com appointment booking to your AI agents and workflows to automatically schedule meetings and calls.
Automated Scheduling: The Call Booking function allows your AI agents to book appointments directly in your Cal.com calendar during conversations, streamlining the scheduling process from inquiry to confirmation.
The Call Booking function integrates your Cal.com calendars with your AI agents, enabling them to book appointments automatically during conversations. This powerful feature completes the scheduling process by not just checking availability, but actually creating confirmed bookings.Key Benefits:
Book appointments automatically during conversations
Eliminate back-and-forth scheduling coordination
Reduce no-shows with instant calendar confirmations
Seamlessly integrate with your existing Cal.com setup
Integration: This function uses Cal.com, a popular open-source scheduling platform.
Prerequisites: You need a Cal.com account to use this function. Sign up at cal.com if you haven’t already.
Cal.com offers two ways to connect your calendar: Static Mode (no API key required) and Webhook Mode (requires API key for more control). Choose the mode that best fits your needs.
Static mode fetches publicly available event types using your Cal.com username or organization slug. This is the easiest way to get started and doesn’t require an API key.
Click the Fetch Event Types button to retrieve all publicly available event types from your Cal.com account.After fetching, you’ll see a dropdown list of all your available event types (e.g., “30 Minute Meeting”, “Discovery Call”, “Consultation”).Choose an Event Type from the dropdown that you want your AI agent to book appointments for.Click Next to continue.
Webhook mode provides more control and security by using your Cal.com API key. This allows you to access private event types and configure advanced settings.
To help your AI agent use the booking function effectively, add clear instructions to your agent’s system prompt:
Copy
When customers want to book an appointment and have chosen a specific time slot, use the book_appointment function to create the booking in the calendar.Always confirm the following details before booking:- Preferred date and time- Customer's name- Customer's email address- Any special requirements or notesAfter successfully booking, provide the customer with:- Confirmation of the booked date and time- Timezone information- Any preparation instructions or next stepsExample conversation flow:Customer: "I'd like to book the Tuesday 2 PM slot"Agent: "Perfect! Let me book that for you on Tuesday at 2 PM. May I have your name and email address to confirm the appointment?"Customer: "It's John Smith, [email protected]"Agent: [Uses booking function] "Great! I've confirmed your appointment for Tuesday, March 14th at 2:00 PM Eastern Time. You'll receive a confirmation email at [email protected] with all the details."
Static mode fetches publicly available event types using your Cal.com username or organization slug. This is the easiest way to get started and doesn’t require an API key.
Click the Fetch Event Types button to retrieve all publicly available event types from your Cal.com account.After fetching, you’ll see a dropdown list of all your available event types (e.g., “30 Minute Meeting”, “Discovery Call”, “Consultation”).Choose an Event Type from the dropdown that you want to book appointments for in this workflow step.
Static mode uses public event types, so ensure the event type you selected is set to “Public” in your Cal.com settings.
Webhook mode provides more control and security by using your Cal.com API key. This allows you to access private event types and configure advanced settings.
After configuring the node (see configuration options below), connect it to other nodes in your workflow by dragging connections between nodes. This determines when the booking function will be triggered in your workflow sequence.
Best Practice: For the best user experience, combine the Call Booking function with the Check Calendar Availability function.This allows your agent to:
First check available time slots when customers ask “When are you available?”
Then book the appointment once the customer chooses a preferred time
This two-step approach reduces booking conflicts and provides a smoother scheduling experience.
Description: “Use this when prospects confirm they want to book a consultation”
Agent Interaction:
Copy
Customer: "I'd like to schedule a consultation for Tuesday at 2 PM."Agent: "Excellent choice! Let me get some details to book that for you. May I have your full name and email address?"Customer: "Sarah Johnson, [email protected]"Agent: [Uses booking function] "Perfect! I've booked your consultation for Tuesday, March 14th at 2:00 PM EST. You'll receive a confirmation email at [email protected] with a calendar invite and meeting link. Looking forward to speaking with you!"
Medical Appointment Booking
Scenario: Healthcare practice books patient appointmentsConfiguration:
Mode: Webhook (for private scheduling)
Event Type: “Doctor Appointment”
Description: “Use this when patients confirm they want to book an appointment”
Agent Interaction:
Copy
Patient: "I'd like to book the Monday 9 AM slot with Dr. Smith."Agent: "I'd be happy to book that appointment for you. May I please have your full name, date of birth, and email address?"Patient: "Michael Brown, January 15, 1980, [email protected]"Agent: [Uses booking function] "Thank you, Michael. I've confirmed your appointment with Dr. Smith for Monday, March 13th at 9:00 AM. You'll receive a confirmation email with pre-appointment instructions. Please arrive 10 minutes early to complete any necessary paperwork."
Service Appointment Booking
Scenario: Service business books on-site visitsConfiguration:
Mode: Static
Event Type: “On-site Service Call”
Description: “Use when customers confirm they want to book a service appointment”
Agent Interaction:
Copy
Customer: "Yes, I'll take the Thursday 1 PM slot for the HVAC inspection."Agent: "Great! Let me book that for you. I'll need your name, address, and email address please."Customer: "Tom Wilson, 123 Main St, Anytown, [email protected]"Agent: [Uses booking function] "Perfect! I've scheduled your HVAC inspection for Thursday, March 16th at 1:00 PM at 123 Main St. Our technician will arrive within a 30-minute window. You'll receive a confirmation email at [email protected]and a reminder text 24 hours before the appointment."
Interview Scheduling
Scenario: Recruiting team books candidate interviewsConfiguration:
Mode: Webhook
Event Type: “Candidate Interview - 45 min”
Description: “Use when candidates confirm they want to schedule an interview”
Agent Interaction:
Copy
Candidate: "Wednesday at 2 PM works perfect for me."Agent: "Wonderful! Let me get that scheduled for you. Please confirm your full name and the best email address to send the interview details to."Candidate: "Emily Chen, [email protected]"Agent: [Uses booking function] "Excellent! I've scheduled your interview for Wednesday, March 15th at 2:00 PM PST. You'll receive a confirmation email at [email protected] with the video call link and information about the interview format. We're looking forward to meeting you!"
Yes, you need a Cal.com account to use this function. Cal.com offers both free and paid plans. You can sign up at cal.com.
What's the difference between Static and Webhook mode?
Static mode fetches publicly available event types using your username/organization slug and requires no API key. Webhook mode uses your Cal.com API key for access to private event types and more advanced configuration options.
How do I find my Event Type ID?
Go to Cal.com and open your Event Types
Click on the event type you want to use
Look at the URL in your browser’s address bar
The Event Type ID is the number between the slashes (e.g., app.cal.com/event-types/123456)
Yes! Create multiple Call Booking functions, one for each event type. Give each function a clear name and description so your AI agent knows which one to use for different scenarios.
What information is required to book an appointment?
The basic requirements are:
Customer name
Customer email address
Desired date and time
Additional information may be required depending on your Cal.com event type configuration (phone number, custom questions, etc.).
Will customers receive confirmation emails?
Yes! When an appointment is booked through this function, Cal.com automatically sends confirmation emails to the customer with calendar invites and meeting details.
Can I cancel or reschedule bookings?
Bookings created through this function are standard Cal.com appointments. Customers can cancel or reschedule using the links in their confirmation emails, or you can manage them directly in your Cal.com dashboard.
How do I handle booking conflicts?
Train your agent to check availability first using the Check Calendar Availability function before booking. If a booking fails due to a conflict, your agent should offer alternative times to the customer.
Can I edit the function after creating it?
Yes, you can edit the function configuration at any time. Go to the Custom Functions tab in your agent settings and edit the function as needed.
Does this work with team event types?
Yes! Both Static and Webhook modes support team event types. Just make sure to use the correct organization slug (Static mode) or Event Type ID (Webhook mode) for your team event.