Bookings
A calendar your team drags appointments around, staff whose weekly hours decide what can be booked at all, a services catalogue, and one setting for how far the AI goes on its own when a customer asks for a time.
One booking list, six ways into it
The calendar draws it, the appointments list sorts it, staff and services decide what may go in it. Every section reads the same bookings, and a change in one shows up in the others while you watch.
Draws the day, the week, the month
One column per day, or one per specialist. Working hours and breaks are shaded from each person’s own schedule, a line marks now, and blocks take their colour from the specialist or from the status.
Lists what is coming
Upcoming, past, or a range you pick, with search, filters and every column sortable. Change the status across a selection, or take the rows out as CSV.
Holds the people and their hours
Weekly working hours with one break a day, the services each person offers, and a Google Calendar connection per specialist. Those hours are the only thing availability is worked out from.
Holds what you sell
Every service with its duration, its price, its photos and whether it is on offer today. It is the same catalogue the assistant quotes from.
Says what the customer hears
The confirmation message, the notice 24 hours before and the one 2 hours before, the language they go out in, and whether they leave through Chatfuel or your connected WhatsApp number. The bot’s time zone is set here too, and every time on every screen is read on it.
Counts what happened
Status mix, no-show and cancel rates, attended revenue per currency, utilisation per specialist and the busiest hours. Every card prints the window it counted, because the booking API aggregates nothing.
Drag it, and it is booked
Drag an appointment to another hour, drag its edge to make it longer, drag empty grid to start a new one — every one of them snaps to fifteen minutes and goes to the server. A teammate’s tab follows it live, and ⌘Z takes a move or a status change back for a minute.
It only offers a time that is free
The wizard asks the server for one service on one day and gets back the start times each specialist is genuinely open for, with what is already booked taken out. Pick “anyone” and it books the first person free at the time you chose.
The AI books as far as you let it
Five levels, from collecting what the customer wants and leaving the booking to a person, through a slot a teammate approves, to booking on its own — and one of them is never to book at all. It is one setting in AI Automations: the bot’s default rule, or a different answer for a particular source.
A window, not a page
The booking query takes a start and an end and nothing else — no page, no filter, no sort, no search — so the list grows by ninety days at a time and the header says twelve of forty rather than printing the smaller number as the answer. Every insight card names the window it counted for the same reason.
Set the hours, take the booking, resolve it
Availability comes from exactly one place — the specialists’ own weekly schedules — so the hours are where a booking workspace starts, and the wizard, the AI and the shading on the grid all read them.
Set the hours
Each specialist gets a weekly schedule with one break a day, and the list of services they offer. Somebody with no working hours cannot be booked through availability at all — though an operator can still put an appointment on them by hand, and the wizard says whose hours are missing and links to them.
Take the booking
Through the wizard — service, specialist or anyone, day, a free start time, the customer — or by dragging on empty grid, or by the AI itself within the level you gave it. All three write the same record, and every open section reconciles from it.
Resolve it
Confirm, Attended, No-show, Needs reschedule or Cancel, from the detail panel, a row menu or a digit key; a reschedule is a drag to the new hour. ⌘Z takes a move or a status change back for a minute, and a delete asks first, because nothing can bring it back. Reading needs People · View, writing a booking needs People · Edit, and staff, services, the AI settings and the time zone need AI · Edit.
Six statuses, and the one you cannot go back to
A booking is born Pending and moves on from there. Every other transition works, Canceled back to Confirmed included — but nothing returns to Pending: the API refuses that from every state, so it is never offered as a target.
| Name | What it means | Can be set | Holds the slot |
|---|---|---|---|
| Pending | Where every booking starts, before anyone has resolved it either way. | ||
| Confirmed | Agreed with the customer and expected to happen. | ||
| Attended | They came. The only status attended revenue is counted from. | ||
| No-show | They did not. This and Attended are the two numbers the no-show rate is made of. | ||
| Reschedule | Needs a new time. The block stays on the grid, drawn tentatively, until it gets one. | ||
| Canceled | Called off. The one status that gives the time back — availability offers it again and utilisation stops counting it. |
Five levels of AI autonomy
What the assistant may do by itself when a customer wants an appointment. Set in AI Automations — the Default rules, or per source — and read here beside the rest of the booking settings.
| Name | What the AI does |
|---|---|
| Collect intent | The AI collects what the customer wants; a human books it. |
| Propose, a teammate approves | The AI proposes a slot; a teammate approves before it is booked. |
| Book, a teammate reviews | The AI books; a teammate reviews it afterwards. |
| Full autonomy | The AI books on its own. |
| Don’t book | The AI answers questions but never books. |
What the settings page controls
The booking configuration the whole bot shares: what the customer is sent, in which language, through which channel, and on which clock.
| Name | What it sets |
|---|---|
| Send through | Chatfuel, or your connected WhatsApp number on a bot that has one. |
| Confirmation message | Whether a confirmation goes out when the appointment is made, and what it says. |
| Reminders | A notice 24 hours before and one 2 hours before, each with its own text. They are the only reminders the API has. |
| Language | English, Spanish, Portuguese, Indonesian or Malay. |
| AI autonomy | Shown here, changed in AI Automations, so one setting has one home. |
| Time zone | The bot’s clock. Every schedule, every free slot and every time on every screen is read on it. |
| Booking page | The hosted link, on the bots Chatfuel has given one. Shown to copy and open; it is not a page this app creates. |
What it holds
The API publishes none of these. A couple are its own — it refuses a booking longer than 24 hours — and the rest are the module’s, picked against the fact that there is no page to ask for: a window is the unit, and a window has to stop somewhere.
| Days one window may span | 366 |
| Upcoming grows by | 90 days |
| Past grows by | 30 days |
| Shortest booking | 5 minutes |
| Longest booking | 24 hours |
| Drag, resize and nudge snap to | 15 minutes |
| Free times offered every | 15 minutes |
| Breaks in a working day | 1 |
| Service title | 120 characters |
| Service description | 1,000 characters |
| Photos on a service | 10 |
| Undo | 60 seconds, one entry |
FAQs
Not from this app. A page a customer opens would have to hold a dashboard token it cannot be trusted with, so a customer-facing booking page needs a server of its own — Chatfuel runs its own experiment there, and the settings page shows that link on the bots that have one. What ships here is the operator’s version: a wizard your team books through, and an AI that books through the same one.