[{"type":"function","async":false,"function":{"name":"get_shop_info","description":"Get the shop's current local date/time, opening hours, services with prices and durations, and barbers. Call this at the start of every call.","parameters":{"type":"object","properties":{}}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]},{"type":"function","async":false,"function":{"name":"check_availability","description":"Check free appointment times. Give a date to list that day's free times; add a time to check one exact slot (returns closest alternatives if taken). Omit the date to get the next available times.","parameters":{"type":"object","properties":{"service":{"type":"string","description":"Service name, e.g. 'Haircut'. Optional if the shop has only one service."},"barber":{"type":"string","description":"Barber name, or 'any' for no preference."},"date":{"type":"string","description":"Date as YYYY-MM-DD (preferred), or 'today'/'tomorrow'/weekday name."},"time":{"type":"string","description":"Optional time to check, 24h HH:mm, e.g. '14:30'."}}}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]},{"type":"function","async":false,"function":{"name":"book_appointment","description":"Book an appointment. Only call after confirming service, barber, date, time and the customer's name with the caller. The caller's phone number is used automatically if customer_phone is omitted.","parameters":{"type":"object","properties":{"service":{"type":"string","description":"Service name."},"barber":{"type":"string","description":"Barber name, or 'any'."},"date":{"type":"string","description":"YYYY-MM-DD"},"time":{"type":"string","description":"24h HH:mm"},"customer_name":{"type":"string","description":"Customer's full name."},"customer_phone":{"type":"string","description":"Customer's phone number. Omit to use the caller ID."},"notes":{"type":"string","description":"Optional notes for the barber."}},"required":["date","time","customer_name"]}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]},{"type":"function","async":false,"function":{"name":"find_appointments","description":"List a customer's upcoming appointments by phone number (defaults to the caller ID).","parameters":{"type":"object","properties":{"customer_phone":{"type":"string","description":"Phone number. Omit to use the caller ID."}}}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]},{"type":"function","async":false,"function":{"name":"cancel_appointment","description":"Cancel an appointment by booking reference, or by the customer's phone (+ date if they have several). Confirm with the caller before calling. If it is refused as too late, say so using the message returned and the shop's cancellation policy from get_shop_info; do not promise exceptions, the shop decides.","parameters":{"type":"object","properties":{"reference":{"type":"string","description":"6-character booking reference, if the caller has it."},"customer_phone":{"type":"string","description":"Phone number. Omit to use the caller ID."},"date":{"type":"string","description":"Date of the appointment to cancel (YYYY-MM-DD) if they have more than one."},"reason":{"type":"string","description":"Optional reason."}}}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]},{"type":"function","async":false,"function":{"name":"reschedule_appointment","description":"Move an existing appointment to a new date/time (and optionally another barber). Check availability first. If it is refused as too late, say so using the message returned; do not promise exceptions, the shop decides.","parameters":{"type":"object","properties":{"reference":{"type":"string","description":"Booking reference, if known."},"customer_phone":{"type":"string","description":"Phone number. Omit to use the caller ID."},"current_date":{"type":"string","description":"Current appointment date (YYYY-MM-DD) if they have several."},"new_date":{"type":"string","description":"New date YYYY-MM-DD."},"new_time":{"type":"string","description":"New time HH:mm."},"barber":{"type":"string","description":"Optional new barber name."}},"required":["new_time"]}},"server":{"url":"https://www.vocsera.com/api/vapi"},"messages":[]}]