Appointments
Let guests book time with you on a public page, Calendly-style. You set the hours you are open, they pick an open slot, and everyone gets a confirmation.
How booking works
Appointment booking lets guests reserve a time with you on a public page. You define appointment types (for example a 30 minute intro call), and guests pick an open slot and book it.
- You create one or more appointment types and set the hours you take bookings.
- A guest opens your booking page, picks a day and time, and enters their details.
- Both of you are emailed. The guest gets a calendar invite, a link to manage the booking, and a reminder before it starts.
Every booking is created as an unlisted event, so it never shows up on your public schedule, your iCal feed, your RSS feed, or your event graphics. It does block the time against further bookings, it syncs to your own connected calendars, and it appears on your Sales page.
Appointment booking is available on every plan. What the plan controls is how many appointment types you can offer at once, not what a type can do: the single Free type has weekly hours, date overrides, buffers, approval and payment just like any other.
| Plan | Appointment types |
|---|---|
| Free | 1 |
| Pro | Unlimited |
| Enterprise | Unlimited |
| Selfhosted | Unlimited |
If a Pro plan lapses, nothing is deleted. Every type you built is kept, the oldest bookable one stays bookable, and the rest light up again when you upgrade. The Appointments tab names the type that is currently live so a booking link is never mysteriously missing.
Appointment types
- Open your schedule in the admin panel and go to the Appointments tab.
- Choose New appointment type.
- Fill in the Details at the top, then work down the editor: Availability, Scheduling rules, Location, Price, Booking form.
- Leave Active on at the bottom and choose Save.
The rest of this page follows those editor sections in order. The Details section itself holds three fields:
- Name - what guests see in the list, for example "30 minute intro call". A new type starts out named "30 minute meeting".
- Description - optional detail shown under the name on the booking page.
- Duration - how long the appointment runs. Tap one of the presets (15, 30, 45, 60, 90 or 120 minutes) or type any value from 5 minutes to 24 hours in the box beside them.
The types list
Back on the Appointments tab, each type shows its duration, its price, whether it requires confirmation, and how many bookings it has taken. The buttons on the row are:
| Action | What it does |
|---|---|
| Active | A switch that turns the type on or off for guests. Turning it off stops new bookings and hides the type from your booking page. Bookings already made are unaffected. |
| Copy link | Copies that type's own booking address, so you can link straight to it. Only shown while the type is bookable. |
| Edit | Reopens the type in the editor. |
| Clone | Makes a copy named "... (Copy)" and opens it in the editor, switched off, so you rename it before anyone can book it. A clone uses one of your plan's appointment types. |
| Delete | Stops guests booking the type. Bookings already made are kept, and so is their history on the Sales page. |
Create as many types as your plan allows. A free intro call and a paid consultation can sit side by side with different hours, prices, and rules.
Weekly hours
Weekly hours sits at the top of the editor's Availability section. Tick the days you take bookings and set the hours for each one. A new type starts on Monday to Friday, 09:00 to 17:00.
- A day can hold up to four ranges, so mornings and late afternoons can be open while the middle of the day is not.
- Ranges cannot overlap, and each one has to end after it starts. Start and end times are offered in 15 minute steps, labelled in your schedule's 12 or 24 hour format.
- Copy to all selected days pushes one day's ranges onto every other ticked day, which is much faster than setting a week a dropdown at a time.
Below the hours, Start times every controls how often a slot is offered inside those hours: 5, 10, 15, 20, 30 or 60 minutes. Leave it on Same as the duration and slots line up back to back, so a 30 minute call is offered at 9:00, 9:30, 10:00. Set it to 15 instead and the same call can also start at 9:15 or 9:45, which fills a day more densely at the cost of leaving odd gaps behind.
Hours are in your schedule's timezone. Guests always see open times converted to their own timezone, with your timezone shown alongside so nobody has to do the maths.
If your schedule has no timezone set, slots are worked out in the application's default timezone and the Appointments tab warns you. Set it under Edit Schedule, Details before you share your booking page.
What else blocks a slot
Open times also respect what is already on your schedule. Anything that overlaps a slot removes it:
- Ordinary events on your schedule, including recurring ones, and events synced in from Google Calendar, Outlook or CalDAV.
- Bookings for your other appointment types, plus their buffers.
- Requests still waiting on your approval. A pending request holds its time until you accept or decline it.
An event with no duration set blocks two hours, which errs on the side of not double-booking you. An all-day event with no start time does not block any slot, so use a timed event when you want a slot closed.
If a type has no weekly hours at all, the Appointments tab flags it: guests would reach the booking page and find no times to pick.
Date overrides
Weekly hours repeat every week, so use a date override when one particular day is different. Date overrides is the last block in the editor's Availability section.
- Choose Add date and pick the date.
- Leave it marked Unavailable to close the date completely, or untick that and set the hours you are open just for that date.
- Save the type. Removing the row later puts that date back on its normal weekly hours.
An override replaces the weekly hours for that date rather than adding to them, and the same four-range, no-overlap rule applies. Public holidays, a day off, a morning-only Friday before a long weekend, and a one-off late evening are all overrides.
Each type keeps its own overrides, so closing a date for one type does not close it for the others. If you take a whole week off, add the override to every type you have active, or turn the types off instead.
Past overrides stay listed so you can tidy them up, and they have no effect on open times.
Scheduling rules
The editor's Scheduling rules section decides how close to an appointment, and how far ahead, a guest may book.
| Setting | What it does | Default |
|---|---|---|
| Buffer before (minutes) | Keeps the time immediately before each appointment free, so bookings never touch back to back. | 0 |
| Buffer after (minutes) | The same padding after each appointment. Both buffers block the neighbouring slots on every type, not just this one. | 0 |
| Minimum notice (hours) | How far ahead a guest has to book. Set 12, for example, and nobody can grab a slot this evening. The booking page tells guests the rule up front. | 0 |
| Booking window (days) | How many days into the future guests can book, up to a maximum of 730. | 60 |
Minimum notice and the booking window are limits on guests. When you move a booking yourself, your own picker ignores both. See Rescheduling.
Where you meet
The Location section says how the appointment happens, and only the matching field is shown:
- In person - enter the address guests should come to.
- Online - enter the meeting link. It is attached to the booking as the event link, so the guest gets it with their confirmation. The booking page tells them the joining link arrives after they book.
- Phone - enter the number to call. Leave it blank and the booking shows the guest's own number instead, which is the right way round when you are the one calling them.
Whichever you choose travels with the booking: it shows on the guest's booking page, in the confirmation email, and in the calendar invite.
What you ask guests
Every booking collects a name and email address, which is where the confirmation goes. The editor's Booking form section adds two options on top of that:
- Ask for a phone number - adds an optional phone field.
- Require a phone number - makes that field mandatory. It only appears once you are asking for a number at all, and only counts while you are.
Guests can also leave notes with anything that helps you prepare. Notes are saved on the booking and shown on its row in the Bookings list, so they are there when you need them. If you want structured questions on your ticket checkout instead, see Custom Fields.
Payments
Leave the Price at zero for a free type. Enter an amount and the currency and payment method appear: paid types take payment by cash, Stripe, or a payment link. A currency is required once there is a price.
| Method | What the guest does | How long the slot is held |
|---|---|---|
| Free | Books and is confirmed straight away. | Until the appointment, or until it is cancelled |
| Cash | Books and is confirmed straight away, with the balance due when you meet. You mark the sale paid on the Sales page. | Until the appointment, or until it is cancelled |
| Stripe | Goes to Stripe Checkout. The booking confirms when the payment clears. | 1 hour, then the slot is released |
| Payment link | Leaves for your own payment page, and gets an email with a "complete your payment" note and their manage link. You mark the sale paid on the Sales page, which sends the confirmation. | 24 hours, then the slot is released and the guest is told |
Stripe payments are created directly on your own connected Stripe account with no platform fee, exactly as ticket sales are.
A paid type stays hidden from guests until a working payment method is connected, and the Appointments tab marks the type that is being held back. Connect Stripe or add a payment link under Account Settings to make the type bookable.
Cancelling a paid booking does not move any money. Refund it in Stripe or your payment provider, then mark the sale refunded on the Sales page. The cancellation email to you shows the amount and reference so you have both to hand.
Approval
Turn on Require approval before confirming in the Booking form section and bookings for that type arrive as requests. The type is labelled "Requires confirmation" on the booking page, and the guest is told nothing is booked until you confirm.
Requests appear in two places, and the Appointments tab carries a count of the bookings still waiting on you:
- The Requests tab, alongside events submitted to your schedule. Each request is a card showing the guest, the time, the amount and their notes, with Accept and Decline at the bottom. Accept all at the top of that tab clears the whole list at once, bookings included, so read it before using it.
- The Pending filter of your Bookings list, which adds a third answer: Change time, to propose a different slot instead of saying yes or no. See Rescheduling.
Accepting sends the guest their confirmation and calendar invite and syncs the booking to your connected calendars. Declining tells them they are welcome to book another time and releases the slot.
The slot stays blocked while a request is open, so you cannot double-book yourself while you decide. A request whose time has already passed can no longer be approved.
On a paid type that takes Stripe or payment link payments, accepting does not confirm on its own: the guest is confirmed once the payment goes through.
Managing bookings
Switch the Appointments tab from Appointment types to Bookings to see what has been booked, filtered by Upcoming, Pending, Past, or Cancelled. Anything waiting on your approval lives under Pending only, so it never gets buried among the settled bookings in Upcoming. There is also a search box for a guest's name or email address.
Each row already carries the whole booking: the date and time, the appointment type, the guest's name, email and phone number, their notes, the amount, and a status.
| Status | What it means |
|---|---|
| Confirmed | Paid (or free) and locked in. The guest has their calendar invite. |
| Request sent | Waiting on your approval. The slot is held in the meantime. |
| Complete your payment | Booked but not yet paid: a cash booking with the balance due, or a card or link hold still waiting to clear. |
| Cancelled | Cancelled, refunded, or an unpaid hold that expired. The slot has been released. |
| Moved | An extra tag on any booking that has been rescheduled at least once. |
A row still waiting on you leads with Decline and Accept, so it asks one clear question. Once a booking has been decided on, the row offers instead:
- Preview opens the guest's own booking page in a new tab, exactly as they see it.
- Reschedule moves a booking to another time without cancelling it. See Rescheduling.
- Cancel appointment emails the guest and releases the slot. It is not offered on a booking that has already happened.
- New bookings email you too, whether they are confirmed or waiting for your approval. The notice goes to every team member whose notification settings ask for it.
- Paid bookings appear on the Sales page, where you mark them paid or refunded and see the revenue with the rest of your sales.
Rescheduling
A booking can be moved to another time instead of being cancelled and booked again. The booking keeps its payment, its private link, and its place on your Sales page, so nothing has to be refunded and re-charged to change a time.
Either side can start it:
- The guest uses Reschedule on their private link, picks from the same times anyone else would see, and can do it right up until the appointment starts.
- You use Reschedule on the Bookings row. Your picker ignores the type's minimum notice and booking window, so you can move something to later today or up to a year out. Times that have already passed are not offered, and weekly hours, date overrides, buffers and times you are already booked all still apply, so you cannot double-book yourself.
Whoever did not start the move is emailed about it. The guest's email carries an updated calendar invite that moves the entry already in their calendar rather than adding a second one, and your own connected calendars are updated too. When you move a booking you can add a note for the guest, or choose not to email them at all.
Any move tags the Bookings row Moved, so it is still obvious later. If a guest moves a booking less than a day before its original time, the email to you says so as well.
A guest moving their own booking sends it back to your Requests tab, because you approved one time and not any time. Their old slot is released the moment they pick a new one, and the guest is told that before they commit. A move you make yourself does not need your own approval and stays confirmed.
A booking cannot be moved when:
- It has already started, or has been cancelled, refunded or expired.
- It is a Stripe or payment link booking still waiting on payment. Those holds expire on their own clock, so the guest pays first and can then move it freely.
- Its appointment type has been turned off or deleted, since a move commits a brand new slot.
- It was moved within the last three minutes. That pause is the only limit: a booking can be moved as soon as it is made, and there is no cap on how many times.
The booking page
Once a type is bookable, the Appointments tab shows Your booking page with the link to copy, share and preview. It lives at /book on your schedule, and each type has its own address underneath it, so you can link straight to one type. When only one type is bookable, /book takes guests straight to it instead of showing a list of one.
A Book a Time button also appears on your public schedule page. Its wording is editable under Customize, Custom Labels Pro - Requires the Pro plan , like your other labels.
Guests see each type with its duration and price, then move through two steps: pick a date and a time, then enter their details. Times are grouped into morning, afternoon, and evening, with a shortcut to the next available slot. Everything is shown in the guest's own timezone, detected from their browser and changeable from a picker, with your schedule's timezone alongside it. After they confirm they get:
- A confirmation email with an
.icscalendar invite attached. - A private link to manage the booking. It offers an Add to Calendar menu for Google Calendar, Outlook and a calendar file, and lets them move the booking to another time or cancel it while the appointment is still in the future.
- A reminder email about 24 hours before it starts, with the invite attached again.
If nothing on your schedule is bookable, the booking page is simply not there, and the Book a Time button does not appear.
Good to know
- Email has to work. On the hosted platform, guests get no confirmations or reminders until the schedule's email settings are configured, and the Appointments tab warns you about it.
- Reminders only go to confirmed bookings. A request still waiting on you, or a card booking still waiting on payment, does not get one.
- The same guest cannot double-book. One email address cannot hold two bookings that start at the same time on your schedule.
- Bookings do not use your ticket allowance. On the Free plan, appointment bookings never count towards the monthly paid-ticket cap, however many you take.
- Turn a type off rather than delete it. Switching it off hides it from guests and keeps everything already booked, and you can switch it back on later.
- Not the same as Availability. Availability Enterprise - Requires the Enterprise plan is a tab on talent schedules that marks whole days your team members are unavailable to be booked for events. Appointments offer specific time slots on any schedule type, on any plan.
- Plan. Appointment booking is on every plan. Free covers one appointment type; Pro and Enterprise are unlimited, as is every selfhosted deployment.
See Also
- Managing Schedules - the Appointments tab and the Requests tab in context
- Creating Schedules - set your timezone, email settings, and calendar sync
- Availability - mark whole days your team members are unavailable
- Selling Tickets - the Sales page, where paid bookings and refunds live
- Account Settings - connect Stripe so paid types can take payment