{"openapi":"3.1.0","info":{"title":"Business Box API","version":"1.0.0","description":"Bookings, event types, availability and webhooks for a Business Box account. Authenticate with a personal API key as a bearer token. All times are ISO 8601 UTC; money is an integer in the currency’s minor units, and JPY is zero-decimal, so 5000 is ¥5,000.","contact":{"name":"Business Box support","email":"info@appdevplus.jp"},"termsOfService":"https://marubox.jp/terms"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A personal API key, created under Settings → Integrations."}},"schemas":{"apiBooking":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["held","awaiting_payment","confirmed","cancelled","completed","no_show"]},"start":{"type":"string"},"end":{"type":"string"},"hostTimezone":{"type":"string"},"eventType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"slug":{"type":"string"}},"required":["id","name","nameI18n","slug"],"additionalProperties":false},"booker":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","phone","locale","timezone"],"additionalProperties":false},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"label":{"type":"string"},"labelI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"value":{"type":["string","boolean"]}},"required":["questionId","label","labelI18n","value"],"additionalProperties":false}},"bookerNotes":{"type":["string","null"]},"location":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["google_meet"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["teams"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["phone"]},"direction":{"type":"string","enum":["host_calls","booker_calls"]},"hostPhone":{"type":"string","maxLength":40}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["in_person"]},"address":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","address"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["custom"]},"text":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["kind","text"],"additionalProperties":false}]},"joinUrl":{"type":["string","null"]},"source":{"type":"string","enum":["public","manual","reschedule"]},"payment":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["unpaid","paid","refunded","partially_refunded","failed"]},"refundedAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"receiptUrl":{"type":["string","null"]}},"required":["amount","currency","status","refundedAmount","receiptUrl"],"additionalProperties":false},{"type":"null"}]},"cancellation":{"anyOf":[{"type":"object","properties":{"by":{"type":"string","enum":["booker","host","system"]},"reason":{"type":["string","null"]},"at":{"type":"string"}},"required":["by","reason","at"],"additionalProperties":false},{"type":"null"}]},"manageUrl":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","status","start","end","hostTimezone","eventType","booker","answers","bookerNotes","location","joinUrl","source","payment","cancellation","manageUrl","createdAt","updatedAt"]}}},"paths":{"/me":{"get":{"operationId":"getMe","summary":"Get the authenticated account","tags":["Account"],"description":"Returns the account the token belongs to, and the scopes the token carries. Integration platforms call this to test a connection and to label it.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"handle":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"},"bookingPageUrl":{"type":["string","null"]},"plan":{"type":"string","enum":["free","standard"]},"scopes":{"type":"array","items":{"type":"string","enum":["event_types:read","bookings:read","bookings:write","webhooks:manage"]}}},"required":["id","name","email","handle","locale","timezone","bookingPageUrl","plan","scopes"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/event-types":{"get":{"operationId":"listEventTypes","summary":"List event types","tags":["Event types"],"description":"The things people can book. Use this to populate an event type dropdown. Ordered as they appear in the app.","parameters":[{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":"true","type":"string","enum":["true","false"]},"in":"query","name":"active","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"description":{"type":["string","null"]},"slug":{"type":"string"},"durationMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"visibility":{"type":"string","enum":["public","invite_only"]},"active":{"type":"boolean"},"bookingUrl":{"type":["string","null"]},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]},"payOnArrival":{"type":"boolean"},"locationKind":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","nameI18n","description","slug","durationMinutes","visibility","active","bookingUrl","price","payOnArrival","locationKind","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/event-types/{id}/slots":{"get":{"operationId":"listAvailableSlots","summary":"List available start times","tags":["Event types"],"description":"Available start times for an event type, as UTC instants, after availability, calendar conflicts, buffers, notice and daily limits have been applied. The range may span at most 31 days. Invite-only event types are included, because the caller owns them.","parameters":[{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"in":"query","name":"from","required":true},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"in":"query","name":"to","required":true},{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"slots":{"type":"array","items":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"calendarBlocked":{"type":"boolean"}},"required":["slots","calendarBlocked"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/bookings":{"get":{"operationId":"listBookings","summary":"List bookings","tags":["Bookings"],"description":"Bookings, newest first by default. Held and awaiting-payment bookings are excluded unless asked for by status: they are in-flight states, not bookings anyone should act on. Items are full booking objects, so a polling trigger can emit them directly.","parameters":[{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string"},"in":"query","name":"status","required":false},{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"query","name":"eventTypeId","required":false},{"schema":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"in":"query","name":"email","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"in":"query","name":"startFrom","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"in":"query","name":"startTo","required":false},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"in":"query","name":"updatedSince","required":false},{"schema":{"default":"-createdAt","type":"string","enum":["-createdAt","start","-start","-updatedAt"]},"in":"query","name":"sort","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["held","awaiting_payment","confirmed","cancelled","completed","no_show"]},"start":{"type":"string"},"end":{"type":"string"},"hostTimezone":{"type":"string"},"eventType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"slug":{"type":"string"}},"required":["id","name","nameI18n","slug"],"additionalProperties":false},"booker":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","phone","locale","timezone"],"additionalProperties":false},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"label":{"type":"string"},"labelI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"value":{"type":["string","boolean"]}},"required":["questionId","label","labelI18n","value"],"additionalProperties":false}},"bookerNotes":{"type":["string","null"]},"location":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["google_meet"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["teams"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["phone"]},"direction":{"type":"string","enum":["host_calls","booker_calls"]},"hostPhone":{"type":"string","maxLength":40}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["in_person"]},"address":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","address"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["custom"]},"text":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["kind","text"],"additionalProperties":false}]},"joinUrl":{"type":["string","null"]},"source":{"type":"string","enum":["public","manual","reschedule"]},"payment":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["unpaid","paid","refunded","partially_refunded","failed"]},"refundedAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"receiptUrl":{"type":["string","null"]}},"required":["amount","currency","status","refundedAmount","receiptUrl"],"additionalProperties":false},{"type":"null"}]},"cancellation":{"anyOf":[{"type":"object","properties":{"by":{"type":"string","enum":["booker","host","system"]},"reason":{"type":["string","null"]},"at":{"type":"string"}},"required":["by","reason","at"],"additionalProperties":false},{"type":"null"}]},"manageUrl":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","status","start","end","hostTimezone","eventType","booker","answers","bookerNotes","location","joinUrl","source","payment","cancellation","manageUrl","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"operationId":"createBooking","summary":"Create a booking","tags":["Bookings"],"description":"Books a time on behalf of a customer, exactly as adding one by hand in the app does. The customer is emailed a confirmation unless notify is false. No card payment is taken, even for a paid event type. A time that is no longer free returns 409 slot_unavailable: the API never double-books.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"eventTypeId":{"type":"string","pattern":"^[0-9a-f]{24}$"},"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"booker":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","maxLength":40},"locale":{"default":"en","type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","timezone"]},"notes":{"type":"string","maxLength":2000},"notify":{"default":true,"type":"boolean"}},"required":["eventTypeId","start","booker"]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["held","awaiting_payment","confirmed","cancelled","completed","no_show"]},"start":{"type":"string"},"end":{"type":"string"},"hostTimezone":{"type":"string"},"eventType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"slug":{"type":"string"}},"required":["id","name","nameI18n","slug"],"additionalProperties":false},"booker":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","phone","locale","timezone"],"additionalProperties":false},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"label":{"type":"string"},"labelI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"value":{"type":["string","boolean"]}},"required":["questionId","label","labelI18n","value"],"additionalProperties":false}},"bookerNotes":{"type":["string","null"]},"location":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["google_meet"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["teams"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["phone"]},"direction":{"type":"string","enum":["host_calls","booker_calls"]},"hostPhone":{"type":"string","maxLength":40}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["in_person"]},"address":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","address"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["custom"]},"text":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["kind","text"],"additionalProperties":false}]},"joinUrl":{"type":["string","null"]},"source":{"type":"string","enum":["public","manual","reschedule"]},"payment":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["unpaid","paid","refunded","partially_refunded","failed"]},"refundedAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"receiptUrl":{"type":["string","null"]}},"required":["amount","currency","status","refundedAmount","receiptUrl"],"additionalProperties":false},{"type":"null"}]},"cancellation":{"anyOf":[{"type":"object","properties":{"by":{"type":"string","enum":["booker","host","system"]},"reason":{"type":["string","null"]},"at":{"type":"string"}},"required":["by","reason","at"],"additionalProperties":false},{"type":"null"}]},"manageUrl":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","status","start","end","hostTimezone","eventType","booker","answers","bookerNotes","location","joinUrl","source","payment","cancellation","manageUrl","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/bookings/{id}":{"get":{"operationId":"getBooking","summary":"Get a booking","tags":["Bookings"],"parameters":[{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["held","awaiting_payment","confirmed","cancelled","completed","no_show"]},"start":{"type":"string"},"end":{"type":"string"},"hostTimezone":{"type":"string"},"eventType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"slug":{"type":"string"}},"required":["id","name","nameI18n","slug"],"additionalProperties":false},"booker":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","phone","locale","timezone"],"additionalProperties":false},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"label":{"type":"string"},"labelI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"value":{"type":["string","boolean"]}},"required":["questionId","label","labelI18n","value"],"additionalProperties":false}},"bookerNotes":{"type":["string","null"]},"location":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["google_meet"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["teams"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["phone"]},"direction":{"type":"string","enum":["host_calls","booker_calls"]},"hostPhone":{"type":"string","maxLength":40}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["in_person"]},"address":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","address"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["custom"]},"text":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["kind","text"],"additionalProperties":false}]},"joinUrl":{"type":["string","null"]},"source":{"type":"string","enum":["public","manual","reschedule"]},"payment":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["unpaid","paid","refunded","partially_refunded","failed"]},"refundedAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"receiptUrl":{"type":["string","null"]}},"required":["amount","currency","status","refundedAmount","receiptUrl"],"additionalProperties":false},{"type":"null"}]},"cancellation":{"anyOf":[{"type":"object","properties":{"by":{"type":"string","enum":["booker","host","system"]},"reason":{"type":["string","null"]},"at":{"type":"string"}},"required":["by","reason","at"],"additionalProperties":false},{"type":"null"}]},"manageUrl":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","status","start","end","hostTimezone","eventType","booker","answers","bookerNotes","location","joinUrl","source","payment","cancellation","manageUrl","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/bookings/{id}/cancel":{"post":{"operationId":"cancelBooking","summary":"Cancel a booking","tags":["Bookings"],"description":"Cancels a booking exactly as the app does: the customer is emailed, and a paid booking is refunded in full. Idempotent — cancelling an already-cancelled booking returns it unchanged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":1000}}}}}},"parameters":[{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["held","awaiting_payment","confirmed","cancelled","completed","no_show"]},"start":{"type":"string"},"end":{"type":"string"},"hostTimezone":{"type":"string"},"eventType":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"nameI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"slug":{"type":"string"}},"required":["id","name","nameI18n","slug"],"additionalProperties":false},"booker":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":["string","null"]},"locale":{"type":"string","enum":["en","ja"]},"timezone":{"type":"string"}},"required":["name","email","phone","locale","timezone"],"additionalProperties":false},"answers":{"type":"array","items":{"type":"object","properties":{"questionId":{"type":"string"},"label":{"type":"string"},"labelI18n":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false},"value":{"type":["string","boolean"]}},"required":["questionId","label","labelI18n","value"],"additionalProperties":false}},"bookerNotes":{"type":["string","null"]},"location":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["google_meet"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["teams"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["phone"]},"direction":{"type":"string","enum":["host_calls","booker_calls"]},"hostPhone":{"type":"string","maxLength":40}},"required":["kind","direction"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["in_person"]},"address":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","address"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["custom"]},"text":{"type":"object","properties":{"en":{"type":"string","maxLength":2000},"ja":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["kind","text"],"additionalProperties":false}]},"joinUrl":{"type":["string","null"]},"source":{"type":"string","enum":["public","manual","reschedule"]},"payment":{"anyOf":[{"type":"object","properties":{"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"},"status":{"type":"string","enum":["unpaid","paid","refunded","partially_refunded","failed"]},"refundedAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"receiptUrl":{"type":["string","null"]}},"required":["amount","currency","status","refundedAmount","receiptUrl"],"additionalProperties":false},{"type":"null"}]},"cancellation":{"anyOf":[{"type":"object","properties":{"by":{"type":"string","enum":["booker","host","system"]},"reason":{"type":["string","null"]},"at":{"type":"string"}},"required":["by","reason","at"],"additionalProperties":false},{"type":"null"}]},"manageUrl":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","status","start","end","hostTimezone","eventType","booker","answers","bookerNotes","location","joinUrl","source","payment","cancellation","manageUrl","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/invites":{"post":{"operationId":"createInviteLink","summary":"Create a single-use booking link","tags":["Invites"],"description":"Mints a booking link that works once and then stops. Use it to reply to an enquiry. Works for public and invite-only event types, and the invitee skips the anti-spam checks because the link already proves you meant them. The url is returned only here.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"eventTypeId":{"type":"string","pattern":"^[0-9a-f]{24}$"},"name":{"type":"string","maxLength":120},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"expiresInDays":{"default":14,"type":"integer","minimum":1,"maximum":90}},"required":["eventTypeId"]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"eventTypeId":{"type":"string"},"url":{"type":["string","null"]},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},"usedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"},{"type":"null"}]},"bookingId":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["id","eventTypeId","url","name","email","expiresAt","usedAt","bookingId","createdAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/webhooks":{"post":{"operationId":"createWebhook","summary":"Subscribe to events","tags":["Webhooks"],"description":"Registers an endpoint to receive events. The secret is returned only here: store it, and verify the BB-Signature header on every delivery. Returns a Location header pointing at the subscription.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000,"format":"uri"},"events":{"minItems":1,"maxItems":20,"type":"array","items":{"anyOf":[{"type":"string","enum":["booking.created","booking.rescheduled","booking.cancelled","booking.no_show"]},{"type":"string","enum":["*"]}]}},"description":{"type":"string","maxLength":200}},"required":["url","events"]}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","disabled"]},"createdVia":{"type":"string"},"lastSuccessAt":{"type":["string","null"]},"consecutiveFailures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"secret":{"type":"string"}},"required":["id","url","events","description","status","createdVia","lastSuccessAt","consecutiveFailures","createdAt","secret"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"get":{"operationId":"listWebhooks","summary":"List webhook subscriptions","tags":["Webhooks"],"description":"Secrets are never returned here.","parameters":[{"schema":{"default":50,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","disabled"]},"createdVia":{"type":"string"},"lastSuccessAt":{"type":["string","null"]},"consecutiveFailures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","url","events","description","status","createdVia","lastSuccessAt","consecutiveFailures","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/webhooks/{id}":{"get":{"operationId":"getWebhook","summary":"Get a webhook subscription","tags":["Webhooks"],"description":"Used by trigger nodes to check that a subscription still exists.","parameters":[{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","disabled"]},"createdVia":{"type":"string"},"lastSuccessAt":{"type":["string","null"]},"consecutiveFailures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","url","events","description","status","createdVia","lastSuccessAt","consecutiveFailures","createdAt"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"operationId":"deleteWebhook","summary":"Delete a webhook subscription","tags":["Webhooks"],"description":"Idempotent: an unknown id also returns 204, so an unsubscribe never fails on a retry.","parameters":[{"schema":{"type":"string","pattern":"^[0-9a-f]{24}$"},"in":"path","name":"id","required":true}],"responses":{"204":{"description":"Default Response"},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"One of: validation_failed, unauthorized, insufficient_scope, not_found, slot_unavailable, event_type_inactive, booking_state_changed, duplicate_booking, idempotency_conflict, rate_limited, bad_request, internal_error."},"message":{"type":"string"},"details":{}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}},"servers":[{"url":"https://api.marubox.jp/v1","description":"Production"}],"webhooks":{"booking.created":{"post":{"summary":"A booking became confirmed for the first time. Paid bookings fire only once payment succeeds.","operationId":"onBookingCreated","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","type","createdAt","apiVersion","data"],"properties":{"id":{"type":"string","examples":["evt_1a2b3c"]},"type":{"type":"string","const":"booking.created"},"createdAt":{"type":"string","format":"date-time"},"apiVersion":{"type":"string","const":"v1"},"data":{"type":"object","required":["booking"],"properties":{"booking":{"$ref":"#/components/schemas/apiBooking"}}}}}}}},"responses":{"200":{"description":"Acknowledged. Any 2xx counts."},"410":{"description":"Gone. The subscription is deleted immediately."}}}},"booking.rescheduled":{"post":{"summary":"A booking moved. Exactly one event: no cancelled/created pair.","operationId":"onBookingRescheduled","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","type","createdAt","apiVersion","data"],"properties":{"id":{"type":"string","examples":["evt_1a2b3c"]},"type":{"type":"string","const":"booking.rescheduled"},"createdAt":{"type":"string","format":"date-time"},"apiVersion":{"type":"string","const":"v1"},"data":{"type":"object","required":["booking"],"properties":{"booking":{"$ref":"#/components/schemas/apiBooking"},"previous":{"type":"object","properties":{"id":{"type":"string"},"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}}}}}}}}},"responses":{"200":{"description":"Acknowledged. Any 2xx counts."},"410":{"description":"Gone. The subscription is deleted immediately."}}}},"booking.cancelled":{"post":{"summary":"A booking was cancelled by the booker, the host or the system.","operationId":"onBookingCancelled","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","type","createdAt","apiVersion","data"],"properties":{"id":{"type":"string","examples":["evt_1a2b3c"]},"type":{"type":"string","const":"booking.cancelled"},"createdAt":{"type":"string","format":"date-time"},"apiVersion":{"type":"string","const":"v1"},"data":{"type":"object","required":["booking"],"properties":{"booking":{"$ref":"#/components/schemas/apiBooking"}}}}}}}},"responses":{"200":{"description":"Acknowledged. Any 2xx counts."},"410":{"description":"Gone. The subscription is deleted immediately."}}}},"booking.no_show":{"post":{"summary":"A booking was marked as a no-show.","operationId":"onBookingNo_show","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","type","createdAt","apiVersion","data"],"properties":{"id":{"type":"string","examples":["evt_1a2b3c"]},"type":{"type":"string","const":"booking.no_show"},"createdAt":{"type":"string","format":"date-time"},"apiVersion":{"type":"string","const":"v1"},"data":{"type":"object","required":["booking"],"properties":{"booking":{"$ref":"#/components/schemas/apiBooking"}}}}}}}},"responses":{"200":{"description":"Acknowledged. Any 2xx counts."},"410":{"description":"Gone. The subscription is deleted immediately."}}}}},"security":[{"bearerAuth":[]}],"tags":[{"name":"Account","description":"Who the token belongs to"},{"name":"Event types","description":"What people can book, and when"},{"name":"Bookings","description":"Read, create and cancel bookings"},{"name":"Invites","description":"Single-use booking links"},{"name":"Webhooks","description":"Subscribe to events"}]}