Salon appointment software that stops double-booking
A diary that knows what it can physically fit: capacity comes from the room, chair or equipment a service needs, not from a count of who happens to be free.
30 days free · No card required
On this page8 sections
- What actually limits how many bookings you can take?
- Why does a multi-service visit block out the whole day?
- Why is this slot unavailable?
- What happens when the whole day comes back full?
- How do shifts, leave and skills affect availability?
- How do you handle regulars and days that are already full?
- Do online, phone and walk-in bookings land in one diary?
- Common questions
The short answer
What is salon appointment software?
Salon appointment software schedules the salon's day: it holds bookings against staff and time, works out which slots are still sellable, and refuses the ones that clash. The part salons actually need it for is capacity — knowing that two free stylists and one free treatment room means one bookable appointment, not two, before a second customer is promised a slot.
How it works
- Booking taken
- Resource, staff, hours and roster checked
- Confirmed in the diary
- Reminder sent
- Billed on arrival
What actually limits how many bookings you can take?
A service is attached to whatever actually limits it — a chair, a treatment room, a station, a piece of equipment — and every service of that type draws from one pool: the number of units the branch has switched on. A service tied to no resource draws from the branch's general seat count instead. Two stylists being free is irrelevant if the only pedicure station is taken, and the diary says so at the moment the booking is saved rather than when the customer arrives.
- Chairs, rooms, stations and equipment declared per branch, each with a quantity
- A service draws from its resource type's pool, or from the branch's seat count
- A clash is refused when the booking is saved, not flagged afterwards
- Completing an appointment frees its unit immediately for a walk-in
Why does a multi-service visit block out the whole day?
On most salon calendars, it does. Book a 30-minute drape, a 45-minute scalp treatment and a 60-minute pedicure as one visit, and a naive engine holds the bridal room, the hair station and the nail bar for all 135 minutes — so the scarcest of the three blacks out the rest of the day. Salvoro lays the services end to end and asks about each one separately: is this service's station and this service's stylist free during the stretch when this service actually happens?
- Each service holds its resource for its own stretch, not for the whole visit
- A stylist doing the first 30 minutes is not held for the other 105
- The chain's order is stored, so the plan survives a reload
- One engine draws the grid and guards the save, so the two cannot disagree
What happens when the whole day comes back full?
Which resource is needed when depends on the order the services are done in, so a booking that fits nowhere in one order can fit comfortably in another — doing the nails first can open an afternoon that hair-first could not. Rather than leaving somebody staring at a wall of “full”, Salvoro tries the other orderings of the same services and offers one that opens slots. It invents no capacity; it only finds an arrangement of what you already have.
- Tried only when the requested order returns no times at all
- Suggests a concrete reordering, with how many slots it opens
- Offered at the front desk and on the public booking page alike
- Up to four services — past that the permutations are not worth the wait
How do shifts, leave and skills affect availability?
Shifts, week-offs and leave feed straight into what can be booked. Leave and branch closures are enforced unconditionally — approved leave, a holiday or a two-hour water cut blocks every booking path, a stale browser tab and a direct API call included, because each of those is something somebody typed. The weekly shift pattern is the inferred half, so enforcing it is a per-branch switch: a salon that has not put its shifts on file should not have bookings refused on the strength of data it never entered. Skills are softer again, filtering who a customer is offered online and sorting the list at the front desk.
- Availability derived from shifts, week-offs and leave, not a separate calendar
- Partial-day closures: a lunch break, a staff meeting, an hour with no water
- Leave and branch closures always enforced; shift-pattern enforcement is per branch
- Assigned services filter the online booking page and sort the desk's list
How do you handle regulars and days that are already full?
Customers on a fixed rhythm can be booked as a series — weekly, fortnightly or monthly, up to 52 dates — instead of being rebooked by hand every time, with every date shown before anything is committed. Each occurrence goes through the same checks a single booking does, so a series cannot quietly create appointments that would have been refused one at a time. A day that is genuinely full simply stops being offered, and the refusal names what blocked it rather than failing vaguely. Nothing records who wanted the slot, though, so chasing a cancellation is still a job for whoever remembers the conversation.
- Weekly, fortnightly or monthly series, previewed date by date
- A monthly series keeps its day of the month and skips months too short for it
- Dates already taken are reported back, not silently dropped
- A refusal names its cause — the resource, the person, a closure or the roster
Do online, phone and walk-in bookings land in one diary?
An online booking, a phone booking typed in by reception, and a walk-in billed at the counter all produce the same kind of record against the same customer, and all three are checked by the same engine. That is what stops the familiar problem of the website's calendar and the front desk's calendar disagreeing about who is coming at four o'clock. Each appointment also stores which door it came through, so the split between online and in-person is a number you can read rather than an impression.
Common questions
- It tells you which of four things blocked it: the pool for that service's resource is full, the staff member you assigned is already committed, the branch is closed for that window, or that person is not rostered then. The refusal names the service that caused it and the time it would have started, so you know whether to move the time, the person or the service.
- When a visit has more than one service and no start time works, Salvoro tries the other orderings of the same services and offers one that opens slots — nails first can free an afternoon that hair-first could not. It creates no extra capacity; it only finds an order that fits the chairs, rooms and people you already have.
- On the public booking page, mostly — a customer is offered staff assigned to that service, plus anyone with no services assigned at all, who stays bookable for everything. At the front desk it is a nudge rather than a block: trained staff sort to the top of the list, but a receptionist can still book anyone, and the server will not refuse it. That is a real limit, and worth knowing before you rely on it.
- No. There is no waitlist anywhere in the product, so when a day is full nothing records who asked for it and a cancelled slot is not offered to anyone automatically. Filling the gap is a phone call somebody at the salon makes from their own notes.
- Yes — weekly, fortnightly or monthly, up to 52 dates in a series, with every date shown before anything is committed. Each occurrence is put through the same checks a single booking gets, and any date already taken is reported back by name rather than quietly skipped.
- Yes. A lunch break, a staff meeting or an hour with no water can be blocked for part of a day rather than the whole of it, and the block applies to every booking path — a stale browser tab and a direct API call included, not only the visible grid.
See it with your own salon’s data
30 days free, no card required, and a guided setup that takes four steps.

