How Salons Use AI to Rebook Clients and Fill Gaps in the Diary

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How Salons Use AI to Rebook Clients and Fill Gaps in the Diary.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How Salons Use AI to Rebook Clients and Fill Gaps in the Diary.

Salons use AI for two linked jobs: suggesting each client's next appointment at checkout, based on how often that service is really repeated, and filling empty slots by messaging the handful of clients who are due, fit the slot's length and usually book that day. Built-in rebooking tools or a spreadsheet plus ChatGPT both work.

The order matters. A salon that pre-books well has fewer gaps to fill, and gap-filling done badly (a discount blast every quiet Tuesday) teaches clients to wait for the text. Below you'll find the return-interval table that drives both jobs, a chair-side rebooking habit, a method for matching a gap to five named clients, and message wording that doesn't cheapen your prices.

Follow me on Instagram@sagnikteaches

Build a return-interval table from your own history

A return interval is the usual gap between visits for the same service. Everything else in this tutorial depends on it: the date the stylist suggests at checkout, the day a client counts as "due", and who gets a message when a slot opens.

Connect on LinkedInSagnik Bhattacharya

Stylists carry rough intervals in their heads. Use them as a first draft, then replace them with your own data:

Subscribe on YouTube@codingliquids
ServiceRough starting intervalWhat pushes it longer or shorter
Root colour / regrowth4-6 weeksGrey coverage and contrast with natural colour
Full or half head highlights8-12 weeksBalayage and lived-in styles stretch it
Short cut (crop, pixie, taper)4-6 weeksHow sharp the client likes the shape
Long or layered cut8-12 weeksWhether they're growing it out
Gloss or toner refresh6-8 weeksWashing frequency
Smoothing or keratin treatment12-16 weeksThe product used and the client's hair

To get your real figures, export visit history with three columns: a client ID, the visit date and the service. Leave names and phone numbers out; an ID is enough. Upload the file to ChatGPT or Claude and ask:

This file lists salon visits: client_id, visit_date, service.
For each service, find clients with at least 3 visits for that
service and calculate the median number of days between visits.
Also give the median per stylist if a stylist column exists.
Show a table: service, number of clients used, median gap,
and the range covering the middle half of clients.
Show your working for one client so I can check it by hand.

Ask for the median rather than the average. One client who returns after eleven months drags an average out of shape; the median ignores her. Check the worked client against your booking system before trusting the table.

An illustrative first reply shows the most common problem. The table listed "Root colour" (41 clients, median 38 days), "Roots + gloss" (9 clients, median 44 days), "Regrowth tint" (6 clients) and "Root touch-up" (4 clients). They're the same job, named four ways by different stylists over the years, and the smaller groups were too thin to trust. Merge the names first, either in the spreadsheet or by telling the assistant "treat these four services as Root colour", then rerun. After merging, root colour came out at 60 clients with a median of 39 days and a middle half of 33 to 47 days: a five-and-a-half-week norm, with a spread wide enough to prove the per-client figure matters.

Decide, too, which services have no interval at all. A bridal trial, a prom updo or a one-off colour correction shouldn't make a client "due" for the same thing six weeks later. Mark them as no-interval in the table, and use the client's regular service to decide when she's due instead.

Keep a per-client figure too. A regular who has come every seven weeks for two years is due at seven weeks, whatever the menu norm says.

Rebooking at the chair, before the client stands up

Your pre-booking rate is the share of clients who leave with their next appointment in the diary. Count it weekly: completed appointments where the client already had a future booking by the end of the day, divided by all completed appointments. It's the most useful single number for this whole job, because every pre-booked client is one fewer gap to chase later.

Split it by stylist and it starts telling you what to fix. In an illustrative week, a salon completes 212 appointments and 97 clients leave with a future booking: 46%. By stylist, though, it runs from 61% to 28%. When the manager listens at checkout, the stylist at 61% names a date and two times; the one at 28% asks "Shall we get you booked in?" and accepts "I'll text you." Same clients, same software, different sentence.

What moves it is a specific suggestion rather than an open question. "Do you want to book your next one?" invites "I'll text you." Compare:

"Your roots usually show at about five weeks, so that's the week of the 14th. I've got Thursday at 10 or Saturday at 9. Want me to pop you in? You can move it online if plans change."

