Appointments
Under Appointments you set up your assistant to book appointments itself: it checks availability, offers the caller a few times, books the appointment and sends a confirmation. This article walks through creating a service, connecting your calendar, assigning it to an assistant, the public booking page and reminders.
How it works
A service describes what can be booked (for example "Boiler service, 60 minutes, at the customer's home") and when. You assign one or more services to an assistant; that assistant can then book them during a conversation by phone, SMS, WhatsApp or webchat. You see all appointments under Appointments → Schedule.
The Services tab and the Connect a calendar button are for editors and admins. A viewer only sees Schedule and cannot change anything there.
Create a service
- Go to Appointments → Services and click Add service.
- In the side panel, fill in the title, description, location and duration. You can also choose a calendar here, and edit and copy the Booking link. Click Save; the service then opens.
- Under Availability, choose whether the service follows your opening hours or has its own hours.
- Under Details to collect, decide which details the assistant asks the caller for (phone number, custom fields).
- Under Confirmations & reminders, set the confirmations and reminders.
The service page has the cards Service, Booking rules (buffer, notice, booking window, time zone, rescheduling and cancelling, booking link), Availability, Details to collect, Confirmations & reminders and Calendar sync. Changes save automatically.
| Setting | Meaning | Default |
|---|---|---|
| Title | The name of the service as the assistant says it, e.g. "Boiler service" | — |
| Description | Short explanation on the booking page. The assistant only gets the title, the duration and the location of the service. | — |
| Duration (minutes) | How long an appointment takes (5–480) | 30 |
| Location | At our location, Online (video call), By phone, At the customer's address or No location (see below) | At our location |
| Buffer between appointments (min) | Minutes kept free before and after other busy time, for example for travel time (0–120) | 15 |
| Minimum notice (hours) | How close to the time a booking may still be made, e.g. 24 (0–720) | 12 |
| Booking window (days) | How far ahead bookings may be made, e.g. 30 (1–365) | 30 |
| Time zone | The time zone of the availability. With Same as opening hours this is your business's time zone. | Your business's time zone |
| Availability | Same as opening hours: the service follows your business's opening hours and time zone (Settings → Business). If those are off, office hours apply (Monday to Friday 08:00–17:30). Own hours: one or more time blocks per weekday, apart from the opening hours, e.g. Monday to Friday 08:00–12:00 and 13:00–16:30. | Same as opening hours |
| Phone number | Do not ask, Optional or Required: whether the assistant and the booking page ask for a phone number. On a phone call the caller's number is already known. | Required |
| Custom fields | Extra questions with a label, a field type and the choices required, ask on the phone and Shared. With ask on the phone the assistant asks the question on every channel; without it the field appears only on the booking page. A field marked Shared also goes on every new service you create after that. | None |
| Email confirmation, SMS confirmation | A message to the customer after booking, rescheduling or cancelling. The email only goes out if the customer gave an email address. An SMS does not go to a landline and needs an SMS-capable number on your business or a sender name; see Connect a phone number and Email and SMS. The appointment stands even without a message. | Both on |
| Custom confirmation text | Replaces the text of the confirmation email (up to 1,000 characters). The SMS does not change. | — |
| Reminders (hours before) | One or more moments before the appointment, in hours, comma separated, e.g. 24, 2 (up to 10, each 1–720) | 24 |
| Customers may reschedule, Customers may cancel | The customer gets a personal manage link in the confirmation to reschedule or cancel themselves. With both off there is no link. | Both on |
| Calendar sync | Connection with Google Calendar or Microsoft 365 (see below) | No calendar |
Buffers and travel time
Do you work on-site? Set a buffer of, say, 30 minutes. It applies before and after any busy time, so two appointments never follow each other back to back. Busy time is every appointment of your business, also of another service, and whatever is busy in a connected calendar. The assistant takes it into account automatically when offering times.
The times offered go in steps of the duration, from the start of each time block. The buffer does not shift those steps: a time too close to busy time drops out. A 60-minute service with a block from 09:00 therefore offers 09:00, 10:00 and 11:00. If 09:00 is booked and there is a buffer, 11:00 is the next time.
Location types
Every service has a location type, chosen when you create it and editable afterwards:
| Type | What happens |
|---|---|
| At our location | The address is included in confirmations and reminders. If you leave it empty, we use the address from Settings → Business, when Share this address with customers is on there. Otherwise it only says At our location. |
| Online (video call) | With a connected calendar, a Google Meet or Teams link is created for every appointment and sent to the customer in the confirmation; the link is also shown in the appointment's details. That link takes priority over a fixed link you pasted. Without a calendar you can paste a fixed meeting link. The public booking page never shows the link: the customer only gets it in the confirmation. |
| By phone | You call the customer at the agreed time. The confirmation only says By phone. |
| At the customer's address | The assistant asks for the full address and records it in the Address field of the appointment. Add that field with Add address field, on the Details to collect card. |
| No location | Nothing about a location is mentioned. |
Connect a calendar
With a connected calendar, busy periods count as unavailable, and booked appointments appear straight in your calendar. It works with Google Calendar and Microsoft 365. You sign in to Google or Microsoft; there are no keys or calendar IDs to copy.
- Click Connect a calendar at the top of Appointments, on the service under Calendar sync (while no account is chosen there), or under Settings → Connections at Available, and choose Google Calendar or Microsoft 365.
- Sign in and give permission. Give every permission asked for, otherwise nothing is saved.
- Open the service and, under Calendar sync, choose the Account and the Calendar to book in. If you connected from the service, the account is already there. Your main calendar is selected by default. You only see calendars this account can write to.
- If you like, choose other calendars under Also check for busy times (up to 10). Calendars you can only read are listed there too. A time is offered only when every chosen calendar is free.
From then on, existing events in those calendars block the time slots, and every appointment from a conversation or the booking page becomes a calendar event, with the names of the service and the customer, the phone number, the email address and the answers to the custom fields. A Meet or Teams link we create is attached to the event; a fixed link you pasted only goes in the confirmation, not in the calendar event. When the appointment is rescheduled or cancelled, the calendar event changes with it. The customer is not invited to the calendar event; they get the confirmation from us.
A connection belongs to the business, so you can use it at every service. Under Settings → Connections you see which account is connected and which services use it. That is also where you choose Reconnect or Delete. You can only delete a connection when no service uses it any more.
Has access stopped working? That happens when someone withdraws the permission, for example. You then see a notice on Overview → Today under Waiting for you, on the service and under Settings → Connections, and we email your notification address. The assistant keeps booking but no longer sees the busy times in your calendar and no longer puts new appointments in your calendar, so double bookings are possible. Choose Reconnect and sign in with the same account: the services stay connected. If you sign in with another account, you get a new connection. A service you reconnected from switches to it by itself; choose it yourself at every other service.
For an online location, Google creates a Meet link and Microsoft a Teams link. Teams links only work with a work account; with a personal Microsoft account we create no meeting link and the confirmation contains your fixed link, if you pasted one.
Assign to an assistant
- Open the assistant, go to the Tasks tab and turn on Book appointments.
- Under Booking provider, choose Built-in calendar, and under Services tick the services this assistant may book, up to ten. Each change is saved right away. As long as no service is ticked, a warning shows under Book appointments: without a service the assistant can't book appointments. If you don't have any services yet, the warning links to Appointments → Services.
- Using Cal.com? Choose Cal.com instead, fill in the Cal.com event type id and, under Cal.com API key, choose a stored key (added under Settings → Connections), or paste a new key and choose Store as key.
- Using eTermin? Choose eTermin and fill in eTermin service id and eTermin API key, and if needed the eTermin base URL. If you leave that empty, we use
https://www.etermin.net. - Test it with Try it out on the assistant. Bookings are only simulated there, unless you turn on Perform actions for real.
The assistant then does the following: it checks availability, offers up to three time slots, asks for the required details and books the appointment. It also asks for an email address for the confirmation; if the customer has none, it books without one. With the Built-in calendar it can also reschedule or cancel an existing appointment, when the phone number in the conversation matches the one on the appointment and Customers may reschedule or Customers may cancel is on. When that is off, it says plainly that it can't move or cancel that appointment itself, and puts in a request for one of your colleagues.
If you ticked several services, the assistant knows them all, with their duration and location. When it isn't clear which service the customer needs, it asks first, and it asks for the extra fields of the chosen service. For a move or cancellation the settings of that appointment's own service apply. It only finds, moves and cancels appointments of its own services; an appointment of another service it leaves to one of your colleagues. If you delete a service, the assistant no longer books it; its other services keep working.
When a customer wants to move or cancel an appointment, the assistant looks up their upcoming appointments. In the webchat the customer first proves the phone number or the email address the appointment was made with, with a code; on a call the number they call from is enough to find them, and moving or cancelling one may need a code to that number first (see Caller protection). If the customer has several appointments, the assistant names them with day, time and service and asks which one, unless the customer already said so earlier in the conversation. Then it confirms that appointment straight away, for example: "I can see your appointment on Monday 9 November at 10:00 (Repair visit). Which day would you like to move it to?" Once the appointment is moved or cancelled, it says so once.
When the assistant can't make the appointment itself, there are two situations, on calls and in chats alike:
- Book appointments is off, or no (existing) service is chosen. The assistant says plainly that it can't make or change appointments itself, and that it can put in a request so one of your colleagues contacts the customer about it. It can't see your calendar, so it doesn't push for an exact time and never suggests one: it asks which day suits the customer best, and morning or afternoon. A time the customer names itself, it notes as their preference. For a move or cancellation it asks which appointment the customer has now (the day and roughly the time), so your colleague can find it. It only asks what the request needs: no existing appointment for a new one, and no preferred day for a cancellation. Appointments → Schedule then shows a notice that names the assistant, with a link to its Tasks tab where you turn on Book appointments. With several assistants, the notice appears when none of them books in this schedule, with a link for each. If an assistant books in Cal.com or eTermin, the notice says those appointments are not in this schedule.
- The calendar itself fails, for example because a connected calendar can't be reached. The assistant then says it's sorry it can't look in the calendar right now, makes a note for one of your colleagues and asks for the day and time the customer would like.
In a chat it asks for everything that is still missing in one message, in the webchat also a phone number or email address; on a call it asks one thing at a time. If a time was just taken or a detail is missing, it simply offers another time or asks for it. With Save requests on, you'll find the request under Inbox → Requests. Without it, a chat request becomes a callback request in the Inbox, and on a call the assistant offers a transfer or voicemail. It never says an appointment is booked, moved or cancelled when that didn't really happen.
Cal.com and eTermin also work on chat channels. The booking then lives in that system and not under Appointments → Schedule, and the settings of a service do not apply. With Cal.com an email address is required and the assistant can only book, not reschedule or cancel. When a customer asks for that, it says plainly that it can't do it itself and puts in a request, as above under Book appointments is off. With eTermin it can also reschedule and cancel, but it cannot look up an existing booking: it needs the booking reference. With Ask for a code before an appointment is looked up, moved or cancelled on, it first reads the booking: one made with another number than the customer's proven number is only changed after a code to the email address on that booking (see Caller protection).
Prompt tip: on the Instructions tab, under Conversation flow, write something like "Offer at most three times and ask which suits best. Repeat the date and time before booking." That keeps the conversation manageable for the caller and avoids misunderstandings.
Public booking page
Every service has a public booking page where customers pick a time themselves:
https://<dashboard-domain>/en/book/<business-slug>/<service-slug>For the Dutch version, replace /en/ with /nl/; for the Spanish version, with /es/. The business part of the link is fixed. We make the service slug from the service title when you create it; after that it no longer follows the title. You change it with Edit at Booking link, on the Booking rules card. The old link then stops working.
On the page, name and email address are always required. The phone number and custom fields follow the settings of the service. Booking through the page takes a subscription; manage links in existing confirmations keep working without one.
To protect your calendar and your customers' inboxes, the page has a few limits. One network can look up free times 240 times an hour, and one lookup covers at most 14 days, never past the booking window of the service. Booking, moving and cancelling each send an email, so at most 6 an hour go to one address or about one appointment, and 60 an hour from one network. Past that the visitor sees a message to wait and try again.
Put the link on your website or in your email signature. The assistant does not send the link itself. To text it after a conversation, set up an SMS action with the booking link.
Changing a phone number
If a customer wants to change the number on an appointment, the assistant handles it in the chat, by SMS, WhatsApp or webchat. This only works with the built-in scheduling, not with Cal.com or eTermin. The customer proves the current number and then the new one with a six-digit code:
- Mobile number: the customer gets the code by SMS.
- Fixed line: your business number calls and a voice reads out the code twice. A voicemail, or anything that can't clearly be told apart from one, gets no code; the customer can try again. This needs a number that may call out.
Premium and toll-free numbers, and numbers outside the countries where you can buy numbers, can't be verified. The assistant refers that customer to a colleague.
Each number gets at most three codes per 24 hours, and a code is valid for ten minutes. After that, upcoming appointments and the contact are updated, and you get a notification. If a contact with the new number already exists, the old contact loses its number and you merge the two yourself. US numbers always get a call, because the number doesn't show whether it is a mobile. Past conversations and requests keep the old number. This can't be done during a phone call; the assistant then points to the chat on your website (when it is on) or a colleague. If the customer can't do this, for example because the codes have run out, you can change the number yourself on the appointment under Appointments: type the whole new number and leave the field. Check first that it is right. Removing a number has its own button, unless the service requires one; the customer then gets no more SMS reminders.
Anyone can type someone else's number when booking, so one number gets at most three confirmations by SMS per 24 hours from your business, apart from the codes, and at most ten reminders and cancellations by the customer. A cancellation by your team always goes out. If the customer gave an email address and the email confirmation is on, the email still goes out.
Reminders
Reminders are sent automatically. You set the moments per service, relative to the appointment (for example 24 hours and 2 hours before). They go through the same channels as the confirmations, so through whatever is on at Email confirmation and SMS confirmation, in your business's language. The email contains the date, time and location and, if you allow it, the manage link to reschedule or cancel. The SMS contains the service, the date, the location and the manage link, but not the time. If a moment has already passed by more than an hour and a half when the booking is made, that reminder no longer goes out. After an appointment is rescheduled, the moments count again.
Where to see appointments
- Appointments → Schedule lists the upcoming appointments. Earlier shows the ones that have passed, newest first. Load more shows older ones.
- Click an appointment to open its details: the answers to the booking questions, links to the contact and the conversation, and the Meet or Teams link, if one was created. Here you mark it Completed or No-show, or cancel it with Cancel; the customer then gets a message. A viewer does not see these buttons. You can share the link to this view with a team member.
- When the appointment was booked, moved or cancelled in a conversation, the phone number shows how the customer verified that number in the conversation, for example Verified by caller ID when they called from that number, or Not verified. On a call the assistant looks up the appointments by the number the customer calls from, and for a new appointment asks whether it may put that number on it. An appointment from the booking page or the dashboard gets no label. See Verified or not verified.
- In the Inbox, a conversation in which an appointment was booked shows an Open appointment link (only with the Built-in calendar); the conversation outcome is then Appointment booked.
- Through the API you fetch appointments with
GET /v1/appointments; see API.