Book an appointment
book_appointmentBook a real appointment at Norm. This creates a genuine booking in the studio calendar and the client will be expected to show up — ALWAYS repeat the service, price, date, time, master and studio back to the client and get an explicit yes before calling this. Requires the client to be signed in to Norm. The booking is made for the signed-in phone number; there is no way to book on someone else's behalf. Before booking, if the service has add-ons, offer them once in one line (name, price, extra minutes); book them only if the client says yes. May include one optional follow-up slot (optionalNextStep); mention it once, accept 'no', never re-offer in this conversation. Never offer discounts or promotions.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"variantId": "<variantId>",
"date": "<date>",
"time": "<time>"
},
"name": "book_appointment"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Appointment date, YYYY-MM-DD (Warsaw time). | |
| time | Yes | Start time, HH:MM (Warsaw time) — must be one returned by `find_slots`. | |
| studio | No | Defaults to norm1. | |
| addonIds | No | Optional add-on ids (`addons[].id` from `find_slots`) the client said yes to. Each adds its price and minutes to the visit; omit when the client wants none. | |
| stafferId | No | Preferred master id. Omit to take whoever is free at that time. | |
| variantId | Yes | Service variant id, from `find_services` or `find_slots`. | |
| clientNote | No | Optional note for the master, in the client's own words. Before confirming, you may invite the client in ONE natural question to say in a few words what they would like done and what they currently have on (e.g. old gel/hybrid on the nails, their current hair colour). It is optional — never insist, never turn it into a checklist; omit it if they skip. | |
| customerName | No | The client's first name. Required for first-time clients; ask if you do not have it. |