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.
Bookings stay off your public channel
Every booking is created as an unlisted event, so it never shows up on your public channel, 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. The free plan carries one appointment type with weekly hours, a public booking page and every guest email. Pro adds more types, lets a type carry a price, and unlocks the scheduling rules: date overrides, buffers, minimum notice and the approval step.
| 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 channel 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 channel’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 channel’s timezone. Guests always see open times converted to their own timezone, with your timezone shown alongside so nobody has to do the maths.
Set your timezone first
If your channel has no timezone set, slots are worked out in the application’s default timezone and the Appointments tab warns you. Set it under Edit Channel, Details before you share your booking page.
What else blocks a slot #
Open times also respect what is already on your channel. Anything that overlaps a slot removes it:
- Ordinary events on your channel, 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.
Overrides are per appointment type
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. Those three only: PayPal, Payfast and Invoice Ninja cannot be used for appointments even when they are connected, so a channel whose only payment method is one of those needs another before a paid type can be booked. 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.
Paid types need a payment method
A paid type stays hidden from guests until a payment method it can use 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. PayPal, Payfast and Invoice Ninja do not count here, so a type can stay held back even though your Payment Methods tab shows a connected account.
Refunds #
Cancelling a paid booking does not move any money on its own. Money goes back from the Sales page: open the booking’s sale and choose Refund Ticket from its actions menu (Refund on a phone). What happens next depends on how the guest paid:
- Stripe – the money goes back through Stripe first, and only then does the sale change. Refund the whole amount and the booking is cancelled: its time is freed and the guest is emailed that the appointment was cancelled. Enter less in Refund Amount (the dialog shows what is Available to refund) and it is a partial refund: the booking stays confirmed, nobody is emailed, and the sale shows Refunded so far.
- A payment link, or cash you have marked paid – the menu says Mark as Refunded instead. It cancels the booking the same way, freeing the time and emailing the guest, but it moves no money, so return it through whatever took the payment.
Refund first, then cancel
Refund is only offered while the sale is paid. Cancel a paid booking first and the money has to go back in Stripe or your payment provider’s own dashboard; the email you get about the cancellation shows the amount and payment reference so you can find it. A refund made in Stripe’s own dashboard is not reported back, though: the booking stays confirmed and its time stays blocked. Refund from the Sales page whenever you can.
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 channel. 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, fully refunded, or an unpaid hold that expired. The slot has been released. A partial refund leaves a booking Confirmed. |
| 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, and it moves no money, so refund a paid booking first.
- 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, refund them, and see the revenue with the rest of your sales. They count on the Revenue tab of Analytics too.
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.
On a type that requires approval
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, fully refunded or expired. A partial refund does not stop a move.
- 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 channel, 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 channel 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 channel’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 channel 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, and you get no booking notices, until the channel’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 channel.
- Paid bookings follow the same rule as paid tickets. Taking payment for an appointment needs Pro, exactly as selling a priced ticket for an event does. Free bookings work on every plan.
- A booking is not a ticket. It carries no QR code and offers no Add to Google Wallet button. The confirmation email, its calendar invite and the private link are what the guest keeps.
- You can email past guests. Everyone who books counts as a ticket buyer on your channel, so a newsletter sent to the Ticket Buyers segment reaches them.
- 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 channels that marks whole days your team members are unavailable to be booked for events. Appointments offer specific time slots on any channel type, on any plan.
- Plan. Free covers one appointment type. Pro and Enterprise add more types, the ability to charge, and the scheduling rules, as does every selfhosted deployment. Nothing is deleted when a plan lapses: every type and every rule is kept exactly as configured, and they come back on upgrade.
See Also #
- Managing Channels – the Appointments tab and the Requests tab in context
- Creating Channels – 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 are marked paid and refunded
- Account Settings – connect Stripe so paid types can take payment
Adapted from the Event Schedule user guide. Upstream screenshots are included for reference. Original guide