The Cal.com integration is configured per agent inside the Integrations tab of each assistant. It is step-attached — once added, you connect it to a specific Call Flow step using + Connect Action.
Before you start
You’ll need:- An active Cal.com account (free plan is fine for getting started)
- A PulsyAI agent already created
- The agent’s LLM set to GPT-4.1 or smarter — booking involves multi-step function calls, date parsing, and conditional logic. See the LLM recommendation table in Prompt Examples for context.
Where you’ll land in PulsyAI
Before diving into Cal.com, here’s what you’re working toward. Inside your PulsyAI agent, open the Integrations tab and click + Add Integration.

The next steps walk you through collecting each value from Cal.com. Once you have all five, you’ll come back to this modal, fill them in, and click ADD.
Step 1: Connect your calendar to Cal.com
If this is a new Cal.com account, connect the calendar where bookings should land — Google Calendar, Outlook, Apple Calendar, Zoho, or any of the supported options. This is how bookings made by your PulsyAI agent show up on the actual calendar your client checks every day.
Step 2: Find your Cal.com Username
Your Cal.com username is the slug that appears in your public booking URL —cal.com/[username]. You can read it directly from the Event types page in Cal.com: it appears in the URL slug next to each event type (e.g., /mb-lgziz3/30min means the username is mb-lgziz3).

Step 3: Find your Event ID
Each event type on Cal.com has its own Event ID. This is what tells PulsyAI which booking type the agent should offer — a 30-minute consultation, a free quote, a follow-up, etc. Click the event type you want to use. Cal.com redirects you to that event’s configuration page, and the Event ID appears in the browser URL:6166895. It is always a numeric value.

Step 4: Generate your Cal.com API key
The API key authorizes PulsyAI to read availability from your Cal.com account and create bookings on your behalf.1
Open Settings
Click Settings in the bottom-left of the Cal.com sidebar.

2
Open the API keys menu
In Settings, scroll to the Developer section and click API keys.

3
Create a new key
Click + New to open the key creation modal.

4
Name the key and toggle Never expires
Give the key any name you want (e.g., 
Calendar PulsyAI). Then toggle Never expires ON before clicking Create.
5
Copy the key immediately
Cal.com shows the API key (format 
cal_live_...) only once. Copy it now.
Step 5: Match your Timezone (the most important rule)
The timezone is the single most common cause of “the booking worked but landed at the wrong hour” tickets. PulsyAI’s Cal.com modal accepts any timezone, but it must match exactly the timezone configured in two other places.Step 6: Add Cal.com to your PulsyAI agent
Open the agent inside PulsyAI, click the Integrations tab, then + Add Integration and choose Cal.com. Fill the five fields:
Step 7: Wire Cal.com into a Call Flow step
Adding Cal.com to the agent doesn’t book anything on its own — you have to attach it to the specific Call Flow step where booking should happen.
- Open the step where the agent should book the appointment.
- Check Should the agent book a meeting in this step?
- Click + Connect Action under Actions and select the Cal.com integration you just added.
- In Call Configuration → Timezone, set the same IANA timezone you used in the Cal.com modal.
- At the top of the prompt (or inside the Agent Context), add the
{now}variable so the agent knows the current time in the configured timezone:
The booking prompt itself
For the actual prompt the agent uses to handle the booking conversation — the full function-calling flow withisDateAvailable, getAvailabilityForRange, fetchEarliestAvailability, and confirm_booking — use the universal PulsyAI booking prompt documented in Prompt Examples → Booking appointments.
That prompt is universal: the function names work identically across every booking backend on PulsyAI, including Cal.com. There is no Cal.com-specific prompt — once the integration is wired into the step, the universal booking prompt drives the conversation. Copy it, swap the opening line for your client’s service vocabulary, and you’re live.
Multiple booking types on the same agent
Cal.com is added once per booking type, not once per agent. If your client offers a free consultation, a paid consultation, and a follow-up call, you’ll add Cal.com to the PulsyAI agent three times — each with the same Username and API key, but a different Name and Event ID:
Each Cal.com entry is then connected to its own Call Flow step using + Connect Action. When you have multiple Cal.com integrations on the same agent, make the prompt explicit about which one applies to which step — otherwise the agent has no way to know which calendar slot to read from.
Downstream calendar sync
Troubleshooting
Wrong Event ID — The agent calls the availability function but no slots come back, or it fails to confirm. Re-check the Event ID in the Cal.com URL and confirm it matches the value pasted into PulsyAI. API key expired or revoked — All Cal.com functions fail silently. If you set a duration on the key, regenerate it with Never expires toggled on. If the key was revoked from inside Cal.com, generate a new one and paste it into the PulsyAI modal. Timezone mismatch — The booking succeeds but lands at the wrong local hour. Re-check the three timezones from Step 5: Cal.com event, PulsyAI Cal.com modal, and Call Flow Call Configuration. All three must be the same IANA string. Missing{now} variable — The agent doesn’t know the current date or time and starts proposing slots in the past or asking the caller what day it is. Add **Current time:** {now} to the top of the prompt or to the Agent Context.
Multiple Cal.com integrations, no routing in prompt — When several Cal.com entries are connected to the same agent, the prompt has to explicitly tell the agent which booking type belongs to which step or scenario. Without that, the agent will pick one at random.
Next step
Booking prompt template
The universal PulsyAI booking prompt with the full function-calling flow — ready to drop into your Cal.com step.
Integrations overview
The broader picture: how PulsyAI handles every integration type, step-attached vs. global.