Book meetings with Cal.com
Add the Book a meeting (Cal.com) power-up so your bot can read the free times on one of your Cal.com event types, offer them in the conversation and book the meeting, all inside the chat.
Who can do this: team owners and admins.
No account connection needed
Public Cal.com events need no API key and no OAuth. Paste the event link and you're done. Links on cal.com, team links and organisation sub-domains (https://acme.cal.com/...) work. Self-hosted Cal.com isn't supported yet.
Steps
- Open your bot, go to the Power-ups tab and click New power-up.
- Choose Book a meeting (Cal.com) and click Create power-up.
- Under Your Cal.com event, paste your event link into Event link. This is the link you'd normally share, for example
https://cal.com/your-name/intro-call. The bareyour-name/intro-callpath works too. - Click Check event. Chat Thing reads the event and shows its title, length and next free times, so you know the link works before a visitor tries it.
- Edit the Description so your bot knows when to offer a meeting. This has the biggest effect on whether the power-up gets used. For example: "Use this when the visitor wants a demo, a call or an intro chat, or asks when we're free."
- Adjust the other settings if you need to (see below).
- Click Save.
Settings
| Setting | What it does |
|---|---|
| API key (optional) | Only needed for a hidden event type. Public events work without one. Once saved, the key is never shown again. |
| Default time zone | Used when the visitor's time zone isn't known. The web widget reports the visitor's own zone, so this mainly affects email and API conversations. Leave blank for UTC. |
| Days of availability to show | How far ahead the bot looks when it offers times, up to 30 days. If nothing is free in that window, it looks at the next one. In the web widget, visitors can also page through the calendar themselves, up to about four months ahead. |
| Booking form | Chat Thing slot picker (default) or Cal.com's own booking form shown inside the chat. Choose Cal.com's form if you want your own branding and custom questions. |
| Ask for a phone number | Adds a phone field to the slot picker. |
| Ask what they would like to cover | Adds a notes field to the slot picker. |
| Show 12-hour times (3:00 pm) | Shows 3:00 pm instead of 15:00. |
What visitors see
In the web widget the bot shows a slot picker in your bot's colours: a month calendar with available days highlighted, arrows to move between months, and a 12/24-hour switch that the visitor's browser remembers. Choosing a day lists its times in the visitor's time zone, which they can change below the calendar. Choosing a time asks for a name and email. If the visitor already gave them in the conversation, they're shown on one line with an Edit link, so there's nothing to retype.
After they confirm, the bot books the meeting and the card turns into a confirmation with the meeting link, cancel and reschedule links, and buttons to add it to Google Calendar or download an .ics file. Once the conversation moves on, the picker becomes read-only so an old time can't be chosen.
On Slack, WhatsApp, Telegram, email and the API there's no picker, so the bot lists the times as text, grouped by day and labelled with the time zone. The visitor replies in words, like "Tuesday at 11 works", and the bot books that slot.
Events with custom questions
If your event type requires an answer the chat can't collect, such as a custom dropdown, the bot shows Cal.com's own booking form instead of the picker and records the booking when the visitor finishes. Check event warns you when this applies.
Cancel a booking
Visitors can ask the bot to cancel. It can do this as long as it has the booking reference from the original confirmation. Visitors can also use the cancel and reschedule links in the confirmation card and in Cal.com's confirmation email.
Check it works
- Chat with your bot and ask to book a call.
- Pick a time and confirm.
- Check that the booking appears in Cal.com and that the chat shows the confirmation card.
Troubleshooting
"Event not found" when I click Check event
Check that the link points to a single event on cal.com, not your profile page, and that the event is public. For a hidden event, add an API key. Self-hosted Cal.com links aren't supported.
The bot never offers a meeting
Make the Description more specific about when to offer one, or add a rule to your bot's prompt, such as "When someone asks about pricing for more than 10 seats, offer a call."
Related
- Book meetings with Calendly
Open your Calendly booking form inside the chat, with the visitor's name and email already filled in. No OAuth or API token needed.
- How power-ups work
What power-ups are, how to add, edit, turn off and delete them, how your bot decides to use one, and what visitors see in the chat.
Last updated