Software can supply the date so the stylist doesn't have to calculate it. Phorest lists Rebooking Predictions that prompt clients when they're due back, alongside automated rebooking prompts by text and email. If your system has no prediction feature, add a "next due" note at checkout from your interval table and set a reminder to go out a week before that date to anyone who didn't pre-book.

Where AI adds something is the per-client adjustment: flagging the client whose own history says eight weeks when the menu says six, or noting that she always books Saturday mornings, so the stylist offers the right slot first time. An illustrative line the assistant might produce for the next day's checkout list: "Client 1043: root colour. Menu interval 39 days; her own median is 56 days over 9 visits, always Saturday 9 or 10am. Suggest 8 weeks, Saturday morning." Without that line, the automatic reminder goes out at five and a half weeks, she ignores it because her roots aren't showing yet, and after two or three of those she stops reading your messages at all.

Reading the diary a week ahead: three kinds of gap

Not every empty space needs a marketing message. Look at the next seven days every morning and sort gaps into three types:

Gap typeWhat it looks likeBest fix
Fragment15-40 minutes stranded between two bookingsShort services (fringe trim, toner refresh, blow-dry), or tighter online booking rules
Stranded hour60-90 minutes that no online client can fitWaitlist first, then clients due for a cut or gloss
Dead blockHalf a day empty for one stylistTargeted message to that stylist's due and overdue clients; if it recurs weekly, it's a rota question

Fragments are usually caused by booking rules, not demand. If online booking lets clients start at any 15-minute mark, a 45-minute cut at 10:15 leaves a useless 15 minutes before it. Restricting start times to the hour and half hour, or to times that sit against existing appointments, removes many fragments before they appear. Boulevard sells this as Precision Scheduling, which it describes as optimising the calendar as clients self-book; in other systems look for start-time interval settings.

A quick illustration with one stylist's morning. A colour runs 9:00 to 10:30 and the next booking starts at 12:00. With start times allowed at any 15-minute mark, an online client books a 45-minute cut at 10:45. That leaves 10:30 to 10:45 and 11:30 to 12:00 empty: 45 minutes that nobody can book. With start times limited to slots that sit against existing appointments, the same client is offered 10:30 or 11:15. She takes 10:30, and 11:15 to 12:00 stays open as one 45-minute block, long enough for another cut. Same diary, same demand, one extra sellable appointment.

Dead blocks deserve the same scrutiny before any message goes out. If one stylist's Wednesday afternoon has been empty four weeks out of the last five, messaging clients every Tuesday is treating a symptom. Moving her late start to Wednesday, or giving that afternoon to training or model nights, is usually cheaper than a weekly campaign.

Matching a gap to the right five clients

Blasting every client on the list is how gap-filling turns into spam. Instead, pick a shortlist that meets all of these:

  • Due or overdue, within 10 days either side of their return date, for a service that fits the gap's length.
  • Sees the stylist with the gap, or has been happy with others.
  • Has booked that weekday or time of day before.
  • Has agreed to receive marketing messages.
  • Has no future appointment already and hasn't had a gap message in the last 14 days.

Some salon systems can filter on most of these. If yours can't, a spreadsheet export and an AI assistant can do the ranking. Again, use client IDs rather than names:

Gap: Wednesday 2pm-3:30pm with stylist B.
Attached: clients.csv with client_id, last_visit_date, last_service,
usual_stylist, personal_interval_days, usual_weekday, usual_time,
marketing_opt_in (Y/N), next_booking_date, last_gap_message_date.
Rules: only opt_in = Y, no next_booking_date, last_gap_message_date
more than 14 days ago. Service must fit 90 minutes.
Rank the best 8 clients by how close they are to their due date,
then by whether they usually book Wednesday afternoons.
Return client_id, reason in one line, and the service to suggest.

Read the shortlist before sending anything. In an illustrative run, the assistant returned eight IDs, and two needed removing. One suggested a full head of highlights, a two-hour service, for the 90-minute gap: it had ranked her on due date and ignored the length rule, which is worth pointing out in the chat so it reruns properly. The other had a blank next_booking_date only because she'd booked by phone the day before under a duplicate client record. That's the kind of error no prompt can catch, and it's why the lookup in your booking system comes before the message, not after.

Then look the IDs up in your booking system and send the message from there. If your client records are patchy (duplicates, missing consent flags), fix that before automating anything; cleaning up customer records before you add AI shows how.

Gap-filling messages that don't teach clients to wait for a discount

