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.

~10 minutes

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.comCalendly
SetupPaste your event URL — no API keyPersonal access token + pick an event type
Booking completesInside the chatOn your Calendly page (slot pre-selected)
Confirmation emailSent by Cal.com (invite + .ics)Sent by Calendly
Why the difference?
Calendly's API doesn't allow third-party apps to create bookings on a visitor's behalf — bookings must be confirmed on a Calendly page. Cal.com's public API supports both reading availability and creating the booking, which is what makes fully in-chat booking possible.

Set up Cal.com

1
Copy your event URL

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.

2
Open Settings → Integrations → Appointment Booking

Select the Cal.com tab.

Open Integrations in admin
3
Paste the URL and validate

Paste 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

1
Create a personal access token

In Calendly go to Integrations → API & webhooks → Personal access tokens and generate a token. Copy it — Calendly shows it only once.

2
Connect DGbot

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.

3
Pick the event type

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:

text
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.

Be specific about when NOT to use it
The best trigger texts name both the phrases that should offer booking and the topics that shouldn't. This keeps the bot from pushing a calendar at visitors who just have a question.

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

1
Open your widget and ask to book

Try "Can I book a demo this week?" — the date picker should appear with your real availability.

2
Pick a slot and confirm

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

SymptomFix
"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 bookingConfirm 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.