Skip to content
MotherBot
Core Features

Appointments

One calendar for bookings taken in chat, by your team, in the phone app, or through your own software.

Overview

A customer picks a time in a WhatsApp conversation and it is booked — against your real opening hours, your real capacity, and whatever is already in the diary. The same calendar is what your team sees under Customers → Appointments, what an agent works from inside Live Chat, what the phone app shows, and what your own systems read through the API.

Nothing has to be set up beyond your hours. Services and staff are optional layers you add when your business needs them.

Tip

Running a restaurant?Table reservations are built on this page’s calendar, with turn times, kitchen pacing, a waiting list, deposits and your menu on top. See Table Booking.

Switching it on

1

Open Appointments → Settings

Turn on Let customers book. With it off, your team can still book and manage on a customer’s behalf — useful while you set the rest up.
2

Set your opening hours

Each day can have more than one session — a morning OPD and an evening one, or a lunch closing. Name them (“Morning”, “Evening”) and customers see the name when they pick.
3

Decide the shape of a slot

Default length, how often a slot starts, the gap before and after, and how many bookings one slot may hold. A one-at-a-time consultation keeps that at 1; an OPD that sees five patients in the same fifteen minutes sets 5.
4

Add a Book Appointment step to a chatbot

In the chatbot builder, use API Question steps for the pickers (service, staff, day, time) and a Book Appointment step to save it. The URLs to use are listed in the step itself — the bot answers them from your own calendar, so there is no key to configure.

Services

A service is a thing a customer can book, with its own length, gap afterwards, price, seats and location: a 20-minute consultation, a 90-minute treatment, a table for six, a class of twenty.
  • Length and gap. The gap is the cleaning, travel or note-taking time that must stay free after each one.
  • Seats per slot. For anything shared — a class, a group session. Each customer’s booking takes one seat, or more if they bring people.
  • Largest booking. The most people one customer may bring in a single booking.
  • Who delivers it. Tick the staff or rooms that can take it; leave it empty for anyone.
  • Needs approval. Per service, or follow the setting for everything.

With no services at all, every booking is one appointment of your default length.

Staff, rooms and resources

Who — or what — the booking is with: a doctor, a stylist, a trainer, a room, a table, a service bay. Each keeps its own calendar, so two of them can both take 10:00.
  • Their own hours. A stylist who works Saturdays in a salon open all week keeps their own working hours; leave it off to follow the business’s.
  • Time off. Leave, holidays, maintenance — whole days, and no bookings are offered on them.
  • Bookings at once. Usually one. A room that seats several, or a trainer who takes a group, can hold more.
  • Linked to a team member. Lets that person filter the list down to their own bookings, on the web and in the phone app.
  • Their own email. They are told about their own bookings, as well as anyone on your alert list.

With no resources, the business keeps one shared calendar and “Bookings per slot” is its capacity.

What customers can do in chat

Step modeWhat it does
BookTakes the slot, replacing or refusing a repeat booking as you choose
RescheduleMoves the booking they already have; the reference stays the same
CancelCancels it and frees the slot
Confirm attendanceRecords their “yes, I'll be there” against the booking
Find next bookingReads their upcoming booking into the conversation
Booking historyA ready-to-send list of what they've booked before

You decide how close to the appointment a customer may still cancel or move it, how many times they may move one, and how many upcoming bookings a customer may hold at once. Past those limits, the bot tells them to contact you instead — your team is never blocked by the same rules.

Reminders

Up to five per booking, each a set time before it — a day before, an hour before. They go out on the channel the customer booked on.

Warning

Outside WhatsApp’s 24-hour window a reminder has to travel inside an approved template. Choose one per message in Settings. Without a template, the booking records that the reminder could not be sent, and why, rather than failing quietly.

Moving a booking re-times its reminders automatically. Cancelling stops them.

Approval, closed days and finishing up

  • Approval. New bookings can arrive as “awaiting approval”. The slot is held while they wait, so nobody else takes it, and approving one tells the customer.
  • Closed days. Holidays, with a label. Nothing is offered or bookable on them.
  • Special hours. Open differently on a one-off date — a half day before a festival.
  • Daily cap. The most bookings you will take in a day, whatever is still free.
  • Closing out. Mark each booking completed or a no-show, or have past bookings closed automatically a set number of hours after they end.

For your team

  • Appointments screen. Today’s list, a day or week calendar, filters by status, service and staff, and an export of exactly what you are looking at.
  • In Live Chat. An Appointments panel beside the conversation: see, book, move, confirm and cancel without leaving the thread.
  • On the phone. The same list and the same actions, plus “only mine” for a staff member who wants their own column.
  • Permissions. View Appointments and Manage Appointments, granted in Team. A member only ever sees bookings for customers they are allowed to see.

For your developers

The REST API books, moves, cancels and reads availability, and lists services and staff — see the API Reference. Send an Idempotency-Key header and a retry can never book twice.

These webhooks fire (and are available as workflow triggers): appointment.booked, appointment.confirmed, appointment.rescheduled, appointment.cancelled, appointment.completed, appointment.no_show and appointment.reminder_sent.