How-toAppointment bookingIntegrations

How to Let an AI Chatbot Book Cal.com or Calendly Meetings

Let an AI chatbot book Cal.com meetings inside the chat: the three booking levels, PepoChat setup steps, what Calendly's API allows, tests and fixes.

PepoChat TeamPublished Last verified 13 min read
A young woman works on a laptop at a home desk with a notebook, phone and mug beside her

Short answer

A chatbot can handle Cal.com or Calendly bookings at three levels: it shares your booking link, opens your booking page inside the chat, or reads live slots and books through the calendar's API. As of November 2026, PepoChat books Cal.com event types inside the conversation on every plan, including Free with 100 AI replies a month, using a Cal.com API key that works on Cal.com's free plan. PepoChat has no Calendly integration.

If your meetings run on Cal.com or Calendly and you want the chat on your website to fill them, this guide is for you: founders who take demo calls, consultants who book discovery calls, and support teams that offer onboarding sessions. By the end you will know which level of chatbot booking you need, which chat tools reach it with each calendar, and how to set up the strongest version step by step.

The walk-through uses PepoChat, an AI support agent for websites that books Cal.com meetings without the visitor leaving the chat. Its steps and limits come from PepoChat's documentation and product code. What Cal.com's and Calendly's APIs allow comes from their own developer docs, read on 11 November 2026.

PepoChat is our product; we include it where it fits and say where other tools are the better choice. Facts below were checked on vendor pages on 11 November 2026.

What are the three levels of chatbot booking?

A chatbot can book meetings at three levels: it can paste your booking link, open your booking page inside the chat window, or read live availability and create the booking itself through the calendar's API. Each level asks less of the visitor than the one before.

Level 1, the booking link, is the bot replying with your Cal.com or Calendly URL. The visitor leaves the conversation, picks a day, picks a time, types a name and an email and confirms, on a page they did not ask to open. Whatever they told the bot is lost on the way.

Level 2, the embedded booking page, opens that same page inside the chat widget. The visitor stays on your site, but the work is the same: a calendar grid, a form and a confirm button.

In-chat booking (level 3) is when the agent fetches open slots, offers a few times in the conversation and creates the booking through the calendar's API when the visitor says yes. The visitor's part shrinks to one reply ("Thursday at 10 works") plus a name and email if the agent does not already have them.

LevelWhat the visitor doesWhat you needTools that reach it
1. Link in the replyLeaves the chat, picks a day and time, types details, confirmsThe link in the bot's knowledge baseAny chatbot; Tidio's Calendly template
2. Booking page inside the chatPicks a slot on the embedded page, types detailsA widget that can open the pagePepoChat's "Find a time" button (Cal.com, PepoSmart)
3. In-chat bookingPicks a time in the conversation, gives an email if askedAn API connection to the calendarPepoChat (Cal.com), Chatbase, Landbot, Intercom, Botpress

Level 3 is not always the right answer. A paid session, a long intake questionnaire or a recurring series belongs on your booking page, which is why the best setups offer level 3 for simple meetings and keep levels 1 and 2 as the fallback.

Which chat tools book Cal.com or Calendly meetings in the chat?

As of November 2026, PepoChat, Chatbase, Intercom, Landbot and Botpress document booking inside the conversation for at least one of the two calendars, while Tidio's Calendly template hands the visitor a link. The table shows which calendar each one supports and where the feature starts.

ToolCal.comCalendlyWhere it starts
PepoChatBuilt in: live slots, books in chat, "Find a time" pageNo integration (link only)Every plan; Free has 100 AI replies a month
Chatbase"Calcom Get Slots" action, from the event URL"Calendly Get Slots" action, account connected firstHobby, $40 a month; no free plan
IntercomFin "uses prebuilt Cal.com templates to help customers with their bookings"Fin for Sales books in the MessengerPaid Calendly plan required, per Intercom
LandbotNot listedCalendly block, web onlyProfessional, €100 a month
BotpressHub integration: list events, book an event"Your bot can schedule events via Calendly"Plan not stated
TidioNot listedLyro "Book a call" template sends a linkPlus (from $300 a month) and Premium

Prices and features from each vendor's own pages and help centers, checked 11 November 2026.

