{"server":"com.callchatsyn/callchatsyn","count":1,"changes":[{"tool":"book_appointment","kind":"changed","observed_at":"2026-10-06T10:35:40.246Z","fields":["description"],"description_before":"Book one appointment for a customer. This creates a real booking: the business is notified, and if it has connected Cal.com the booking is created there too. With the demo key it's a dry run that books nothing. Not idempotent: booking the same time twice fails the second time. Only call it after the customer has confirmed the time and service; needs a 'start' from list_open_times and the customer's email or phone. Errors: 404 the time is no longer offered (call list_open_times again), 409 it was just taken, 400 missing start, service, or both email and phone. Returns JSON { booked, id, start, label }; keep 'id' if the customer may want to cancel.","description_after":"Book one appointment for a customer. This creates a real booking: the business is notified, and if it has connected Cal.com the booking is created there too. With the demo key it's a dry run that books nothing. Not idempotent: booking the same time twice fails the second time. Only call it after the customer has confirmed the time and service; needs a 'start' from list_open_times and the customer's email or phone. Errors: 404 the time is no longer offered (call list_open_times again), 409 it was just taken, 400 missing start, service, or both email and phone, or the business's connected calendar needs a detail the customer didn't give (the message says which, e.g. an email). Returns JSON { booked, id, start, label }; keep 'id' if the customer may want to cancel.","description_similarity":0.875,"before_hash":"5507eb1bd46206d4b524e0f874ab3b31","after_hash":"2dab5da03a53830efd01df241728d51b"}],"next_before":null,"next_actions":[]}