---
id: "online-booking"
lang: "en"
title: "Let customers book online"
summary: "Share one link and customers book their own appointments, straight into your treatment calendar. You choose the notice, the rooms and how far ahead they can see."
area: "Treatments & appointments"
kind: "task"
url: "https://zeropos.shop/help/online-booking"
alternate: "https://zeropos.shop/help/online-booking?lang=es"
markdown: "https://zeropos.shop/help/md/en/online-booking.md"
screens: ["/backoffice/treatments/online-booking","/book/[slug]"]
where_to_find: ["BACKOFFICE › Treatments › Online booking"]
related: ["book-an-appointment","manage-appointments","rooms-and-staff","treatment-vouchers","enable-treatments"]
updated: "2026-10-21"
---

# Let customers book online

Share one link and customers book their own appointments, straight into your treatment calendar. You choose the notice, the rooms and how far ahead they can see.

Everything is on [BACKOFFICE › Treatments › Online booking](https://app.zeropos.shop/backoffice/treatments/online-booking), and each change saves as you make it. The page only offers times that are really free: it checks the shop's opening hours, its rooms and the diary first, exactly as the calendar does.

Where to find it: BACKOFFICE › Treatments › Online booking.

## Before you start

- Treatments marked **Can be booked as an appointment**: [Turn on treatments](https://zeropos.shop/help/enable-treatments).

## Steps

### Set up your booking link

1. Open [BACKOFFICE › Treatments › Online booking](https://app.zeropos.shop/backoffice/treatments/online-booking).
2. Switch on **Accept online bookings**.
3. Tick the shops under **Which shops take bookings**. With more than one, customers pick a shop first.
4. Set **Shortest notice** in hours and **How far ahead** in days.
5. Set **Treatment rooms**: how many treatments can run at the same time, at every shop without a number of its own.
6. Optional: choose **Times offered every**, switch off **Show prices**, or write a **Welcome message**.
7. Tap **Copy** next to **Link to share**, and post the link on Instagram, a QR code or a WhatsApp reply.

### What your customer does

8. They open the link, answer **Which shop?** if asked, then **Choose a treatment**.
9. They **Pick a day** and **Pick a time** from the free ones.
10. They fill in **Your details**, with a **Voucher code (optional)** if they have one.
11. They tap **Confirm booking**.

## What happens next

- The booking lands in the calendar marked **Online**, and the shop gets an alert, in each person's own language. Choose who receives it under **Online booking** in [MANAGE › Settings › Notifications](https://app.zeropos.shop/backoffice/settings/notifications).
- It arrives with nobody assigned: pick who does it under **Assigned staff** on the appointment ([Look after appointments: find, mark done or no-show, cancel](https://zeropos.shop/help/manage-appointments)).
- A customer who left an email gets the details, with a link to cancel. To change the time they cancel and book again, and staff can cancel it in the calendar too: [Look after appointments: find, mark done or no-show, cancel](https://zeropos.shop/help/manage-appointments).
- With appointment reminders on, they are reminded before the appointment too, by email or by text, in the language they booked in: [Send appointment reminders by email or text](https://zeropos.shop/help/appointment-reminders).
- A voucher code used at booking is held for that appointment, and freed if the appointment is cancelled: [Treatment gift vouchers](https://zeropos.shop/help/treatment-vouchers).
- Nothing is paid online. The customer pays at the till when they come: [Treatments at the till: today's bookings and treatment gifts](https://zeropos.shop/help/treatments-at-the-till).

## Common questions

### Why does my booking page offer no times?

Times come from each shop's opening hours, set in the shop's form in [MANAGE › Locations](https://app.zeropos.shop/backoffice/locations) under **Opening hours**. A shop without them offers no times online; staff can still book it by hand in the calendar.

### Can each shop have its own number of rooms?

Yes: open the shop in [MANAGE › Locations](https://app.zeropos.shop/backoffice/locations) and set its **Treatment rooms**; leave it empty to use the number on this screen. Shops with a number of their own are listed next to **Overridden at**, and the calendar counts the same rooms ([Treatment rooms and who does each treatment](https://zeropos.shop/help/rooms-and-staff)).

### Which treatments does the page show?

Those marked **Can be booked as an appointment**, in the shops ticked under **Offered at** (none ticked means every shop). A treatment that can't finish before closing time isn't offered that day.

### What does “Replace link” do?

It makes a new link. The old one stops working at once, including any QR code already printed.

### A customer says no confirmation email arrived. Why?

Only customers who typed an email get one, and one address gets at most five a day from your page: past that the booking still lands, and the page tells the customer no email was sent this time. A shop without its own email provider sends through Zero POS's shared address, which allows a set number of emails a day, and booking confirmations may use a third of them so receipts always have room. Past that, bookings still land in the calendar but get no confirmation until the count starts again at midnight UTC. With your own provider that limit no longer applies: [Connect your email and set up marketing emails](https://zeropos.shop/help/set-up-email-sending).

### A customer books from abroad. Which time do they get?

Your shop's. The times on the page are your shop's clock wherever the customer's phone is, and the appointment is made for exactly the time they tap. The confirmation email, the page its **Change or cancel** button opens and your team's alert all give that same time.

## If you see this

- “**Too many attempts. Please try again shortly.**” — What to do: Customers see this after ten tries in an hour from one connection, or once the page has taken 200 bookings in a day, whoever made them: far more than a shop's customers book, so someone is booking again and again. What they booked is in the calendar; cancel what isn't real ([Look after appointments: find, mark done or no-show, cancel](https://zeropos.shop/help/manage-appointments)). The page takes bookings again within the hour, or from midnight UTC.
- “**has no opening hours set, so the booking page has no times to offer. Set them under Locations, then customers will see real slots.**” — What to do: Open that shop in [MANAGE › Locations](https://app.zeropos.shop/backoffice/locations), fill in **Opening hours** and save: the booking page offers real times straight away. Until then, take its bookings by phone in the calendar ([Book an appointment](https://zeropos.shop/help/book-an-appointment)).
- “**Booking is not available**” — What to do: Customers see this while **Accept online bookings** is off, or when they open an old link after **Replace link**. Switch it on, or send them the current link.
- “**Nothing free on this day. Try another one.**” — What to do: Every room is busy, the day is inside the **Shortest notice**, or the shop has no opening hours that weekday.

## Good to know

- **Open** shows the booking page exactly as a customer sees it.

## Related guides

- [Book an appointment](https://zeropos.shop/help/md/en/book-an-appointment.md)
- [Look after appointments: find, mark done or no-show, cancel](https://zeropos.shop/help/md/en/manage-appointments.md)
- [Treatment rooms and who does each treatment](https://zeropos.shop/help/md/en/rooms-and-staff.md)
- [Treatment gift vouchers](https://zeropos.shop/help/md/en/treatment-vouchers.md)
- [Turn on treatments](https://zeropos.shop/help/md/en/enable-treatments.md)
