Adding Online Booking to a Service Business Website
For a salon, clinic, consultant, tutor or trades business, letting customers book a slot on the website can replace a lot of phone calls and back-and-forth email. This guide covers the options, calendar sync, reminders, deposits, privacy and accessibility. It is vendor-neutral, quotes no prices, and draws on the iCalendar standard, Google and Microsoft calendar documentation, UK regulators and the W3C, checked on 30 October 2026.
Three ways to add booking
- A hosted booking service. You set up a scheduling service and add its booking page to your site as a link or embedded widget. It is the quickest route, and the provider runs the reminders and calendar connections. The trade-offs: the booking pages look like the provider's product more than your site, the customer data sits with the provider, and you are limited to the features it offers.
- A plugin for your CMS. If your site runs on WordPress or a similar system, a booking plugin keeps the booking pages inside your own site and design. You take on updates, security and the reliability of reminder emails.
- A custom booking system. Built for your exact rules, such as several staff, rooms or equipment, or a link to your own customer or job system. It costs more to build and maintain, and makes sense when the rules are too specific for an off-the-shelf tool.
Whichever you choose, make sure bookings and customer details can be exported if you leave.
Decide the rules first
Before comparing tools, write down how booking actually works in your business.
- Which services can be booked online, how long each takes, and who can deliver it.
- Buffer time between appointments for travel, cleaning or notes.
- How far ahead people can book, and the latest notice you accept.
- Whether bookings are confirmed instantly or need your approval.
- The cancellation and rescheduling policy, and whether a deposit is taken.
- Which time zone the business works in, if customers book from elsewhere.
That list doubles as a project brief.
Calendar sync and iCalendar
Online booking only works if the slots it offers are really free, so the booking system and your diary must stay in step. There are two main ways to connect them.
iCalendar files and feeds. RFC 5545 defines the iCalendar format, the .ics files behind "add to calendar" links, for exchanging events and free/busy information independent of any particular calendar service. Three parts of it matter for bookings:
- Each event has a
UID, a unique identifier, so a later update or cancellation can refer to the same booking rather than creating a duplicate. - A
VTIMEZONEcomponent andTZIDidentifiers say which time zone a time is in. Getting time zones wrong can put appointments at the wrong time, for example after the clocks change. - A
VALARMcomponent can attach a reminder to the event in the customer's own calendar.
A companion standard, RFC 5546 (iTIP), uses iCalendar to send invitations, updates and cancellations between different calendar systems.
A subscribed feed is the simplest sync, but it is one-way and only as fresh as the last fetch.
Calendar APIs. Two-way sync uses the calendar provider's API. Google's Calendar API offers a free/busy query that returns free/busy information for a set of calendars, and push notifications that tell an application when a calendar changes, so it does not have to keep polling. Microsoft Graph has a getSchedule call that returns free/busy availability for users and for resources such as rooms or equipment. With these, a meeting in your normal calendar blocks the slot on the website. Our guide to APIs and integrations explains how such connections work.
Whatever the method, guard against double bookings at the moment of confirmation. Two people can be looking at the same free slot; the system has to check again when the second one presses "book".
Confirmations and reminders
Every booking should produce an immediate confirmation by email, with the date, time, time zone, address or video link, and a way to reschedule or cancel. Attaching an .ics invitation lets the customer add it to their calendar in one step.
- Delivery. Confirmation and reminder emails are only useful if they arrive. If they are sent from your own domain, set up SPF, DKIM and DMARC; our email deliverability guide explains how.
- Keep reminders about the booking. In the UK, the ICO's guidance on electronic mail marketing says you must not send marketing emails or texts to individuals without specific consent, apart from a limited "soft opt-in" for existing customers who were given a clear chance to opt out. Adding offers to a reminder risks turning it into marketing. Ask for marketing consent separately, as an unticked option on the booking form; our email marketing guide covers consent.
Public booking forms also attract fake bookings; see our guide to form spam.
Deposits and cancellations
Some businesses take a deposit or full prepayment at booking. It adds a payment step and a refund process. Use your payment provider's hosted checkout or embedded payment form, so card details never touch your own server; our guide to accepting payments online explains the options and PCI DSS.
State the rules clearly before the customer pays. GOV.UK's guide to online and distance selling lists information you must give customers before they buy, including how they can cancel and when they lose the right to cancel, whether they will still need to pay reasonable costs for using a service after they cancel, and the conditions for money given as a deposit.
The statutory right to cancel has exceptions that matter for bookings. Regulation 28 of the Consumer Contracts Regulations 2013 excludes, among others, the supply of accommodation, vehicle rental, catering or services related to leisure activities where the contract provides for a specific date or period. Take advice on whether one covers your service. Put the policy in your terms and link it from the booking page; our guide to website terms and policies covers where those pages belong.
Privacy
A booking collects personal data. Ask only for what you need, and say in your privacy policy who stores it, including any booking service you use.
Some businesses collect more sensitive information without noticing. The ICO's guidance on special category data lists data concerning health among the types the UK GDPR gives extra protection. A clinic, therapist or personal trainer asking about medical conditions on a booking form is handling health data, and the ICO says special category data needs a valid condition for processing. Ask only what is necessary.
An embedded booking widget from another company may also set its own cookies on your pages. Check what it loads and cover it in your cookie banner. Our guides to privacy policy and cookie consent basics and cookie consent banners cover both.
Accessibility
Booking flows combine date pickers, time-slot grids, timers and multi-step forms. Three points from WCAG 2.2 and the W3C apply directly:
- 2.2.1 Timing Adjustable. Many systems hold a slot for a few minutes while the customer completes the form. If there is a time limit, users must be able to turn it off, adjust it, or be warned and given at least 20 seconds to extend it with a simple action, unless an exception applies.
- 3.3.7 Redundant Entry. Do not ask for the same information twice in the same process; fill it in again automatically or let the user select it.
- Keyboard and screen reader use. Every slot must work without a mouse. The W3C's date picker dialog example shows one accessible pattern, while warning that its code is not intended for production and must be tested with assistive technologies. A plain date input or a list of available days is often simpler.
Test any booking tool with a keyboard and a screen reader before you commit; our accessibility basics guide explains how.
A checklist
- Booking rules are written down: services, durations, staff, buffers, notice, approval and cancellations.
- Calendar sync is two-way where needed, time zones are explicit, and slots are rechecked at confirmation.
- Confirmations include an
.icsinvitation and a link to reschedule or cancel. - Reminder emails pass SPF, DKIM and DMARC, and contain no marketing without consent.
- Deposits use a hosted payment form, and the cancellation and deposit terms are shown before payment.
- The flow works by keyboard and screen reader, and any hold timer can be extended.
Frequently asked questions
Should I use a booking service or have booking built into my site?
A hosted service is quickest, but the data sits with the provider. A plugin keeps booking inside your own site. Custom suits rules too specific for off-the-shelf tools. Write your rules down first, then compare.
How do I stop double bookings?
Connect the booking system to the calendar you actually use, ideally two-way through the calendar's API, so other appointments block slots on the website. The system should also recheck that a slot is still free at the moment a booking is confirmed.
What is an .ics file?
It is a file in the iCalendar format defined by RFC 5545. Attached to a booking confirmation, it lets the customer add the appointment to their own calendar,
Can I put special offers in my appointment reminders?
Be careful. In the UK, the ICO says you must not send marketing emails or texts to individuals without specific consent, apart from the soft opt-in for existing customers who were given a chance to opt out. Keep reminders about the booking and ask for marketing consent separately.
Do customers have a right to cancel online bookings?
Often, but not always. UK rules give consumers a right to cancel many distance contracts, with exceptions such as accommodation, catering and leisure services booked for a specific date. Tell customers your cancellation and deposit terms before they pay, and take advice on which rules apply to you.
Want online booking that fits the way your business really works, connected to your calendar and payments? See our website development service and all our services, or email info@creahive.com.