Cal.com integration
Connect Cal.com and your AI agent books meetings in the chat
Paste a Cal.com API key, pick an event type, and your intoCHAT agent shows real open times under its reply. The visitor chooses one, enters a name and email, and the booking is created in Cal.com, which sends its usual confirmation.
How intoCHAT and Cal.com work together
intoCHAT talks to Cal.com's API (version 2, at api.cal.com) with an API key from your Cal.com account. It does three things with that key and nothing else: it lists your event types so you can pick one, it reads open times for that event type, and it creates a booking when a visitor confirms a time. Your availability rules, buffers and connected calendars stay in Cal.com, which is where the open times come from. The AI model never invents a time. The agent decides when to show the time picker, guided by a short text you write: "When to offer booking". When the conversation fits, for example a visitor asks for a demo or wants to know when someone is free, it shows the open times under its reply. It doesn't list times in its text and doesn't ask for a name or email in the chat: the visitor enters those in the picker. Right before booking, intoCHAT asks Cal.com again whether the time is still free. If someone else took it in the meantime, the visitor is asked to pick another, and nothing is double-booked. If your event type needs you to confirm bookings, the confirmation in the chat starts with "Requested:" instead of "Booked:" and says the meeting still has to be confirmed. This page is about the Cal.com connection itself: setup, what syncs and the limits. For what booking in the chat looks like for visitors, and how to use it in sales and support conversations, see the appointment booking feature page.
Connect Cal.com to your intoCHAT agent
Create an API key in Cal.com
In Cal.com, open Settings, Developer, API keys and create a key. It starts with cal_. You also need at least one event type, such as a 30-minute intro call.
Open the Booking card
In intoCHAT, open your agent and go to the Actions tab. The Booking card is below your actions and forms. Under Calendar, choose Cal.com.
Paste the key and click Connect
Paste it into Cal.com API key. intoCHAT checks the key by loading your event types, stores it encrypted, and from then on shows only cal_… and its last four characters.
Pick the event type visitors book
Each event type shows its title and length. One marked "(hidden in Cal.com)" is hidden on your public booking page, but visitors can still book it from the chat.
Say when to offer booking, then save
Optionally fill in When to offer booking, up to 1,000 characters, read by the agent and never shown to visitors. Click Save: booking is on as soon as it is saved.
Book a test meeting
Ask for a meeting in the Playground and book a time. Playground bookings are real: they create the meeting in Cal.com and send its emails, so cancel test bookings in Cal.com afterwards.
When to offer booking, if you leave it empty
When the visitor wants to book a meeting, call, demo or appointment, or asks when the team is available.Write your own to narrow it down, for example only after the visitor has said which product they are interested in.
What syncs between intoCHAT and Cal.com
Open times, read live
Times come from Cal.com each time the picker opens: up to 5 days with open times and up to 8 times a day, 7 days ahead by default, or the days the visitor asks for, up to a year ahead.
Bookings created in Cal.com
A confirmed time becomes a Cal.com booking with the visitor's name, email and time zone. Cal.com sends its usual emails and calendar invites; intoCHAT sends no email of its own.
The visitor's time zone
Times are shown in the time zone of the visitor's browser, for example "Times in Europe/Berlin", and written the way their browser writes dates.
A Bookings list in intoCHAT
The Bookings card on the Leads tab lists every meeting booked from the chat, with the visitor's name, email, time zone and a link to the conversation.
Webhook and Slack alert
Subscribe a webhook to Meeting booked to receive booking.created with provider calcom and the Cal.com booking ID, or tick Booked meeting in Slack alerts.
A key used for booking only
The key is stored encrypted and never shown again. intoCHAT uses it to read event types and open times and to create bookings, nothing else in Cal.com.
Frequently asked questions
Which intoCHAT plan do I need for Cal.com?
Any plan, including Free: booking with Cal.com is not tied to a paid intoCHAT plan. Booking a time doesn't use a message; the reply that shows the times counts like any other reply. Procedures, from Starter, can also tell the agent to offer booking after a few qualifying questions.
Does a cancellation in Cal.com show up in intoCHAT?
No. There is no sync back from Cal.com. If a meeting is rescheduled or cancelled there, the Bookings list and the conversation still show the original booking, and no webhook is sent. Visitors cancel or reschedule through Cal.com's own emails, not in the chat.
Can I connect a self-hosted Cal.com instance?
Not today. intoCHAT connects to Cal.com's hosted API at api.cal.com, so the API key has to come from an account there.
Can one agent offer several event types?
No. Each agent books one event type from one calendar at a time. Use Change event type on the Booking card to switch. To offer a sales demo and a support call, create two agents, each with its own event type.
What if Cal.com refuses my key?
The card says "Cal.com didn't accept this API key." Check that you copied the whole key and that it hasn't expired or been deleted in Cal.com. If your account has no event types yet, create one and click Connect again. You can check keys up to 10 times in 10 minutes.
What happens when the time was just taken?
intoCHAT asks Cal.com again right before booking. If the time is gone, the visitor sees "Sorry, that time was just taken. Please choose another one." and that time disappears from the list.
Is a booking also saved as a lead?
No. A booking has its own list, webhook (booking.created) and Slack alert. The visitor's name and email from the picker don't add a lead and don't send a lead alert, and bookings aren't counted under Outcomes on the dashboard.
How do I stop booking without losing the setup?
Use the On / Off switch in the Booking card's header. Disconnect stops booking and deletes the saved key; meetings already booked stay in Cal.com and in the Bookings list. A duplicated agent doesn't copy the Cal.com connection, so connect it again in the copy.
See it answer from your own website
Paste your website address and chat with an agent built from your pages. It takes about a minute.
Create your agent freeFree plan, no credit card needed.