Cal.com Integration
Relevant source files
The following files were used as context for generating this wiki page:
The Cal.com integration provides scheduling capabilities within the TalkCRM ecosystem. It is leveraged in two primary ways: programmatically by AI agents to book meetings during live conversations, and through direct web links for user self-service scheduling, such as for onboarding or demos.
This integration allows the SIMPLE Co Sales Agent to check for available demo slots and book them directly during a voice call, streamlining the lead qualification and demo scheduling process. For asynchronous channels like WhatsApp or for user support, direct Cal.com links are provided for a self-service experience.
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:34-45, src/App.tsx:438-445
AI Agent Tooling
The Cal.com integration is exposed to the ElevenLabs AI agent as a set of tools. The SIMPLE Co Sales Agent is configured to use these tools specifically during voice calls to facilitate real-time scheduling. For WhatsApp conversations, the agent is instructed to share a direct booking link instead of using the tools.
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:34-45, 101-104
Agent Scheduling Logic
The diagram below illustrates the agent's decision-making process for scheduling based on the communication channel.
This diagram shows the agent's logic for using Cal.com tools on voice calls versus sharing a link on WhatsApp.
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:34-45, 101-104
Available Tools
The agent has access to a suite of Cal.com tools, each defined as an api_integration_webhook. These tools are connected via the api_integration_id: "calcom".
| Tool Name | Description | Source File |
|---|---|---|
calcom_create_booking | Create a new booking for an event. This schedules an appointment. | agent_configs/SIMPLE-Co-Sales-Agent.json |
calcom_get_available_slots | Get available time slots for a specific event type. | agent_configs/SIMPLE-Co-Sales-Agent.json |
calcom_get_all_bookings | Get a list of all bookings. | agent_configs/SIMPLE-Co-Sales-Agent.json |
calcom_get_booking | Get details of a specific booking by its unique identifier. | agent_configs/SIMPLE-Co-Sales-Agent.json |
calcom_cancel_booking | Cancel an existing booking. | agent_configs/SIMPLE-Co-Sales-Agent.json |
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:133-212
Tool: calcom_get_available_slots
This tool is used to check for available booking times. The agent uses this to offer specific time slots to a user during a voice call.
Configuration
{
"type": "api_integration_webhook",
"name": "calcom_get_available_slots",
"description": "Get available time slots for a specific event type. Use this to show available booking times to users. If an event type has been provided to you in the system prompt use it.",
"api_integration_id": "calcom",
"api_integration_connection_id": "icxn_6101kcppvzk9fv59xn4chmm3mv5v"
}
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:149-165
Parameters
The tool requires parameters to specify the time range and event type for which to find slots.
| Parameter | Type | Description | Required |
|---|---|---|---|
startTime | string (date-time) | The start of the time-range to check for available slots. | Yes |
endTime | string (date-time) | The end of the time-range to check for available slots. | Yes |
eventTypeId | integer | The id of the event type to check for. | No |
eventTypeSlug | string | The slug of the event type to check for. | No |
Sources: tool_configs/calcom_get_available_slots.json:10-31
Tool: calcom_create_booking
This tool is used to finalize an appointment after the user has selected a time. It requires the user's name, email, and the chosen time slot.
Configuration
{
"type": "api_integration_webhook",
"name": "calcom_create_booking",
"description": "Create a new booking for an event. This schedules an appointment.",
"api_integration_id": "calcom",
"api_integration_connection_id": "icxn_6101kcppvzk9fv59xn4chmm3mv5v"
}
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:133-148
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
start | string (date-time) | The start time of the booking. | Yes |
end | string (date-time) | The end time of the booking. | Yes |
eventTypeId | integer | The id of the event type to book. | Yes |
timeZone | string | The IANA time zone for the booking. | Yes |
language | string | The language for booking notifications. | Yes |
name | string | Full name of the attendee. | Yes |
email | string | Email address of the attendee. | Yes |
smsReminderNumber | string | Phone number for SMS reminders. | No |
Sources: tool_configs/calcom_create_booking.json:10-53
Agent Booking Sequence
The following diagram shows the sequence of events when an AI agent books a demo for a user over a voice call.
This diagram illustrates the interaction between the user, AI agent, and Cal.com API during a real-time booking process.
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json:88-91, tool_configs/calcom_get_available_slots.json, tool_configs/calcom_create_booking.json
User-Facing Links
In addition to the agent-driven integration, Cal.com is used for direct user scheduling via hyperlinks on the website and in agent prompts.
| Link | Purpose | Location |
|---|---|---|
https://cal.com/team/simple/talk-crm-onboarding | For users to schedule a setup or onboarding call. | src/App.tsx (Help section) |
https://cal.com/team/simple | For leads to self-schedule a demo, shared by the agent on WhatsApp. | agent_configs/SIMPLE-Co-Sales-Agent.json (Prompt) |
Sources: src/App.tsx:441, agent_configs/SIMPLE-Co-Sales-Agent.json:44, 92
Summary
The Cal.com integration is a key component for scheduling within TalkCRM. It provides a flexible system that allows both AI-driven, real-time appointment booking during voice calls and user-driven self-service scheduling through direct links. This dual approach ensures a seamless scheduling experience across different communication channels and use cases, from sales demos to customer support.
Sources: agent_configs/SIMPLE-Co-Sales-Agent.json, src/App.tsx