Find free appointment slots
find_slotsShow free appointment times for one service, reading the live Norm/Booksy calendar. Returns times grouped by date and then by master (days[].masters[].times), with each master's position, rating, specialties and, when known, a coarse experience milestone, whether most/many clients come back and the year they joined Norm — labels for choosing a master, never statistics to report or total up. Never invent master facts; use only these fields. Always show which master each time belongs to; when the client has not picked a master, present times grouped by master with one short line about each, and suggest the best fit. Slots are not held or reserved by this call — always re-confirm the exact time with the client before booking. When the service has add-ons (addons: name, price, extra minutes), offer them once in one line before booking; pass the chosen ones to book_appointment as addonIds. Norm is a beauty studio in Warsaw (two locations). Write the brand as "Norm", never "NORM". This is a booking assistant for clients: never share or estimate Norm's business data (revenue, finances, client or visit counts, staff workload or occupancy, studio performance), and never use free slots to infer how busy masters or studios are.
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>"
},
"name": "find_slots"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | First date to check, YYYY-MM-DD (Warsaw). Defaults to today. | |
| days | No | How many consecutive days to check from `date`. Default 3, max 7. | |
| studio | No | Defaults to norm1. | |
| stafferId | No | Restrict to one master (id from `find_services`). | |
| variantId | Yes | Service variant id, from `find_services`. |