Meeting Booking
Visitors can book meetings with your team directly through the Knock Knock widget. Whether they are in a live chat, on an AI voice call, or responding to an auto trigger, the booking experience is the same — simple and fast.
When Booking Appears
The meeting booking calendar can appear in several situations:
- During a live chat, when the visitor or agent suggests scheduling a meeting
- During an AI voice call, when the visitor asks to book a time
- When a visitor clicks a "Schedule Meeting" button on an auto-trigger card
- When a visitor clicks Schedule Appointment on the Welcome widget — the chat opens with the calendar already showing (as long as you have bookable slots)
- When an agent sends a booking link in the chat
In each case, the calendar interface opens directly inside the widget — the visitor never needs to leave your website.
Choosing What to Book
If multi-calendar booking is enabled and multiple LeadConnector calendars are configured, the booking flow starts by asking the purpose of the meeting — "What would you like to book?" — since availability differs per calendar. Once the visitor picks, the calendar shows that option's availability and the booking lands on the right calendar. With a single calendar (or the option off), the flow goes straight to date selection as described below.
For a Semble clinic, the choice step asks Location (when there's more than one), Clinician (a named clinician, or any available clinician), and Appointment type, then Continue. If that choice has no free time, the widget says so and the patient can go back and pick another clinician or location. The AI asks the same three questions in conversation before it checks availability.
When the AI (chat or voice) books, it asks what the meeting is about and matches the answer against the purpose you wrote for each calendar. If the answer fits none or several of them, it names the matching options and lets the visitor choose. It won't pick a calendar just because the visitor gave a date, time, or email — it asks first. Saying "a demo" or naming one of your calendars counts as an answer; only if the visitor says any type is fine does the AI use the first calendar and say which one it used.
The Calendar Interface
When the booking calendar appears, the visitor sees:
Date Selection
- A 7-day calendar view showing available dates
- Days with available time slots are clearly highlighted
- Days with no availability are grayed out
- The visitor taps a date to see the available times for that day
Time Slot Selection
- A list of available time slots for the selected date
- Each slot shows the start time in the visitor's local timezone
- The visitor taps a time slot to select it
Timezone
The calendar automatically detects the visitor's timezone based on their browser settings. All times are displayed in the visitor's local time, so there is no confusion about when the meeting will actually happen.
Timezone auto-detection means your visitors in New York see Eastern times, your visitors in London see GMT, and everyone books at the right time — no manual timezone selection needed.
Providing Contact Information
After selecting a date and time, the visitor is asked to provide their contact details so your team knows who the meeting is with:
- Name — the visitor's full name
- Email — where the calendar invitation will be sent
- Phone (optional) — a phone number for the meeting
If the visitor has provided this information before (for example, in a previous chat), the fields may be pre-filled. See Contact Capture for more on how visitor information is collected and remembered.
Booking Questions (Calendly)
If your Calendly event type has its own invitee questions, the booking panel asks them after the contact details — in chat and in the call panel alike. Choice questions show their options (plus Other with a text box when your event allows it); text questions get a text box. The answers go to Calendly with the booking, so they appear in the visitor's confirmation exactly as they gave them. When the AI books by conversation instead, it asks the same questions itself, one or two at a time, and never invents an answer. See Calendly.
Confirmation
Once the visitor submits their booking:
- A confirmation message appears in the widget showing the date, time, and timezone
- A calendar invitation is sent to the visitor's email address
- The meeting appears on your team's calendar
The visitor can continue their chat or call after booking — the flow is not interrupted.
The confirmation email and calendar invitation are sent automatically. The visitor does not need to do anything else to finalize the booking.
When the AI books, it confirms the time in the visitor's own timezone (for example "Thursday, October 2 at 3:00 PM") rather than a raw timestamp. On LeadConnector and Google calendars it also tells the visitor how long the meeting is, as booked; on other calendars it doesn't state a length.
The AI needs a real email address to book — it never fills in a made-up one like user@example.com. If a visitor won't share an email, the AI explains the invite needs one and offers to take their details for a callback instead. If what it heard doesn't look like an email address, it asks the visitor to spell it again before booking. On phone calls the AI also asks for the caller's full name if it doesn't have it yet, so the booking isn't made for "Unknown".
If you book on a HubSpot meeting link that isn't tied to a connected calendar, the visitor is told the team has been notified and will confirm by email, instead of being promised a calendar invite.
When a Slot Is No Longer Free
If someone else takes the time while the visitor is booking, the widget says "This time slot is no longer available. Please select another time that works for you." and reopens the calendar so they can pick again. If your LeadConnector calendar has its own booking page, a Book Meeting button follows as a fallback for visitors who'd rather book there.
Only a genuinely taken slot gets that message. Any other failure gets "Sorry, I couldn't book that meeting just now…" and an offer to have someone follow up. If a booking actually went through but the confirmation got lost on the way back, a retry recognises the visitor's own meeting and confirms it — they're never told their own booking is blocking them.
Supported Calendars
The meeting booking feature works with the calendars your business has connected:
| Calendar Service | Description |
|---|---|
| Google Calendar | Availability is pulled from your Google Calendar. Booked meetings appear on your calendar automatically. |
| Calendly | If your team uses Calendly, the widget can display your Calendly availability and book through it. |
| LeadConnector Calendar | For businesses using LeadConnector (formerly shown as GoHighLevel), the calendar integration syncs availability and bookings. Meetings use each calendar's own slot length. |
| HubSpot Meetings | Books on the HubSpot meeting link you pick in the HubSpot settings; HubSpot sends the invite. See HubSpot. |
| Jobber | For field-service businesses: fixed 60-minute slots from your working hours minus the Jobber schedule, booked as an on-site assessment. See Jobber. |
| Semble | For clinics: patients pick an appointment type, clinician, and location, and the booking lands in your Semble diary. See Semble. |
The visitor does not see which calendar service you use — they simply see available dates and times. The integration works behind the scenes. When several are connected, a LeadConnector calendar is used first, then a HubSpot meeting link, then Calendly, then Google Calendar, then Jobber, then Semble.
Meeting Length
Each calendar decides how long its meetings are — the LeadConnector calendar's slot length, the Calendly event type, the HubSpot meeting link, the Semble appointment type, or your Google Calendar's default event length. The one exception is Google Calendar on AI voice calls: if the caller explicitly asks for a length ("a 30 minute call"), the meeting is booked at that length (between 5 minutes and 8 hours); otherwise the default applies.
Calendly bookings made by Knock Knock App carry UTM tracking you can use in your own reporting — see Calendly.
Moving a Meeting
A visitor who already has a meeting can move it from the widget. The panel switches to Move a Meeting: it lists their existing meetings, then shows available slots (with a loading state while they load), a Move Summary, and a Move Meeting button. The new slot books on the calendar whose times are on screen. A visitor with no meetings sees an empty state rather than a wait.
Cancelling a Meeting
A visitor can also cancel a meeting from the widget. Cancel a meeting opens Cancel a Meeting — "Which meeting would you like to cancel?" — listing their meetings; after picking one they see Cancel this meeting? with Keep it and Cancel meeting. Once it's done the widget says the meeting has been cancelled and the cancellation lands in the chat transcript. If the meeting was already cancelled elsewhere, the visitor is told it's no longer active.
The AI chat and voice agents can cancel too, when a visitor asks — they always look the meeting up first and confirm which one before cancelling, since a cancellation can't be undone. HubSpot meetings can't be moved or cancelled this way. You can see and cancel upcoming meetings yourself on the Meetings page.
Booking During AI Voice Calls
When a visitor is on an AI voice call and asks to schedule a meeting, the calendar appears on screen while the voice conversation continues. The visitor can:
- Browse dates and times visually
- Select a slot by tapping
- Confirm the booking
- Continue speaking with the AI throughout the process
This makes booking feel natural — the visitor talks through what they need while the visual calendar handles the scheduling details.
Related
- AI Voice Calls — booking during a voice conversation
- Live Chat — booking during a chat
- Contact Capture — how visitor details are collected
- Auto Triggers — the "Schedule Meeting" button on auto-trigger cards
- Meetings — your list of upcoming booked meetings