Update booking intent
Update an existing booking intent via a public interface (no authentication required).
Accepts slot fields and client data. When all slot fields
(provider_id, start_at, end_at, time_zone) are present, automatically
transitions to slot_selected. Cannot update intents in terminal status
(completed or abandoned).
Authorization
authorization In: header
Path Parameters
Booking Intent ID
Request Body
application/json
Update public booking intent params
TypeScript Definitions
Use the request body type in TypeScript.
Request schema for updating a booking intent via a public interface.
Response Body
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/public/booking_intents/string" \ -H "Content-Type: application/json" \ -d '{ "client_data": { "email": "jane@example.com", "first_name": "Jane" }, "end_at": "2026-02-23T10:30:00-05:00", "provider_id": "prov_1234567890", "start_at": "2026-02-23T10:00:00-05:00", "time_zone": "America/New_York" }'{ "data": { "appointment": null, "end_at": { "local": "2026-02-23T10:30:00-05:00", "object": "zoned_date_time", "time_zone": "America/New_York", "unix_ts": 1771947000, "utc": "2026-02-23T15:30:00Z" }, "errors": null, "hold_until": "2026-02-22T10:10:00Z", "id": "bi_abc123def456abc123def456", "locked_fields": [], "object": "public_booking_intent", "requirements": { "booking": { "complete": true }, "info": { "complete": false }, "submissions": [ { "complete": false, "form_id": "frm_abc123def456" } ] }, "start_at": { "local": "2026-02-23T10:00:00-05:00", "object": "zoned_date_time", "time_zone": "America/New_York", "unix_ts": 1771945200, "utc": "2026-02-23T15:00:00Z" }, "status": "slot_selected", "workflow": { "available_steps": [ "booking", "info", "form:frm_abc123def456" ], "can_change_slot": true, "can_complete": false, "defunct_reason": null, "is_defunct": false, "resume_step": "info" } }}Reschedule appointment POST
Reschedule an existing appointment via a public interface (no authentication required). The new time slot for the appointment must be available. You can find available time slots using the [List available time slots](/api/list-public-service-slots) endpoint. This action will fail with a 403 Forbidden response if rescheduling is not allowed for the appointment based on the service's rescheduling policy.
Get role GET
Retrieve a role by ID.