Skip to content

Meetings

When a lead is interested, your agent can book the meeting itself, without leaving WhatsApp. It reads your real availability, offers a few slots in plain language, and creates the event in your calendar once the lead picks one. No cold link, no form.

Calendar How it connects What the agent needs from the lead
Calendly Sign in with your Calendly account (a popup opens). An email address, always.
Cal.com Sign in with your Cal.com account (a popup opens). An email address if your event type requires one; otherwise the meeting is booked on the lead’s WhatsApp number.
GoHighLevel A private integration token and the Location ID of your sub-account. Nothing extra: the meeting is booked on the lead’s WhatsApp number and the contact lands in your GHL pipeline.
  1. Open Settings, then Integrations, and find the calendar cards.
  2. Click Connect Calendly, Connect Cal.com or Connect GoHighLevel.
  3. For Calendly and Cal.com, sign in inside the popup and allow access. For GoHighLevel, paste your Private integration token and your Location ID (sub-account), then click Validate & connect.
  4. The card shows Connected with the name of the account.

For GoHighLevel, create the token in Settings, Private Integrations, with the calendars.readonly, calendars/events.write and contacts.write scopes. The Location ID is in the URL of your sub-account.

One calendar per provider is connected for the whole workspace. Every campaign then picks its own event type. Disconnect removes the connection; campaigns that used it fall back to sharing a link.

  1. Open the campaign and expand the In-chat booking section.
  2. Turn on Enable in-chat booking for this campaign.
  3. Under Event type to book, pick the event type (or the GoHighLevel calendar) the agent should book. Click Refresh if you just created it.
  4. Adjust the settings below if needed. Everything is saved automatically.
Setting Default Range
Slots offered per message 3 1 to 5
Window (days): how far ahead to look for availability 14 1 to 30
Timezone shown to the lead Europe/Paris any
Hold (min): how long a proposed slot is kept aside 5 1 to 30
Fallback link the event’s public link any URL

The panel What the agent will do with this event reads your event type and tells you its duration, its place, and whether the email and the phone are Required, Optional or Not asked. Change those on the calendar side, not in WhatSetter.

If the calendar is not connected, the section says so and sends you to Integrations.

  • Slots come from your real availability, within working hours (9:00 to 19:00 in the campaign’s timezone), never less than 2 hours ahead.
  • The agent writes them in the language of the conversation, in the lead’s timezone when known (“Tuesday at 2pm or Thursday morning?”), never as a numbered menu.
  • If the lead prefers another day or time, the agent re-checks availability and proposes again.
  • After 2 refusals, or as soon as the lead asks for it, the agent shares the booking link instead.
  • When the event type requires an email, the agent asks for it before confirming. Otherwise it books on the lead’s WhatsApp number.

The wording, tone and length stay those of your prompt. The booking logic only feeds the agent facts: which slots are free, what is still missing.

The meeting is created in your calendar, with the lead as attendee, only once the calendar confirms it. The lead’s meeting status then becomes Booked, independently of its qualification status: a lead can be qualified without a meeting, or booked and still in conversation.

Meeting status Meaning
Not booked No slot has been offered yet.
Offered Slots were proposed, the lead has not picked one.
Booked The meeting exists in your calendar.
Held You marked the meeting as held.
Cancelled The lead cancelled it in the conversation, or you marked it cancelled.
No-show You marked the lead as absent.
Expired The proposed slots passed without an answer.

Once a meeting is booked, the agent stops proposing slots: it answers the lead normally and never repeats the confirmation.

From the conversation, the lead can do both:

  • to cancel, the agent asks for an explicit confirmation first; nothing is cancelled until the lead confirms;
  • to reschedule, the agent proposes new slots; the original meeting stays in your calendar until the new one is confirmed.

From the dashboard, you can mark a booked lead as Held, No-show or Cancelled on its record. This updates your CRM only; it does not touch the calendar. Cancel and reschedule from your calendar tool when you need to change the event itself.

  • In Leads, the Meetings booked view lists every lead with a meeting. Add the Meeting column or filter on it to see the status. The lead record shows the date and a Reply in Conversations link.
  • In Analytics, the funnel shows a Booked step as soon as booking is enabled on a campaign.
  • Through the API, GET /bookings returns every booking with its slot, attendee and the cancel and reschedule links.

No email or WhatsApp message is sent to you when a meeting is booked; your calendar tool’s own notifications apply.

When booking is enabled on the campaign, each behavior variant gets an AI appointment booking switch in the prompt editor. Turn it off on one variant to compare “books in the chat” against “qualifies only”: when it is off, make sure that variant’s prompt does not promise to schedule a call. See A/B variants.