Guide
How to Add Online Booking to Your Website in 6 Steps
How to add online booking to your website: what a booking needs, widget versus hosted page versus request form, and embed steps for WordPress, Wix and more.
By the Ifa team
If your website has a phone number and a contact form but no way to book, every new customer waits for a reply. This guide walks through how to add online booking to your website when you run a salon, a wellness studio, a grooming shop, a tutoring practice or a trades business. We cover what a booking needs, the shapes it can take, how each goes into WordPress, Squarespace, Wix and Webflow, and where the customer record ends up. We build Ifa, a business workspace, and we say plainly below what it does and does not do for booking.
1. Decide what a booking needs before you pick a tool
Start with a short list on paper, because every tool asks for these things during setup, and the answers decide which tool fits.
- Services. Each bookable service with a name a customer would recognize. “Full groom, large dog” is better than “Service B”.
- Durations. How long each service really blocks the calendar, not the time you quote. A 45-minute color that always runs to 60 minutes should be 60.
- Who can be booked. A solo consultant has one calendar. A two-chair salon has two, and a customer may want a specific stylist. Decide whether the customer chooses a person or you do.
- Buffers. Cleanup between grooms, travel between service calls, a break between lessons. Buffers are the difference between a calendar that works and one you fight.
- Working hours. Per person, per weekday, including the days that differ.
- Lead time and horizon. How close to the slot a customer may book, and how far ahead.
- What you need from the customer. Name and phone are the minimum. A groomer needs the dog’s breed and weight; a trades business needs the address and the problem. This is where a booking tool overlaps with an intake form, and we cover the difference in customer intake forms.
2. Choose the shape: embedded widget, hosted page, or request form
An embedded booking widget
A widget is a snippet of code the vendor gives you. You paste it into a page and customers pick a service and a time without leaving your site; the booking lands in the vendor’s calendar. It is the standard answer for salons, studios, groomers and tutors.
Five widely used options, checked on each vendor’s own site as of September 2026:
- Square Appointments (squareup.com) offers a free plan for a single professional and paid Plus and Premium plans priced per location. All plans include the online booking site and a website booking button; no-show fees and deposits are on the paid plans.
- Calendly (calendly.com) has a free plan with one event type and one calendar connection, and a Standard plan at a published starting price of $10 per seat per month as of September 2026. Reminders and payment collection through Stripe or PayPal are paid-plan features. It grew up around meetings, so it suits consultants and tutors better than a shop floor.
- Acuity Scheduling (acuityscheduling.com) has no free plan, only a seven-day trial. The Starter plan covers one calendar at a published starting price of $20 per month as of September 2026 (less on annual billing). Email reminders and custom client forms are on every plan; text reminders start at the Standard tier.
- Setmore (setmore.com) has a free plan for up to four users with unlimited appointments and email reminders. The Pro plan, at a published starting price of $12 per user per month (or $5 per user per month on annual billing) as of September 2026, adds SMS reminders, deposits, two-way calendar sync and removal of Setmore branding.
- SimplyBook.me (simplybook.me) has a free plan capped at 50 bookings a month, and paid plans that add booking volume, more providers, and a chosen number of “custom features” such as intake forms or deposits. The Basic plan starts at a published price of €13.90 per month as of September 2026.
A hosted booking page you link to
Every tool above also gives you a page on the vendor’s domain (yourshop.setmore.com, calendly.com/yourname). Instead of embedding, you add a “Book now” button that opens that page. It is the fastest option and needs no code. The trade-off is that the customer leaves your site, and the page carries the vendor’s design and, on free plans, the vendor’s branding.
A form that creates a request your team confirms
The third shape is not self-service booking. The customer fills in a form (service, preferred days, phone), it lands as a request, and your team confirms the time. It is the right shape when the time cannot be known before a conversation: a trades call where the job size decides the slot, or a groomer who will not book a new dog without seeing it. The button text sets the expectation: “Request an appointment” promises a reply, “Book now” promises a slot.
Ifa covers all three shapes. It can create a separate booking page for your business that you link from your site, it can take bookings in chat on a channel you have connected, and its public forms land in the workspace as a request your team confirms when the time cannot be known before a conversation. Behind every path sit the same rules: a policy per service, working hours per worker in their own time zone, availability checks and a conflict check on every booking, with reminders as a workflow you define; the appointment scheduling software page shows how the pieces fit together. What Ifa does not do is sync with Google or Outlook calendars or take a deposit at booking, and it is pre-launch today. If you keep a separate booking widget instead, step 6 shows how to keep one customer record.
| Shape | Customer gets a slot instantly | Sits on your own site | Needs code pasted | Best fit |
|---|---|---|---|---|
| Embedded widget | Yes | Yes | Yes, one snippet | Salons, studios, groomers, tutors |
| Hosted page link | Yes | No, vendor’s domain | No | Any site, quickest start |
| Request form | No, team confirms | Yes | Depends on the form tool | Trades, new-client screening, jobs that need a quote |
3. Add it to your site builder
Get the snippet or link from the booking tool, then place it on a page. Menu paths are as of September 2026.
WordPress
- Widget. In the block editor, add a Custom HTML block and paste the vendor’s embed code. Calendly, SimplyBook.me, Square Appointments and Acuity each publish a WordPress plugin that does the same job with a block or shortcode.
- Link. Add a Buttons block, label it “Book now”, and paste the hosted page URL. Put the same button in the header through Appearance → Editor on block themes.
Squarespace
- Widget. Squarespace owns Acuity, so there is a native Scheduling block: edit a page, add a block, choose Scheduling, and pick your Acuity calendar. For any other vendor, add a Code block or an Embed block and paste the snippet.
- Link. Add a Button block with the hosted URL, or set a header button under Design → Header.
Wix
- Widget. Add an Embed Code element (Add Elements → Embed Code → Embed HTML) and paste the snippet. Calendly and Setmore also list apps in the Wix App Market. Wix also has its own Wix Bookings, worth comparing before you bring in a third tool.
- Link. Add a button, and in its link settings choose Web address and paste the hosted URL.
Webflow
- Widget. Drag an Embed element from the Add panel onto the page and paste the snippet. Check your plan’s limits on custom code.
- Link. Add a Button element, set the link to an external URL, and paste the hosted page.
Whatever the builder, test on a phone before you announce it; an embed that fits a laptop can cut off the “Confirm” button on a narrow screen.
4. Set up reminders, no-show rules and deposits
The tool you chose decides what you can do here, and this is where free plans differ most.
- Reminders. Square Appointments, Setmore, SimplyBook.me and Acuity include email reminders on every plan they sell. Calendly puts reminders on paid plans. SMS reminders are most often a paid-tier feature (Setmore Pro, Acuity Standard and above). In Ifa a reminder is a workflow you define, a scheduled step that sends through a channel you have connected, as of September 2026.
- No-show and late cancellation rules. Square Appointments supports no-show fees and cancellation policies on Plus and Premium. Setmore Pro and SimplyBook.me (as a custom feature) support deposits, the practical way to cut no-shows. Calendly and Acuity can require payment at booking, which serves the same purpose for a consultant or tutor.
- Deposits and payment. All five can take payment at booking, through Square’s own processing or a connected processor such as Stripe or PayPal. Decide whether you want a partial deposit, full prepayment or card on file; the tools differ on which they offer. Ifa does not take payment at booking today; payments and invoicing are planned.
A rule that works well in a two-chair salon: a written cancellation window, a deposit for new customers and for any service over an hour, no deposit for regulars.
5. Know where the bookings and the customer record end up
When a customer books through a widget, the tool creates the appointment and a customer profile, and, if connected, a Google or Outlook calendar event. The booking tool becomes the system of record for appointments, and quietly also for customers, because it stores every name, phone and note that came in through the form.
That is fine on day one. It becomes a problem when the history is split: the booking tool has the appointments, your phone has the texts, and a spreadsheet has the notes about the dog’s temperament or the student’s exam date. None of the tools above is built to hold the rest of the relationship: quotes, consent forms, photos, follow-up tasks, reports. They hold a calendar and a contact card.
So before you switch the widget on, decide which system is the customer record. If the booking tool is enough (a solo tutor with twelve students often finds it is), keep everything there and export a CSV monthly as a backup. If you need more, read on.
6. Keep one customer record when the booking tool is separate
If you book through Ifa’s own booking page or in chat, the booking and the customer record are already in one place and this step disappears. Owners who keep a separate widget instead keep the two in step with habits rather than a live integration. This is how that works with Ifa.
- The booking tool owns the calendar; the workspace owns the customer. Appointments are created and moved in the booking tool. Everything else about the customer (intake answers, files, notes, follow-ups, lifecycle state such as “new”, “regular”, “lapsed”) lives in the workspace.
- Bring bookings across on a schedule, not in real time. Every tool above exports appointments and customers as CSV. Ifa imports CSV and XLSX exports through a preview with checks for duplicates, bad dates, empty values and unmatched columns, then an approval step, so a weekly export lands without creating a second copy of each customer. There is no live two-way sync between Ifa and a booking tool.
- Use one form for intake, not two. If the widget only captures name and phone, send new customers a workspace intake form after they book (the confirmation email is a good place for the link). The answers land on the customer’s record.
- Match on phone or email. Pick one field as the key both systems share, and make it required on the booking form. Phone works best for salons and groomers; email for tutors and consultants.
- Keep one calendar as the truth. Walk-ins, phone bookings and rebookings at the chair go into the booking tool so the widget’s availability stays true; run availability in both and the widget will double-book.
For a beauty and wellness business, that usually means a Square Appointments or Acuity widget on the site and a workspace for consultation forms and re-booking follow-ups. For a dog grooming shop, the workspace holds the pet record (breed, weight, vaccination file, temperament) that no booking form is built for. For a tutoring practice, it holds the student, the parent and the progress notes, while a Calendly or Acuity page handles lesson times.
What goes wrong and how to avoid it
- Durations are wishful. The most common complaint after switching on a widget is a calendar that looks full but keeps running late. Set real durations and buffers from day one; shortening later is easy, lengthening after customers have booked is not.
- Two calendars. The widget is live, but the front desk still writes phone bookings in the paper book, and within a week there are double bookings. Every appointment goes into the tool that feeds the widget.
- The embed breaks on phones. Test the flow on a phone through to the confirmation screen, on your live domain.
- The wrong shape for the job. A trades business with an instant-booking widget ends up with 30-minute slots for jobs that take a day. Use a request form, or offer instant booking only for a fixed-length “site visit” service.
- Customer data trapped in the tool. Export customers and appointments on a schedule from the first month, so leaving later is an import rather than a rebuild. Check that the export includes notes and form answers.
- Reminders assumed. Book a test appointment with your own number and see what actually arrives; email reminders on a free plan do not mean SMS is on.
Questions people ask
Can I add online booking to my website for free?
Yes, for a solo owner or a crew of four. Square Appointments (one professional), Setmore (up to four users), Calendly (one event type) and SimplyBook.me (50 bookings a month) have free plans as of September 2026. SMS reminders, deposits and no-show fees usually need a paid plan; Acuity has no free plan.
Should I use my site builder’s own booking tool?
On Squarespace, Acuity is the native option and the easiest to embed. On Wix, compare Wix Bookings before adding a third tool. One dashboard and one bill is the advantage; the cost is that moving your site later means moving your bookings too.
Does Ifa have a booking page I can put on my site?
Yes. Ifa can create a separate booking page you link from your site, and customers can also book in chat on a channel you have connected. Behind both sit a policy per service, working hours per worker, availability and conflict checks, with reminders as a workflow you define. What it does not do as of September 2026: calendar sync with Google or Outlook, and deposits or payment at booking, which are planned.
How do I move customers from the booking tool into one record?
Export a CSV of customers and appointments from the booking tool and import it into the workspace, matching on phone or email. Ifa previews the import with duplicate and empty-value checks before anything is created. Repeat on a schedule; there is no live sync.
Last updated September 2, 2026.