Appointment booking
Let visitors book demos, viewings, and appointments without leaving the chat — the bot shows real open times from your Cal.com or Calendly calendar.
How it works
When a visitor says something like "can I book a demo next week?", the bot checks your calendar for open slots and shows an interactive date picker right in the chat. The visitor taps a date, then a time — every label is shown in their own timezone.
What happens next depends on your provider:
- Cal.com — the booking is created directly in chat. The bot asks for the visitor's name and email if it doesn't already know them, confirms the slot, and Cal.com sends the calendar invite.
- Calendly — the visitor's chosen slot opens on your Calendly page with the date and time pre-selected (and name/email pre-filled when known); they confirm there.
Every booking is also captured as a lead, so your team sees who booked from the bot.
Choose your provider
| Cal.com | Calendly | |
|---|---|---|
| Setup | Paste your event URL — no API key | Personal access token + pick an event type |
| Booking completes | Inside the chat | On your Calendly page (slot pre-selected) |
| Confirmation email | Sent by Cal.com (invite + .ics) | Sent by Calendly |
Set up Cal.com
In Cal.com, open the event type visitors should book (e.g. your 30-minute demo) and copy its public link — it looks like https://cal.com/your-name/30min. The event type must be public.
Select the Cal.com tab.
Open Integrations in adminPaste the event URL, optionally give the event a friendly label (that's how the bot refers to it — e.g. "30-min demo"), and click Validate & save. DGbot checks the event live and confirms it can see availability.
Set up Calendly
In Calendly go to Integrations → API & webhooks → Personal access tokens and generate a token. Copy it — Calendly shows it only once.
In Settings → Integrations → Appointment Booking, select the Calendly tab, paste the token, and click Connect Calendly. The token is verified against your account and stored encrypted.
Choose which event visitors book from the dropdown (e.g. Discovery call, 30 min). That's it — the bot now offers this event's real availability in chat.
Tune when the bot offers booking
The When to use box tells the AI when to bring up booking. The default triggers on requests to book, schedule, or reschedule a meeting. Tailor it to your vertical — for example:
Use when the user wants to book a property viewing or asks to see an apartment in person — e.g. "can I visit?", "book a viewing", "see the flat this week". Do not use for mortgage questions.
Click Reset to default any time to restore the standard trigger text.
Enable it on your chatbot
Flip Enabled on this chatbot in the same panel. This switches on both halves of the flow: the AI tool that offers times, and the booking action that confirms a tapped slot.
Test it
Try "Can I book a demo this week?" — the date picker should appear with your real availability.
Cal.com: complete the booking in chat and check the event lands in your calendar. Calendly: check the page opens with the slot pre-selected. Either way, the visitor appears under Conversations as a lead.
Troubleshooting
| Symptom | Fix |
|---|---|
| "Couldn't verify that event on Cal.com" | Check the URL is the event's public booking link (cal.com/username/event) and the event type isn't hidden. Team links aren't supported yet — use a personal event. |
| "Calendly rejected that token" | Regenerate the personal access token in Calendly and paste the full value — tokens are shown only once at creation. |
| Bot never offers booking | Confirm Enabled on this chatbot is on, and loosen the When to use text — the AI follows it literally. |
| "No open times right now" | Your calendar genuinely has no availability in the asked window — check the event's schedule and buffer settings with your provider. |
| "That time was just taken" | Someone else booked the slot between display and confirm. The bot automatically fetches fresh times — no action needed. |