ChatPalChatPal

Booking chatbot examples: how an AI booking assistant handles appointments

Yevhen Kurapov, co-founder · Updated Oct 19, 2026

A booking chatbot asks which service and who with, offers free times from your real calendar, takes a name and phone number, then books and confirms. Below are eight example ChatPal conversations on Google Calendar, Altegio and Calendly: a first booking, a fully booked day, prices, two locations, rescheduling, a 24-hour cancellation cutoff, a handoff and a Calendly call.

An appointment booking chatbot works through the same few steps: which service, who with, a free time from the real calendar, a name and a phone number, then the booking and a confirmation. The eight example conversations below show how ChatPal's AI booking assistant handles the everyday cases and the awkward ones, on Google Calendar, Altegio and Calendly.

We wrote them for made-up businesses, turn by turn from the booking instructions ChatPal's assistant runs on; they are not recorded chats. Square brackets show what appears under a reply: buttons, a card of free times or a booking receipt. Telegram, Instagram, WhatsApp and Messenger show the same options as their own buttons and lists.

1. A first booking with "anyone available"

A hair salon with three stylists, each on their own Google Calendar. A men's haircut is set up as 45 minutes, $40. The client writes in the website chat on a Thursday.

Customer: Hi, can I get a men's haircut on Saturday?

Assistant: Sure. Jordan, Priya and Sam all do men's cuts. Who would you like, or shall I find the nearest time with any of them?

[Card: Jordan · Priya · Sam · Anyone available]

Customer: Anyone available

Assistant: Here are the free times on Saturday. Pick one below, or type another day and time that suits you.

