list_studios
List Norm studios
List Norm nail & beauty studios in Warsaw with their addresses. Call this first when the client has not said which location they want, or when they ask where Norm is. 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.
无需输入参数。
find_services
Find services and prices
Search the live Norm service menu: prices, durations, and which masters perform each service — including each master's position, rating, specialties and, when known, a coarse experience milestone (e.g. "300+ visits"), whether most/many clients come back and the year they joined Norm, so you can help the client pick a great fit rather than just a free slot. These are labels for choosing a master, not statistics: never turn them into numbers, totals or comparisons of the studio's business. Never invent master facts; use only these fields. Returns a `variantId` for every result — that id is the ONLY thing you need to pass to `find_slots` and `book_appointment`. Never invent a variantId, price, rating or specialty; always get them from this tool. For a vague request, show the 2–3 most-booked options with price and duration and ask which one. They carry `popularRank` 1–3 (a rank only — never say how many people booked anything). 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.
输入参数querystudio
find_slots
Find free appointment slots
Show 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.
输入参数datedaysstudiostafferIdvariantId必填
verification_status
Check sign-in status
Report whether the client is signed in to Norm on this connection. Booking, listing and cancelling appointments all require it. Use this before telling the client they need to sign in.
无需输入参数。
book_appointment
Book an appointment
Book 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.
输入参数date必填time必填studioaddonIdsstafferIdvariantId必填clientNotecustomerName
my_appointments
List the client's appointments
List the signed-in client's upcoming Norm appointments. Requires the client to be signed in to Norm. Use this to find the `bookingId` needed by `cancel_appointment`. Past visits are only returned with `includePast: true` — set it only when the client asks about their history. 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.
输入参数includePast
cancel_appointment
Cancel an appointment
Cancel one of the signed-in client's own appointments. This frees the slot in the real studio calendar and the time becomes available to others — always confirm the exact appointment with the client before calling. Get `bookingId` from `my_appointments`.
输入参数studiobookingId必填
Sign the client out of Norm on this connection: revokes the Norm sign-in, so booking, listing and cancelling need a fresh sign-in. Use when the client asks to log out, or when someone else wants to use the same assistant.
无需输入参数。