Lead with the slot and the stylist, not a price cut. A client who is due anyway doesn't need 20% off; she needs to know Wednesday at 2 exists. Send to five to eight people at once, first come first served, and reply kindly to anyone who's too late.

Stylist-led:
"Hi [first name], [stylist]'s had a 2pm open up this Wednesday,
90 mins, right about when your colour's due. Want it? [link]"

Due-date led:
"Hi [first name], it's about 6 weeks since your last cut. We've a few
spaces this week: Wed 2pm, Thu 11am. Grab one: [link]"

Too late:
"Sorry [first name], that one's just gone. Want me to put you
on the list for the next opening with [stylist]?"

Keep discounts for dead blocks only, and never offer one to the same client twice running. Two house rules stop fatigue: no more than one gap message per client per fortnight, and a client who ignores three in a row drops off the gap list until her next visit. For slots opened by late cancellations, run the waitlist first; cutting salon no-shows with reminders and deposits explains how to set that up alongside your policy. Studios with class timetables face the same problem at larger scale, and running a class waitlist automatically has ideas that transfer.

A week in an illustrative four-stylist salon

Illustrative only. Say a four-stylist salon earns about $70 per chair hour and runs this routine for a week:

  • Monday, 15 minutes: the manager reviews the next seven days and finds 10 empty hours: about three hours scattered in fragments, four stranded hours, and a three-hour dead block on Wednesday afternoon. That's about $700 of chair time at stake.
  • Monday, 10 minutes: fragments go on the booking page as short services; online start times are tightened for the following week.
  • Monday and Tuesday: each stranded hour gets the waitlist first, then a shortlist of six clients. Three of the four fill.
  • Tuesday: the Wednesday dead block goes to that stylist's eight most overdue clients, no discount. Two book, covering two of the three hours.
  • Thursday: a late cancellation opens a 60-minute slot, filled from the waitlist within an hour.

Say the fragments stay mostly empty this week (the tighter start times help next week, not this one). Three stranded hours, two dead-block hours and Thursday's cancellation add up to six booked hours, about $420 recovered for roughly an hour of staff time across the week. The bigger gain shows up a month later, if the pre-booking rate climbs and there are fewer gaps to chase at all.

What your salon software already does, and where a spreadsheet fits

Before adding a tool, check what you're paying for. As of September 2026, Phorest lists Rebooking Predictions and automated rebooking prompts; Boulevard offers Precision Scheduling and an AI receptionist; Square Appointments includes a waitlist on its paid Plus and Premium plans; Fresha includes a waitlist; and Zenoti lets you build audiences by service history and visit recency. For segmenting beyond what your system offers, segmenting a small list with AI covers the method.

The spreadsheet-and-AI route fits when your software can send messages but can't calculate who's due. Export weekly, rank with a prompt like the one above, send from the booking system. Once you're doing that every day, it's worth asking your vendor whether the feature exists on a higher plan, or connecting an automation tool.

Signs your gap-filling is costing more than it earns

  • The pre-booking rate falls. Clients have learned that a text will come, so they stop booking ahead.
  • Discounted appointments creep up as a share of revenue. Track it monthly. If it climbs past about one appointment in twenty, I'd look hard at whether those discounts bought bookings you'd have had anyway.
  • The same clients get every message. Rotate the shortlist and respect the fortnight rule.
  • Stylists lose their breaks. Block breaks in the diary so the system can't offer them as gaps.
  • Opt-outs rise. One or two a month is normal; a jump after a campaign means the messages feel like marketing, not service.

Count replies by message type, too. An illustrative month's log: 46 gap messages sent, 13 bookings. The stylist-led wording filled 9 slots from 24 messages; the due-date wording filled 4 from 22. That's a small sample, but it's enough to lead with the stylist's name next month and check again, rather than guessing which message works.

Clients who are months past due are a different job from gap-filling. They need a short win-back sequence rather than a same-week slot, which is how barbers win back lapsed clients with automated messages, and the method carries straight over to a salon.

Further reads

Sources: Phorest platform pages (Rebooking Predictions, automated rebooking prompts); Boulevard homepage (Precision Scheduling, AI receptionist); Square Appointments pricing page (waitlist on paid plans); Fresha pricing page (waitlist); Zenoti marketing page (audiences by service history and visit recency). Checked September 2026.

Want your rebooking and gap-filling set up properly?

On a 1:1 call we'll pull your visit history, work out real return intervals per service, and decide whether your salon software can run gap-fill messages or needs a simple add-on.

Book a 1:1 call with me