[Card: Available times · Men's haircut. Saturday, October 17: 10:30, 13:00, 16:15. Other days: Sun, Oct 18 · Tue, Oct 20]

Customer: Saturday, October 17 at 13:00

Assistant: What name and phone number should I book it under?

Customer: Mike Rivera, 415 555 0132

Assistant: Book a men's haircut on Saturday, October 17 at 1:00 pm for Mike Rivera, +1 415 555 0132?

[Card: Yes, book it · Change number]

Customer: Yes, book it

Assistant: You're booked, Mike: men's haircut with Sam, Saturday, October 17, 1:00-1:45 pm.

[Card: ✓ Booking confirmed · Men's haircut · Saturday, October 17, 13:00-13:45 · With Sam]

Three stylists do men's cuts, so the assistant asked who before talking about times, naming all three in the text because not every channel shows buttons. "Anyone available" searched all three calendars and gave the booking to whoever was least busy that day. The times are each stylist's bookable hours minus whatever is already in their Google Calendar, so a day off you block there is never offered.

The number came without a country code, so the assistant added the salon's own and asked once to confirm: the only "shall I book?" in the flow. The event lands in Sam's calendar, and the owner and admins get a booking alert by email or Telegram.

2. No free time on the day they asked for

A physical therapist who works alone, with one service: a 60-minute session at $95. The client asks on a Tuesday.

Customer: Do you have anything Thursday at 5 pm?

Assistant: Thursday is fully booked, I'm afraid. The closest to 5 pm is Friday at 5:00 pm, and there are other times below. Pick one, or type another day and time.

[Card: Available times · Physical therapy session. Friday, October 23: 08:00, 12:30, 17:00. Other days: Mon, Oct 26 · Tue, Oct 27]

Customer: Friday at 5 is good. Dana Kim, +1 312 555 0147

Assistant: You're booked, Dana: physical therapy session, Friday, October 23, 5:00-6:00 pm.

[Card: ✓ Booking confirmed · Physical therapy session · Friday, October 23, 17:00-18:00]

With one service and one practitioner there was nothing to ask, so the first reply already carried real times. "Nothing on Thursday, which day works for you?" is a reply its instructions rule out. Dana sent the time, her name and a number with a country code in one message, so it booked on the spot.

3. Price and duration before booking

The salon from the first example. Balayage is set up as a 180-minute service at $220.

Customer: How much is balayage and how long does it take?

Assistant: Balayage is $220 and takes 3 hours. Would you like me to book it for you here in the chat?

Customer: Does that include a toner?

Assistant: I don't have that information, I'm afraid. Shall I find you a time for balayage?

Customer: OK, next Friday then.

From there the booking runs as in the first example. What a service includes comes from your service list or your knowledge base; nothing about toner was in either, so the assistant said so rather than guess. Prices and durations come only from the services you set up, or from Altegio if that is where they live. Leave a price blank and the assistant won't estimate one: it says it doesn't have the price. On Google Calendar the price field takes US dollars, euros or hryvnias.

4. Two locations, and a stylist who doesn't do that service

A salon on Altegio with two locations, Downtown and Riverside. Staff, services and prices all come from Altegio.

Customer: Hi, I'd like highlights with Tom.

Assistant: Which location would you like, Downtown or Riverside?

[Card: Downtown · Riverside]

Customer: Downtown

Assistant: At Downtown, highlights are done by Anna and Mia; Tom doesn't do them. Would you like to book with one of them, or with whoever is free first?

[Card: Anna · Mia · Anyone available]

Customer: Anna

After Anna's free times and the name and phone step, the client, Lena Ortiz, gets:

Assistant: You're booked, Lena: highlights with Anna at Downtown, Wednesday, October 21, 2:30-5:00 pm.

[Card: ✓ Booking confirmed · Highlights · Wednesday, October 21, 14:30-17:00 · With Anna]

With more than one active branch in Altegio, the branch comes first, because services, staff and times all belong to it. Naming a stylist who doesn't offer the service gets a plain answer and who does, never a quiet switch to some other service Tom does. The confirmation names the branch.

5. Moving a booking to another day

Lena again, a few days later, in a new chat.

Customer: Can I move my highlights to another day? Wednesday doesn't work anymore.

Assistant: What phone number did you book with?

Customer: +1 646 555 0188

Assistant: Found it: highlights with Anna at Downtown on Wednesday, October 21 at 2:30 pm. Here are other days Anna has free; pick a time below, or type a day and time.

[Card: Available times · Highlights · Anna. Thursday, October 22: 11:00, 15:00. Other days: Sat, Oct 24 · Tue, Oct 27]

Customer: Tuesday the 27th at 1:30?

Assistant: Done, Lena. Your highlights with Anna at Downtown are now on Tuesday, October 27, 1:30-4:00 pm.

[Card: ✓ Booking moved · Highlights · Tuesday, October 27, 13:30-16:00 · With Anna]

The phone number is the only key, and both locations were checked without asking which. A request for another day gets other days, not three more times on Wednesday. A typed day and time counts as a choice, so the assistant checked it was free and moved the booking without asking again. The stylist stays the same. Altegio sends its usual SMS about the change, and a ChatPal reminder for the old time is replaced by one for the new time.

6. Cancelling, outside and inside a 24-hour cutoff

A dental clinic on Google Calendar. Dr. Patel's practitioner card has a Cancellation & rescheduling cutoff of 24 hours. First, a cancellation four days ahead:

Customer: Hi, I need to cancel my cleaning.

Assistant: What phone number is the booking under?

Customer: +1 512 555 0123

Assistant: I found a teeth cleaning with Dr. Patel on Monday, October 26 at 9:00 am. Shall I cancel it?

[Card: Yes, cancel · Keep it]

Customer: Yes, cancel

Assistant: Done. Your teeth cleaning with Dr. Patel on Monday, October 26 at 9:00 am is cancelled.

[Card: Booking cancelled · Teeth cleaning · Monday, October 26, 09:00-09:45 · With Dr. Patel]

Then another patient writes on Telegram on a Sunday evening about her 9:00 appointment the next morning. Telegram remembers the number she shared when she booked, so she isn't asked for it:

Customer: Can I move tomorrow's appointment to the afternoon?

Assistant: Your teeth cleaning with Dr. Patel is tomorrow at 9:00 am. Appointments can be changed in this chat only up to 24 hours before they start, so I can't move this one here. I've passed your request to the clinic team, and someone will answer you in this chat.

Inside the cutoff the assistant states the rule and leaves the booking as it is. With Hand off to a human when needed on (Configuration, Handoff & leads tab) it hands the chat to your team, as here; with it off, it suggests contacting the clinic directly. The cutoff binds only the assistant: you can still move the appointment yourself in Google Calendar, and a new booking for the next few hours is always allowed.

7. A client who wants a person

The salon again, in the website chat, with hand-off switched on.

Customer: Actually, can I talk to a real person? It's about a group booking for a bridal party.

Assistant: Our team has your message and will reply here in this chat. If you might leave the page, you can leave your phone or email in the form below.

[Card: Leave your contact · Phone or email · Send · No thanks]

No follow-up question and no promise of when someone will reply. The chat moves to the Handed off to a human view in Chats, every workspace member gets an alert by email or Telegram, and the assistant stays silent there until someone clicks Return to AI. What the client leaves in the form is saved as a lead. With hand-off off, the assistant says plainly it can't bring a person into this chat, asks what the client needs, and gives the contact details you set in Configuration.

8. A call booked through Calendly

A bookkeeping firm on a paid Calendly plan, with two event types: a 15-minute intro call and a 60-minute tax planning consultation.

Customer: Can I book a time to talk about my taxes?

Assistant: Which would you like to book?

[Card: 15-minute intro call · 15 min. Tax planning consultation · 60 min]

Customer: The intro call

Assistant: Here are the nearest free times for the intro call. Pick one below, or type another day and time.

[Card: Available times · 15-minute intro call. Wednesday, October 21: 09:00, 11:00, 15:30. Other days: Thu, Oct 22 · Fri, Oct 23]

Customer: Wednesday, October 21 at 11:00

Assistant: What name and email should I book it under?

Customer: Chris Allen, [email protected]

Assistant: You're booked, Chris: 15-minute intro call, Wednesday, October 21, 11:00-11:15 am. Calendly's confirmation email has links to change it if you need to.

[Card: ✓ Booking confirmed · 15-minute intro call · Wednesday, October 21, 11:00-11:15]

"Talk about my taxes" fits either event type, so the assistant asked which first. Calendly works by email, not phone, for booking and for cancelling or moving later, and the assistant never asks for a time zone. A phone number or required booking-form questions are asked with the name and email when the event type needs them. On Calendly's free plan the reply with the free times carries your Calendly link instead, and the client books there.

What ChatPal checks at each step

StepGoogle CalendarAltegioCalendly
ServicesThe services you add in ChatPal: name, duration, optional price and bufferYour services and prices in AltegioYour event types
Who withPractitioners you set up, each on their own calendarStaff who offer the service at that branchNot asked
Free timesEach practitioner's bookable hours minus what's already in their calendarAltegio's live scheduleYour Calendly availability for the next 30 days
ContactName and phoneName and phoneName and email
Finding a booking laterPhone numberPhone number, across every branchEmail
ChangesOptional cutoff per practitioner, 1 hour to a weekAltegio sends its own SMSCalendly sends its own emails

On all three, the assistant offers only times the calendar returned. If someone takes a time between the offer and the booking, it says so and offers fresh ones. Only one booking integration can be active per assistant, and the same flow runs in the website chat, WhatsApp, Instagram, Telegram and Facebook Messenger.

How reminders follow the booking

No reminder is sent until you add one. In the assistant's Configuration, open the Automation tab, click Add reminder under Reminders and choose Before appointment. Offset (minutes) counts back from the start time: 1440 is a day before, 120 is two hours before. A Fixed reminder sends your Message template with {{customerName}} and {{appointmentTime}} filled in ({{appointmentTime}} is the time only, so write the day in words); a Guided reminder writes the message from your instructions instead. For wording, start from these appointment reminder text templates.

The reminder goes to the chat the client booked in. It moves when the booking is moved in the chat and is removed when it's cancelled; delete a Google Calendar event yourself and its reminder is skipped. A booking made closer to its start than the offset gets no reminder from that rule: book tonight for tomorrow morning and no day-before message comes.

WhatsApp allows free-form messages only within 24 hours of the client's last message, and Instagram gives a business 24 hours to reply, so a reminder to someone who booked days ago may not arrive there. Messenger has the same 24-hour limit, so ChatPal sends no reminders on Messenger at all.

What these examples don't cover

ChatPal books in written chats only: no phone calls, Viber or SMS, and no deposits or payments. On WhatsApp, Instagram, Messenger and Telegram the client writes first. To set up the calendar, the channels and a test booking, follow how to let clients book from Instagram, WhatsApp and Telegram. For what the same assistant handles besides bookings, read AI receptionist for small business.

Questions people ask

Yes, if it is connected to the calendar your bookings live in. ChatPal books into Google Calendar, Altegio or Calendly: it reads the free times, creates the booking and confirms it in the chat. On Calendly’s free plan it shares your booking link instead, and the client finishes on Calendly’s page.

It asks the calendar during every booking. With Google Calendar, that is each practitioner’s bookable hours minus everything already in their calendar; with Altegio, Altegio’s own schedule; with Calendly, your availability for the next 30 days. It never offers a time the calendar didn’t return.

Yes. On Google Calendar and Altegio the assistant finds the booking by the phone number it was made with; on Calendly, by email. On Google Calendar you can set a cutoff per practitioner, from 1 hour to a week, and inside it the assistant explains the rule instead of making the change.

Yes, once you add a Before appointment reminder on the Automation tab of the assistant’s Configuration. It arrives in the chat the client booked in, moves when the booking is moved in the chat, and is removed when the booking is cancelled. Reminders don’t run in Zendesk or on Messenger.

No. ChatPal books only into Google Calendar, Altegio and Calendly. With another booking tool it can still answer questions about your services, prices and hours and hand clients to your team, but you make the booking yourself.

Booking is on every plan, Free included. Free has 100 replies a month; Starter is $20 for 500, Standard $50 for 1,500 and Pro $120 for 4,000, billed monthly (checked 19 October 2026). Every assistant message counts as a reply: the booking in the first example took five, so at that pace Free covers about 20 bookings a month, and your own tests count too.

Sources, checked Oct 19, 2026

Prices and features come from each company's own website on that date and may have changed since, so check with them before you buy. Other product names are their owners' trademarks, used here only to identify their products; we are not affiliated with those companies. If something is out of date, write to [email protected] and we will correct it.

Show links (2)

Try ChatPal on your own messages

Connect Instagram, WhatsApp, Messenger, Telegram or your website and see how it answers from your price list and site. The free plan needs no card.