Of these tools, PepoChat and Chatbase document in-chat Cal.com booking without any flow building, and PepoChat is the one that offers it on a free plan, next to a team inbox and human handoff. Chatbase's Cal.com action needs no Cal.com connection at all: "Cal.com works from your event URL alone." That matches Cal.com's create-a-booking reference, where the Authorization header on POST /v2/bookings is optional. Chatbase's pricing FAQ adds that a calendar action means two model requests, "2x the number of credits".

Intercom's Calendly article, dated 10 August 2026, shows a calendar card in the web Messenger and a scheduling link in email and SMS. Landbot's Calendly block "lets a user book a meeting with you without leaving the conversation", as a button-led flow step that is "compatible with Web only". Botpress gives you the parts and leaves the flow to you. Our roundup of AI chatbots with appointment booking compares these tools on price and features.

What do you need before connecting Cal.com to PepoChat?

You need a Cal.com account with at least one personal event type, a Cal.com API key, and a PepoChat workspace on any plan, Free included. Nothing else has to be bought.

  • A Cal.com account. PepoChat's documentation says the key works on Cal.com's free plan, and Cal.com's post on where to find your API key says "all account types have access to API keys". Cal.com's free plan lists unlimited links and calendars.
  • Your calendars connected inside Cal.com. PepoChat reads only the slots Cal.com offers, so Google, Outlook or other calendars must be connected in Cal.com for their busy times to count.
  • The right account. The agent books the event types of the account that owns the key. Team event types are not offered yet, so each meeting type must be a personal event type of that account.
  • A PepoChat workspace with the widget installed, through one script tag or the WordPress plugin. Booking is on every plan.

A key from Cal.com's EU instance also works: when you connect, PepoChat tries Cal.com's main API first and then the EU one, and remembers which one accepted the key.

How do you connect Cal.com to PepoChat? Step by step

Connecting takes six steps: create a key in Cal.com, paste it into PepoChat, switch on the event types the agent may book, write a note for each, add optional rules, and save.

Step 1: Create a Cal.com API key

In Cal.com open Settings → Developer → API keys, add a new key, give it a name such as "PepoChat website chat", choose an expiry date or no expiry, and copy it at once, because Cal.com shows it only once. Keys start with cal_; live keys start with cal_live_. Cal.com's API reference describes the same page under Settings → Security, so look there if your menu differs.

An expiry date is a booking cut-off: on that day the agent stops booking until you paste a new key. Set a reminder, or choose no expiry and delete the key when you no longer need it.

Step 2: Connect Cal.com in PepoChat

In the PepoChat dashboard sidebar open Integrations, then Cal.com under Scheduling, and click Connect. Paste the key into the API key field and click Connect again. The button reads "Checking key..." while PepoChat tests the key against Cal.com; anything that does not start with cal_ is refused at once, and a key Cal.com refuses shows "Cal.com rejected the API key".

The key is stored encrypted (AES-256-GCM) and never shown again. The page then reads "Cal.com is connected as" followed by the Cal.com username and time zone. Check both: the username tells you whose event types the agent books, and the time zone is the host's zone every booking is made in.

Step 3: Switch on the event types the agent may book

The Bot booking settings card lists every personal event type under Bookable meeting types, with its length, an "unlisted" mark for hidden ones, and a reason next to any the agent cannot book. Tick the ones the agent may offer, up to 12 on the page.

Hidden event types are a useful trick. Create an unlisted 20-minute "Website chat intro" with no custom questions, and your public booking page can keep its intake form while the chat books the short version. New event types you create later are not offered until you tick them here.

Step 4: Write a "when to offer this" note for each

Each ticked event type gets a field labelled When should the assistant offer this?, up to 500 characters. PepoChat builds a check-slots tool and a book tool for every ticked type and puts your note in their descriptions, so the agent picks the meeting from what the visitor says instead of showing a menu. A blank note routes on the event type's name alone.

Write the cases where the agent must not offer the meeting first, because over-offering is the usual failure. Three notes that work:

15-minute intro call: Offer when a prospect asks to talk to someone, asks
whether we are a good fit, or has a pre-sales question the knowledge base
does not answer. Never offer to existing customers reporting a problem.

45-minute product demo: Offer only when the visitor asks to see the product
or says they are comparing tools for a team. Do not offer to students, job
seekers or vendors pitching us.

30-minute onboarding session: Offer only to customers who have signed up and
ask for help with setup. Never offer for billing questions or bug reports;
hand those to the team instead.

