She wants Saturday, and you are holding a bowl of colour.
OpusDone answers the Saturday colour question while both your hands are full, quoting only the prices you approved and offering times from your real calendar. She messages mid-treatment, and the reply cannot wait until you cash up at seven, because by then she has booked down the road. It writes the appointment into your Google Calendar or Cal.com and checks availability again at the moment it books, so nobody is double-booked. It works in the chat on your site and on Telegram.
Reviewed

Prices, times, Saturday. Ask it.
opusdone.com/go/demo
Somebody walks past at eight in the evening, likes the look of the place, and wants to know what a balayage costs and whether there is anything on Saturday. The lights are off. A code on the glass answers both and offers them a time.
Prices, how long it takes, whether you are taking new clients — answered from the pavement.
The card you already print, with one line at the bottom that books.
The reminder card they put in a purse. Rebooking becomes a scan rather than a phone call.
Forty minutes under a colour is forty minutes to ask about the next treatment.
That code opens our own OpusDone assistant — the same assistant your salon would get. When more than one person does a treatment, the customer picks who — and it only ever offers hours that person actually has free.
You are mid-treatment. Both hands are busy. The chat is not.
A client messages about Saturday while you are at the backwash and cannot stop to reply.
It offers at most six slots and never more than two from any one day.
Availability is read again at the moment of writing, so nobody else ends up with the same slot.
It says plainly that it does not know, and hands the conversation to you.
One click on the month calendar closes the day, and it shows in your calendar as closed.
Foils in, timer running, phone face down on the trolley. The enquiry is easy — she wants a Saturday — but answering it means stopping, and stopping is not free.
How long does it take. Does the price change if my hair is long. Do I need a patch test first. Three exchanges before anyone reaches for a diary, and all three happen after closing.
Your busiest hour for enquiries is one of the hours you are shut. On Monday you find eleven messages, four of them for slots that have already gone.
You set it up once, with your hands free, and it works the shifts you cannot.
A client asks about a balayage at nine in the evening and is offered a time the stylist who does it actually has free — her hours, her appointment length, her break. Every price it quotes is one you typed and marked live. You read the bookings in the morning.
Five it will answer today, from knowledge you approved: “How much is a full head of highlights?” · “Do you have anything Saturday afternoon?” · “How long should I allow for a balayage?” · “Do I need a patch test before colour, and when?” · “Do you do men’s cuts without an appointment?”.

Closing a day is one click on the month calendar, or a drag across a range for the August break, and it is mirrored into Google as an all-day “Closed — {your business}” event. Closures are verified in three independent places, including immediately before the appointment is written, and deleting that event in Google does not quietly reopen the day.
Minimum notice 120 minutes by default. Horizon 60 days. All editable.

The widget is a single script tag, no iframe, and it sits on the pages you already have. Telegram is the other live channel, which is also where you can be pinged and take over a chat in two taps. A visitor who closed the tab before you replied gets your answer by email.
Website widget and Telegram are the two live channels today.

Availability is re-read at the moment of writing; a slot offered earlier in the conversation is never a reservation.
Nothing here is a guess dressed up as an answer.
No inventing, no ranges, no “usually around”. If the treatment is not in your live knowledge it says so and brings you in.
A client picks her stylist, or takes the first time anyone has free. There is no rota that divides the week up evenly between the chairs — that judgement stays at the counter, where it belongs.
No image understanding, so no reading an inspiration picture or judging a regrowth. An attachment it cannot read skips the model entirely: it says so and fetches a person.
Availability is re-read live at the moment of writing, so the times offered earlier in the chat are never treated as a reservation. If a slot goes in between, she gets alternatives, not an error.
One diary for the salon, or one for each stylist, on Google Calendar or Cal.com. Closed days and working hours are both checked, and a slot lost between the check and the write produces alternatives rather than an error.
Request access