Setting Up Your Public Booking Page

Let clients book appointments directly from a shareable link without needing a login.

Overview

The public booking page gives your clients a simple way to schedule appointments on their own. You share a link like /book/your-salon-slug, and clients walk through a five-step wizard to pick a service, choose a stylist, select a date and time, enter their contact details, and receive a confirmation code.

No login is required for clients. The booking page loads your salon name, address, business hours, and logo automatically. A Cloudflare Turnstile CAPTCHA protects the form from spam. Once confirmed, the client receives an ARTIE-XXXX confirmation code they can use to manage their appointment.

Prerequisites

1

Share Your Booking Link

Your public booking page lives at /book/your-salon-slug. Replace your-salon-slug with your salon's actual slug. Share this URL on social media, in emails, or on printed materials.

What you'll see when a client opens the link: The landing page displays your salon logo, salon name, full address, phone number, email, and business hours listed by day of the week. A prominent Book Now button appears at the bottom.

Public booking landing page showing salon info and Book Now button
The public landing page showing salon details, business hours, and the Book Now button
2

Select a Service

After clicking Book Now, the client enters the booking wizard. A progress bar at the top shows four labeled steps: Service, Stylist, Date & Time, and Your Info.

The first step displays the heading "Select a Service" with the subtext "Choose the service you'd like to book." Services appear as clickable cards in a two-column grid. Each card shows the service name, description, price, and duration in minutes.

What you'll see: The selected card highlights with a blue border and light blue background. The Next button stays disabled until a service is selected. If no services are available, the message "No services available at this time." appears.

Service selection step showing service cards in a grid
The service selection step with clickable cards showing name, description, price, and duration
3

Choose a Stylist

The second step shows the heading "Choose a Stylist" with the subtext "Select your preferred stylist, or let us assign one for you." Stylists appear as cards in a three-column grid.

The first card is always No Preference with the description "We'll assign the best available stylist." Each stylist card shows a circular avatar (or a gray initial circle), the stylist's first name and last initial (e.g., "Sarah M."), years of experience, and specialty tags.

What you'll see: The selected card highlights with a blue border and light blue background. Both Back and Next buttons appear. Next stays disabled until the client makes a selection.

Stylist selection step showing No Preference and individual stylist cards
The stylist selection step with the No Preference option and individual stylist cards
Tip: The "No Preference" option helps distribute bookings evenly across your team and fills schedule gaps.
4

Pick a Date and Time

The third step shows the heading "Pick a Date & Time" with the subtext "Select your preferred appointment date and time."

A Date input appears first. The date picker enforces today as the minimum date. When the client picks a date, available time slots load automatically for that date, service, and chosen stylist.

Time slots appear in a grid of buttons showing the time in 12-hour format (e.g., "2:30 PM"). Selecting a time highlights the button in blue with white text. Changing the date resets the selected time.

What you'll see: Before a date is chosen, no time slots appear. While loading, a spinner is displayed. If no slots are available, the message "No available times for this date." appears. Next stays disabled until both a date and time are selected.

Date and time selection step with date picker and time slot grid
The date and time step showing the date picker and available time slot buttons
5

Enter Client Information and Confirm

The fourth step shows the heading "Your Information" with the subtext "Enter your contact details to complete the booking." A form appears with these fields:

FieldTypeRequired
First NameText inputYes
Last NameText inputYes
EmailEmail inputYes
PhonePhone inputYes
NotesTextarea (3 rows)No

Below the form fields, a Cloudflare Turnstile CAPTCHA widget appears. The client must complete the CAPTCHA before submitting. The Confirm Booking button stays disabled until all required fields are filled and the CAPTCHA is valid.

What you'll see: Clicking Confirm Booking shows "Booking..." on the button while the request processes. If the booking fails, a red error banner appears at the top of the wizard.

Rate limits: Public booking endpoints allow 60 read requests per 15 minutes and 10 write (booking) requests per hour per IP address.
6

Receive the Confirmation Code

On success, the wizard advances to the confirmation page. A green checkmark icon appears above the heading "Booking Confirmed!" with the subtext "Your appointment has been scheduled successfully."

The confirmation code is displayed in a gray box in large monospace font (e.g., ARTIE-7X2M). Below the code: "Save this code to manage your appointment."

An appointment summary card shows the service name, stylist (if assigned), date in full format (e.g., "Wednesday, March 18, 2026"), time range (e.g., "2:30 PM - 3:15 PM"), and status.

Booking confirmation page showing ARTIE confirmation code and appointment summary
The confirmation page with the ARTIE-XXXX code and appointment summary details

Tips & Best Practices

Tip:

Common Issues

IssueSolution
"Salon Not Found" on the landing pageThe salon slug in the URL is incorrect. Check your slug in salon settings and update the shared link.
No services appear in step 1No active services are configured. Add at least one service in the Services section.
No stylists appear in step 2No employees are active or qualified for the selected service. Assign the service to at least one employee.
"No available times for this date."The stylist may be fully booked or the salon is closed that day. Try another date or stylist.
CAPTCHA fails or does not loadThe client's browser may be blocking third-party scripts. Disable ad blockers or try a different browser.
"Booking failed" error after submittingThe time slot may have been taken by another client. Go back and choose a different time.
Confirmation code not received by emailThe code appears on-screen only. Advise clients to screenshot the confirmation page.
Rate limit error (429 status)Too many requests in a short period. Wait a few minutes. Limits: 60 reads/15 min, 10 writes/hour.
Client wants to reschedule or cancelDirect them to the booking lookup page where they can enter their confirmation code.

Related Journeys