Coaches and consultants can adapt these for discovery calls; the chatbot guide for coaches and consultants has qualifying questions to pair with them.

Step 5: Add scheduling rules (optional)

Custom instructions holds up to 2,000 characters that apply to every meeting type, for example "Offer booking at most once per conversation unless the visitor asks again" or "Our team is in Lisbon; if a visitor asks for a time outside the offered slots, explain that and offer the earliest one."

Step 6: Save and check the banner

Click Save settings. If no bookable event type is ticked, the card warns "The assistant can't book appointments yet", so a missing tick never goes unnoticed. Then run the ten tests further down.

If you do not have a workspace yet, create a free PepoChat workspace. Booking is on the Free plan, so you can run every step above and test real bookings before paying anything.

What does the visitor see when the agent books a Cal.com meeting?

The visitor asks for a call, the agent offers a few real times in the visitor's own time zone, collects what the booking needs, re-checks the slot and books it, and Cal.com sends the confirmation. Here is each step as PepoChat's code runs it.

  1. The agent matches the request to one of your ticked event types using your notes.
  2. It checks availability through Cal.com's slots endpoint, seven days ahead by default and up to 14. At most five days and eight slots a day reach the agent, chosen from 8 am to 8 pm in the visitor's time where possible, so a visitor nine hours away is not offered the middle of their night. Every slot arrives already converted to the visitor's local time, with the weekday worked out in code; the model never converts a time itself.
  3. It collects the details. For an event type with several locations the agent asks which one; when the host calls the visitor it asks for a phone number in international format; when the meeting is at the visitor's address it asks for it. If the visitor has verified their email with a 6-digit code, the booking uses that name and address; otherwise the agent asks for both and will not book without a valid email.
  4. It re-checks and books. Just before booking, PepoChat asks Cal.com for live availability again and books only if that exact slot is still offered. If it is gone, the agent apologises and offers other times. The booking carries source: pepochat in its metadata and the visitor's browser language, so Cal.com's emails go out in that language when Cal.com supports it.
  5. It confirms. The agent repeats the time in the visitor's zone and the meeting link, and Cal.com sends its usual confirmation and reminders. If the event type needs the host to accept bookings, the agent says the request is in and that an email follows once the host accepts. PepoChat also saves the visitor as a contact, with "booking" as the source.

When the agent shows openings, the widget can also show a Find a time button that opens the Cal.com booking page inside the widget. That gives you level 2 and level 3 from one setup: the agent books for visitors who reply in words, and the calendar grid serves those who prefer to browse.

A young woman with headphones smiles and waves at a laptop on her bed during a video call
The booking is only half the job: the meeting link and the time in the visitor's own zone have to arrive in the confirmation email.

On cost, PepoChat counts one AI reply for each answer the agent sends; the slot lookups and the booking inside that answer are not charged separately. Free covers 100 replies a month and Starter 1,000 for $39.

Which Cal.com event types can't the agent book, and why?

PepoChat's agent will not book paid, recurring, sign-in-only, email-verification, required-question or team event types. They stay on the list, greyed out with the reason, and visitors can still book them on your Cal.com page.

Event typeWhy chat booking is offWhat to do
PaidPayment belongs on Cal.com's page, never in a chat replyShare the page; the agent says it can't book that type
RecurringOne "yes" would commit the visitor to a whole seriesMake a one-off first session for chat; the series stays on the page
Requires sign-inThe agent cannot sign in to Cal.com as the visitorKeep it on the page
Booker email verificationCal.com's code goes to the visitor's inbox, outside the chatTurn it off on a chat-only copy; PepoChat can verify emails itself
Required custom questions or guestsThe agent would have to invent answersMake an unlisted copy without them for chat
Team event typesNot offered yetUse a personal event type, or PepoSmart for round-robin

An event type whose Additional notes field is required can be booked; the agent fills it with "Booked through the website chat assistant."

These are product choices, not API limits. Cal.com's reference shows POST /v2/bookings creating recurring bookings and accepting an emailVerificationCode, but a chat agent should not commit someone to a series or handle money on a guess.

The agent also cannot move or cancel a booking. Cal.com's API has reschedule and cancel endpoints, yet a chat session that could cancel by email address alone would let anyone who knows an address cancel someone else's meeting. The visitor uses the reschedule link in Cal.com's confirmation email, which proves they own the booking.

