Cal.com
Learn how to integrate our Conversational AI platform with Cal.com for automated meeting scheduling
Overview
With our Cal.com integration, your AI assistant can seamlessly schedule meetings by checking calendar availability and booking appointments. This integration streamlines the scheduling process by automatically verifying available time slots, collecting attendee information, and creating calendar events. Benefits include eliminating scheduling back-and-forth, reducing manual effort, and enhancing the meeting booking experience.
How it works
We lay out below how we have configured the Conversational AI agent to schedule meetings by using tool calling to step through the booking process. Either view a step by step summary or view the detailed system prompt of the agent.
High level overview
Detailed system prompt
Initial Inquiry & Meeting Details
Configure your agent to ask for meeting purpose, preferred date/time, and duration to gather all necessary scheduling information.
Check Calendar Availability
Configure the agent to check calendar availability by:
- Using the
get_available_slots
tool to fetch open time slots - Verifying if the requested time is available
- Suggesting alternatives if the requested time is unavailable
- Confirming the selected time with the caller
Setup
Store your cal.com secret
To make authenticated requests to external APIs like Cal.com, you need to store your API keys securely. Start by generating a new Cal.com API key.
Not all APIs have the same authentication structure. For example, the Cal.com API expects the following authentication header:
Once you have your API key, store it in the assistant’s secret storage. This ensures that your key is kept secure and accessible when making requests.
To match the expected authentication structure of Cal.com, remember to prepend the API key with Bearer
when creating the secret.
Adding tools to the assistant
To enable your assistant to manage calendar bookings, we’ll create two tools:
-
get_available_slots
: When a user asks, “Is Louis free at 10:30 AM on Tuesday?”, the assistant should use Cal.com’s “Get available slots” endpoint to check for available time slots. -
book_meeting
: After identifying a suitable time, the assistant can proceed to book the meeting using Cal.com’s “Create a booking” endpoint.
First, head to the Tools section of your dashboard and choose Add Tool. Select Webhook as the Tool Type, then fill in the following sections:
Tool 1: get_available_slots
Configuration
Headers
Query parameters
Metadata used by the assistant to determine when the tool should be called:
Tool 2: book_meeting
Configuration
Headers
Body Parameters
Metadata used by the assistant to determine when the tool should be called:
Test your new assistant by pressing the Test AI agent button to ensure everything is working as expected. Feel free to fine-tune the system prompt.
Enhancements
By default, the assistant does not have knowledge of the current date or time. To enhance its capabilities, consider implementing one of the following solutions:
-
Create a time retrieval tool: Add another tool that fetches the current date and time.
-
Overrides: Use the overrides functionality to inject the current date and time into the system prompt at the start of each conversation.
Security Considerations
- Use HTTPS endpoints for all webhook calls.
- Store sensitive values as secrets using the ElevenLabs Secrets Manager.
- Validate that all authorization headers follow the required format (
Bearer YOUR_API_KEY
). - Never expose event type IDs or API details to callers.
Conclusion
This guide details how to integrate Cal.com into our conversational AI platform for efficient meeting scheduling. By leveraging webhook tools and calendar availability data, the integration streamlines the booking process, reducing scheduling friction and enhancing overall service quality.
For additional details on tool configuration or other integrations, refer to the Tools Overview.