Updated October 6, 2026 for the current Calendly and Cal.com actions.
An appointment chatbot can answer a visitor's questions and show available times from a Calendly or Cal.com event. A time selected in chat is not yet a booking. With Agentkit's scheduling actions, the visitor finishes on the provider's booking page. Count the appointment only when the provider confirms it. Cal.com's Requires Confirmation setting can hold a request as pending until the host approves it.
For a simple setup, use a Custom Button that opens your existing booking link. If you want visitors to see available times during the conversation, use the Calendly or Cal.com action on a paid Agentkit plan. Calendly action setup and Cal.com action setup describe the current product flow.
Start with a chatbot that is not on public pages yet. If you already have a live bot, use a separate test bot if your plan allows it, or keep the live widget unavailable while you configure and test the new action. Enabling an action on a live bot can expose it before your check is complete.
Choose the booking route
| Your need | Agentkit setup | What the visitor does | What proves a booking |
|---|---|---|---|
| Show a booking page after answering questions | Custom Button with your event link | Opens the provider's page and chooses a time there | A new event in the provider and its confirmation |
| Show available Calendly times in chat | Calendly action | Picks a displayed time, then completes details on Calendly | A confirmed Calendly event |
| Show available Cal.com times in chat | Cal.com action | Picks a displayed time, then completes details on Cal.com | An approved booking if the event requires host confirmation; otherwise a confirmed booking |
The button route is enough if your booking page already answers the remaining scheduling questions. The Custom Button action does not require a paid plan. The slot actions help when a visitor asks, "Do you have a time next Tuesday?" Each action searches its configured event type.
You can also add Collect Leads for people who want a call back. A submitted lead form does not create a calendar appointment.
Prepare the calendar first
Create an event type for the appointment you actually offer, such as a 30-minute introductory call. Set its working hours, booking notice and time zone in the scheduling provider. Connect the calendar that should block busy times, then open the event page as a visitor to confirm that it shows the expected slots. Calendly's scheduling FAQ explains how event settings and connected calendars affect availability.
Keep the website content that answers pre-booking questions current: service scope, price, duration, location, preparation and cancellation policy. Add those pages as sources to your Agentkit chatbot and test representative answers. Do not ask the bot to invent availability from a static FAQ; the scheduling action reads the event's current slots. A displayed slot is not held for the visitor. The provider must still accept it when they submit the form.
For healthcare, legal or financial services, instruct the chatbot to direct urgent requests and sensitive case details to your approved phone line or secure portal instead of collecting them in booking chat.
Set up Calendly slot search
Calendly actions require a paid Agentkit plan, a Calendly account you can connect and an existing event type.
- Open the agent in Agentkit. Under Actions > Integrations, connect Calendly and approve access.
- Under Actions, add a Calendly action and select a test event type.
- Set When to use to the booking request this event covers. For example: "Offer the introductory-call calendar when a visitor asks to schedule a first call. If they give no date, search the next seven days. If no slots appear, ask for a wider range." The Calendly action guide uses this seven-day default.
- Save and enable the action on the test chatbot. Run the private-page check below before putting that chatbot on public pages.
The action searches Calendly availability and displays matching times in chat. A visitor who selects one opens Calendly's hosted scheduling page to enter their details and confirm. If the connection expires, reconnect it under Actions > Integrations before enabling the action again. If no slots appear, check the selected event type's availability and search window. Calendly action guide.
Set up Cal.com slot search
Cal.com actions also require a paid Agentkit plan. This route uses a public Cal.com user or team event URL; it does not require a Cal.com connection in Agentkit.
- Open a test Cal.com event page and verify it has available times. Copy the full event URL, such as
https://cal.com/example/intro. - In your agent's Actions, add Cal.com and paste that URL.
- Set When to use for this event, then save and enable the action on the test chatbot.
- Run the private-page check below. Select a slot and finish the booking on Cal.com. The link opens the event page with the selected date and time. Confirm they match what the visitor saw in chat.
A login, signup, dashboard or generic team page is not an event URL. If Agentkit rejects the URL, return to the specific event page. The action searches a window of 1 to 28 days. Custom organization hosts work when the URL opens a valid Cal.com event page. Cal.com action guide. If the event uses Requires Confirmation, a submitted request stays pending until the host approves it. Cal.com explains this setting.
Test on a private page first
In the test chatbot's Channels page, copy its generated widget code to a private staging page that visitors cannot reach. Use that chatbot's own code rather than a snippet copied from another article. The embed guide covers installation. Start with a test event type and an email address you control. Once the cases below pass, point the action at the real event type, check that When to use still names the right event, repeat the open-time case, verify the booking in the provider and cancel it. These checks come from product documentation and code; this article does not report a live booking test.
| Case | Action | Pass condition |
|---|---|---|
| Open time | Ask for an available date, pick a displayed slot and finish the provider form | The provider page shows the same date and time the chat displayed in your time zone; it confirms the intended event or shows it pending host approval |
| Abandoned handoff | Pick a slot in chat but close the provider page before submitting | No event exists; the chat does not tell the visitor they are booked |
| No matching slots | Ask for a fully booked or narrow date range | The bot follows your When to use instructions for a wider range or human contact, without inventing a time. Check provider availability settings if expected slots are absent. Calendly's FAQ lists common causes |
| Slot taken during handoff | Open a slot on the provider page, then book it from a second browser before submitting the first form | Check whether the first form still offers the time and whether a second event appears; the chat must not claim the time is confirmed |
| Wrong service | Ask for a service that uses another event type | The bot does not offer this event's slots; it directs the visitor to the right booking link or a human contact route |
| Mobile visit | Repeat the handoff on a phone-sized screen | The provider page opens, accepts details and shows the final confirmation |
After the successful case, inspect the event in Calendly or Cal.com. Check the invitee email, event type and time zone. For a Cal.com event with host approval, inspect its pending request and approve it before counting it as confirmed. If the event is missing, check that the provider showed final confirmation, that the request is not pending approval, and that you are looking at the right account and event type. Diagnose the provider side before editing the chatbot's instructions.
Put the tested bot on your website
Only after the private check passes, add the tested chatbot's generated widget code to the service or contact pages where visitors consider an appointment. If you used a separate test bot to protect an existing live bot, switch the public embed to the tested bot. Check the public page once more for the right chatbot and event link before inviting visitors to book.
Measure bookings separately from leads
Review Chat Logs for booking-intent conversations, and use the scheduling provider's confirmed events for booked appointments. If you need attribution, create an event type used only by this chatbot route and do not link it elsewhere. Count its confirmed events. A shared event type cannot tell you which bookings came from chat without separate tracking. Keep pending requests and cancellations out of the confirmed count.
Do not assume that a chatbot reduces no-shows or lifts after-hours bookings. Those outcomes depend on the calendar, reminders, audience and service. Compare with your previous booking flow before crediting the chatbot. Configure reminders and rescheduling in the scheduling provider; Calendly describes both in its scheduling FAQ.
Ready to try the slot-search route? Create an Agentkit account, check your plan, then use the Calendly or Cal.com setup guide for your calendar. Complete a test booking before inviting real visitors.



