Skip to content

Appointment scheduling — Calendly, GoHighLevel or your own system

If you connect Calendly or GoHighLevel, the AI books meetings directly inside the Instagram or WhatsApp conversation. The lead doesn’t open external pages: they see available slots, pick one and the appointment is recorded on your calendar.

Using another calendar or your own booking system? You can connect that too: the Custom tab in the same dialog lets the AI book against two endpoints of yours. It’s explained in Custom scheduling.

  • Calendly: go to Sales links in the side menu, open Schedule Automatically and, on the Calendly tab, press Connect with Calendly to authorize your account. Once connected you’ll see Connected to Calendly and Connected as followed by the email.
  • GoHighLevel: first connect the GoHighLevel integration from Settings. Then, in appointment scheduling, choose the calendar in Select Calendar.
  • In Calendly, open Select Event Type and choose the event the AI will use to book.
  • In GoHighLevel, select the corresponding calendar from Select Calendar.
  • In Calendly, write the Booking Condition.
  • In GoHighLevel, write the Scheduling Condition.

It’s a natural-language rule that tells the AI when it should offer to book. The AI will evaluate this condition on every message to decide whether to propose slots.

If you want the lead to answer a few questions before booking — budget, type of business, phone… — the AI asks them inside the conversation, one per message and in order, waiting for each answer before moving on to the next, and sends the answers along with the appointment. The lead never fills in a form.

  • Calendly: add the questions to the event type in Calendly, as you would for your booking page. ZeroChats reads them by itself, with their options and which ones are required; there is nothing else to configure. The answers show up on the appointment, just as if the lead had filled in the form.
  • GoHighLevel: in Questions before booking, tick the contact custom fields the AI must ask. The answers are saved in those contact fields (so your automations and filters see them) and summarised in the appointment description. GoHighLevel doesn’t let apps read the calendar’s form through its API, which is why you pick the fields yourself.
  • Custom: your availability endpoint declares the questions. Details in Custom scheduling.

The answers also qualify the lead: the AI takes them into account when deciding whether your booking condition is met. If the lead already answered something earlier in the chat, it doesn’t ask again.

Before activating booking in production, use Test integration / Run Test. This creates a real booking to validate that the calendar, time zone and permissions are correct. If the event has required questions, the test answers them with sample values. Remember to cancel the test event in your calendar afterwards.

  1. The AI evaluates the condition on every message.
  2. When it’s met, it presents up to 5 available slots, spread across different days for variety.
  3. It collects the lead’s full name and email, plus the answers to the questions before booking if you set them up. It doesn’t ask for a phone number unless it’s one of those questions: if the lead shares one on their own in the chat, ZeroChats still saves it on their card.
  4. After explicit confirmation from the lead, it books the appointment on your calendar. If a required answer is still missing, it doesn’t book: it asks for it first.
  5. The lead’s stage moves to Booked.

This is the most common question about this feature, and the answer depends on who makes the booking.

When the AI books inside the conversation — the flow you just read — ZeroChats is the one creating the appointment, so it knows straight away. The lead moves to Booked instantly and, if you have the notification enabled, the booking email goes out then.

Some businesses prefer not to let the AI book, and send a sales link to their booking page instead. If the reason is keeping the form’s qualification questions, that’s no longer needed: the AI can ask them in the chat (see Questions before booking).

In that case ZeroChats gets no notice from your calendar: the Calendly or GoHighLevel connection is there to read availability and create appointments, not to watch the ones created elsewhere. If the lead fills in the form on their own, that booking happens somewhere ZeroChats cannot see.

What it can see is the conversation. That is why the lead moves to Booked when the transition condition for that stage is met — by default, “When they confirm they have booked” — and that condition is evaluated after every message. In practice:

  • The lead books and says so in the chat (“I’ve taken the Tuesday slot”) → they move to Booked as soon as that message arrives.
  • The lead books and never writes again → they stay in their previous stage, because there is no new message to evaluate.
  • You want the stage and the notification immediately: let the AI book with Calendly or GoHighLevel connected.
  • You need your qualification form: set up the questions before booking and let the AI book. If you still prefer sending the link, tune the Booked condition so it recognises how your people phrase it (“says they already booked”, “confirms the appointment time”…). Ask the AI in the prompt to check whether they managed to book.
  • You don’t mind when it finds out: review the funnel now and then and manually drag over the leads you see booked in your calendar.
  • Slots are always shown in the business time zone configured in settings.
  • The AI never books without explicit confirmation from the lead.
  • One meeting per lead. As soon as the lead moves to Booked, the AI stops offering slots and can no longer book again, even if the conversation continues. This prevents a simple “thanks” from creating a second meeting on your calendar.
  • Rescheduling or cancelling isn’t done over chat. If the lead wants to move the time, handle it from your calendar or send them your provider’s reschedule link.
  • Only one provider can be active at a time: if Calendly is configured, you must remove its event before configuring GoHighLevel or your own endpoints, and vice versa.
  • Calendly and GoHighLevel work the same way from the lead’s perspective.
  • Set the correct business time zone before testing booking.
  • Ask only what you really need before the call: every question is one more message before the appointment is closed.
  • Combine the booking condition with the funnel’s Booked transition condition so the stage updates automatically when the lead confirms.
  • Use Test integration every time you change the calendar, event or time zone.