Can a chatbot book Calendly meetings? What Calendly's API allows

Yes, at the API level: Calendly's Create Event Invitee endpoint, POST /invitees, "creates a new booking for an event invitee", which Calendly says lets you "book an invitee directly from your app without redirects, iframes, or Calendly-hosted UI."

What the docs say, as of 11 November 2026:

  • Slots come from GET /event_type_available_times, and one request "cannot span more than 31 days".
  • A booking needs the event type, a start time in UTC, and the invitee's email, time zone and name. A location object is required unless the event type has no location.
  • Access is an OAuth app, or a personal access token for an owner or admin of a Calendly organization; the scope is scheduled_events:write.
  • Notifications and calendar invites run "as if booked via the Calendly UI".
  • Changes: an endpoint cancels events, but per the developer FAQ "there is no API endpoint that supports rescheduling"; the invitee carries cancel and reschedule links.

The plan question is unsettled. The same FAQ says API requests work "on any subscription plan, including the Free plan", apart from a few Enterprise endpoints, while Intercom's Calendly article says a paid Calendly plan is "required to use the scheduling API". Ask Calendly which applies to your account before you build on it.

PepoChat has no Calendly integration: your options as a Calendly user

PepoChat does not connect to Calendly, so a Calendly user has three honest routes: mirror one event type on Cal.com's free plan for chat bookings, put the Calendly link in the knowledge base, or keep Calendly and use a chat tool that has a Calendly action.

An open September monthly planner with a pen, beside an hourglass and a dark alarm clock on a white tray
Two schedulers can share one diary as long as both read the same calendar, so a chat-only Cal.com event never collides with Calendly bookings.

Option 1: mirror one event type on Cal.com's free plan (PepoChat's best path). Cal.com's pricing page lists "1-click import Calendly events" and unlimited links and calendars on the free plan. Import or recreate your main call type, make it unlisted, and connect the same Google or Outlook calendar that Calendly writes to, so Cal.com sees your Calendly meetings as busy time. Check that Calendly checks that calendar for conflicts too. Then connect Cal.com to PepoChat as above. Your Calendly page keeps everything else; chat bookings come from Cal.com and its emails.

Option 2: put the Calendly link in the knowledge base (level 1). Add a Q&A pair under Knowledge Base → Add New → Text & Q&A, as the text and Q&A docs describe, and the agent shares the link when visitors ask. It works on every plan and takes two minutes:

Question: How do I book a call with you?
Answer: You can pick a time for a 30-minute call on our Calendly page:
https://calendly.com/your-name/30min. You will get a confirmation email
with a link to reschedule if your plans change.

Option 3: keep Calendly and use a tool with a Calendly action. If Calendly must stay your only scheduler and the booking must happen in the chat, Chatbase, Landbot, Intercom's Fin for Sales or a Botpress build is the better choice, at the prices in the table above.

A developer could point a PepoChat custom action at Calendly's POST /invitees, since custom actions call any HTTPS API with a bearer token in a header. We do not recommend it. There is no template, and the agent would have to produce the UTC start time itself, the very conversion PepoChat's built-in Cal.com booking keeps away from the model. Calendly's guide also says the start time "must correspond to a valid open slot at booking time", and custom actions run at least once, so a write can rarely run twice.

How do you test chatbot booking before going live? A 10-point checklist

Run these ten tests with a colleague in another time zone before real visitors see the booking flow; each takes a minute or two. Every test books a real Cal.com meeting, so cancel the test bookings in Cal.com afterwards.

#TestPass condition
1Set your browser to a zone six or more hours from the host's and ask for a callSlots read in that zone with the right weekday; the booking lands at the matching hour in Cal.com
2Pick the same slot from two browsers within a minuteOne booking; the second visitor hears the time was taken and gets alternatives
3Give the event type a buffer in Cal.com, book a slot, ask againNo slot is offered inside the buffer around the first booking
4While the chat shows openings, book one on your Cal.com page, then pick it in chatThe agent says it was just taken and offers other times
5Stay anonymous and refuse to give an emailThe agent explains the confirmation needs one and books nothing
6Ask for your paid consultation by nameThe agent says it cannot book that type in chat and offers the page or a person
7Book with your own addressCal.com's confirmation shows the time the chat showed, with the meeting link
8Open the reschedule link in that email, then ask the agent to move the bookingThe link works; the agent points to the link and does not book twice
9Ask a billing or bug questionNo slot is offered; the agent answers or hands off to the team
10Fetch the test booking through Cal.com's API or a booking webhookIts metadata includes source: pepochat

