API reference/Appointments
List open times
Try itThe times a visitor can book right now, by day (what the site shows). With appointment_id: the times that booking can be MOVED to — the business's wider window (notice ignored, at least 60 days ahead). Each slot's `key` is what move_appointment takes.
GET
/api/v1/sites/{site_id}/booking-hours/open-timesAuthentication
An API key as Authorization: Bearer or x-api-key. It needs the bookings:read scope — read booking hours and appointments.
bookings:readRead onlyMCP tool: list_open_times
Parameters
Named placeholders go in the path; the rest in the query string.
site_idstringPath · required- The site's id.1 to 100 characters
appointment_idstringQuery · optional- A booking to move: its own time counts as open.1 to 100 characters
Response
200 with JSON on success (schema on the right). Errors use the standard envelope.
curl -X GET 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/booking-hours/open-times?appointment_id=APPOINTMENT_ID' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY"{
"site_id": "SITE_ID",
"appointment_id": "APPOINTMENT_ID"
}{
"type": "object",
"properties": {
"time_zone": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"day": {
"type": "string",
"description": "YYYY-MM-DD"
},
"label": {
"type": "string"
},
"slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "ISO start — pass it to move_appointment."
},
"label": {
"type": "string"
}
},
"required": [
"key",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"day",
"label",
"slots"
],
"additionalProperties": false
}
}
},
"required": [
"time_zone",
"enabled",
"data"
],
"additionalProperties": false
}