Set up the booking widget
Turning bookings on, setting hours and slots, embedding the widget on your site and revoking the link.
Online bookings are configured at Repairs → Settings → Online Bookings. The panel is admin only — it hands out the link that lets the public put appointments in your diary, and switches the whole thing on and off.
What you can set
| Setting | What it does |
|---|---|
| On / off | Whether the booking page accepts anything at all. |
| Timezone | The zone every time is worked out in — yours, not the server's. |
| Appointment length | How many minutes one booking takes. |
| Capacity per slot | How many bookings one time slot can hold. |
| Minimum notice | How many hours ahead the next bookable slot must be. |
| How far ahead | How many days into the future customers may book. |
| Opening hours | A window per weekday — a default week, and optionally a different week for a particular store. |
| Closed dates | Specific dates nothing can be booked on. |
| Services | The list customers choose from when they say what needs doing. |
| Notification email | An address told whenever a booking arrives. |
| Confirmation email / SMS | Whether the customer gets an email confirmation, an SMS, or both. |
How the available times are worked out
Slots are cut from each day's opening window in steps of the appointment length, and a slot only appears if it fits entirely inside the window — a 45-minute appointment will not be offered at ten to close. A slot is then dropped if it:
- falls inside the minimum-notice window
- is further ahead than the booking horizon
- lands on a closed date
- already holds as many bookings as the capacity allows
The times the customer sees are re-checked when they submit, so a slot that filled up while they were typing is caught. Two customers taking the last slot at the same instant cannot both get it — the second is told to pick another time.
Putting it on your website
The panel gives you a copy-paste iframe snippet and a plain link. Use the snippet to put the booking form inside a page on your own site; use the link where an embed does not fit — a social profile, an email signature, a Google Business listing. Both carry your shop's booking link.
There is a third option that is easier to read out or text to someone: if you have claimed a public page, the same booking form is also at /at/your-shop/book. It is the same form with the same hours and slots — just a shorter address, and one that sits alongside your shop details rather than on its own. See Bookings on your page.
Regenerating mints a new booking link and the old one stops working immediately. That is how you kill a link that has leaked — and it also means anyone still serving the old snippet on their site has to paste the new one, or their form goes dead.
Confirmations
Email confirmations go out through your own mail settings, at Settings → Email / SMTP. If email is not set up, the booking is still taken — all you miss is the confirmation. SMS goes through your own Twilio account, the same one the repair status messages use, so Twilio bills you directly. See Email and SMTP and SMS provider.
Spam
A public form on the open internet gets found by bots. Four layers sit in front of it, none of which a real customer ever notices: a hidden field only a bot fills in, a signed token proving the page was actually loaded before the form was submitted, checks on what was typed, and Cloudflare Turnstile where the operator has configured keys.
Obvious spam is accepted and discarded rather than shown an error, so a bot gets no feedback about what tripped it and nothing lands in your Bookings tab.
The booking page carries a no-index instruction. It is one shop's private embed address, not a page that should turn up in search results — so send customers to it from your own site rather than expecting Google to find it.