Troubleshooting: missing event types, no slots, wrong time zone

Most booking problems trace back to which Cal.com account owns the key, an event type setting that blocks chat booking, or a time zone set wrongly in Cal.com.

SymptomLikely causeFix
Event type missing from the listAnother Cal.com account owns it, or it is a team event typeCheck the "connected as" username; create the key in the owner's account
New event type not showingThe card loaded before you created itReload the page, tick it and save
Event type greyed outThe reason after its name: paid, recurring, sign-in, verification, questions or guestsChange the setting, or make an unlisted copy for chat
"Could not load event types from Cal.com"The key expired or was deletedCreate a new key, disconnect and connect again
No slots offeredNothing free in the next 7 days, minimum notice, or busy calendarsOpen your Cal.com page for the same event type; fix availability there
Slots only at odd hoursYour available hours fall in the visitor's nightAdd hours, or say in the custom instructions what to offer
Times off by hoursThe Cal.com profile time zone is wrong, or the visitor's device zone isFix the zone in Cal.com (shown on PepoChat's Cal.com page); test on another device
Agent offers a person instead of bookingCal.com did not answer within 15 seconds, or nothing is savedTry again; check the card for the warning banner

If the problem is slots shown in the wrong zone or two people taking one slot, our guide to AI chatbot appointment booking explains the design behind each check.

What to do next

  • Read the appointment booking docs for the full list of what the agent can and cannot book on Cal.com and PepoSmart.
  • If you take repeat meetings, see how meeting memory lets the agent recall a verified customer's past meetings through PepoSmart.
  • Compare reply allowances on the pricing page: booking is on every plan, and Starter is $39 a month for 1,000 replies.
  • If booking is part of a sales flow, our best AI chatbots for lead generation compares how eight tools capture, qualify and book leads.
  • Start a free PepoChat workspace, connect Cal.com with one API key and switch on one event type.

Frequently asked questions

Can an AI chatbot book meetings on my Cal.com calendar?
Yes. Cal.com's API v2 has a slots endpoint for live availability and a bookings endpoint that creates the meeting, so a chatbot can book inside the conversation. As of November 2026, PepoChat does this on every plan, including Free: you paste a Cal.com API key, switch on the event types the agent may book and write a note on when to offer each.
Does PepoChat work with Calendly?
No. As of November 2026, PepoChat has no Calendly integration. Calendly users can mirror one event type on Cal.com's free plan and connect that to PepoChat for real in-chat booking, add their Calendly link as a Q&A pair so the agent shares it, or use a chat tool with a Calendly action, such as Chatbase or Landbot.
Can Calendly's API book a meeting for someone else?
Yes. Calendly's Scheduling API books through POST /invitees with the event type, a UTC start time and the invitee's name, email and time zone, and notifications run as if the invitee booked in Calendly. Calendly's developer FAQ says the API works on any plan including Free, while Intercom's setup guide says a paid Calendly plan is required, so confirm with Calendly.
Is the Cal.com API free to use?
Cal.com says all account types have access to API keys, and a key from Cal.com's free plan works for chat booking. You create it under Settings, Developer, API keys, and Cal.com shows it only once. The free plan is for one user; round-robin and team event types need Cal.com's Teams plan, $12 a user a month billed yearly.
Why won't the chatbot book my paid Cal.com event type?
Because payment belongs on Cal.com's own booking page, not in a chat reply. PepoChat lists paid, recurring, sign-in-only and email-verification event types, and those with required custom questions, but greys them out with the reason. Visitors still book them on your Cal.com page; for a simple meeting, an unlisted copy without the blocking setting can be booked in chat.
Can the chatbot reschedule or cancel a Cal.com booking?
Not in PepoChat. The agent books meetings but never moves or cancels one, because a chat that could cancel by email address alone would let strangers cancel other people's meetings. Visitors use the reschedule link in Cal.com's confirmation email, which proves they own the booking, or ask for a person in the chat.

Try this on your own site in ten minutes

PepoChat includes every chat feature on the free plan — 100 AI replies and 5 knowledge sources a month, no credit card.