API reference/Appointments
Get booking hours
Try itWhen the site takes appointments: on/off, time zone, appointment length, weekly hours, days off, notice, how far ahead, whether each booking waits for an answer, and the reminder.
GET
/api/v1/sites/{site_id}/booking-hoursAuthentication
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: get_booking_hours
Parameters
Named placeholders go in the path; the rest in the query string.
site_idstringPath · required- The site's id.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' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY"{
"site_id": "SITE_ID"
}{
"type": "object",
"properties": {
"site_id": {
"type": "string"
},
"saved": {
"type": "boolean",
"description": "false = never set up; the answer shows the defaults the settings form starts from."
},
"enabled": {
"type": "boolean",
"description": "true = visitors pick an open time on the site; false = the Appointments section is a plain \"ask for a day\" form."
},
"time_zone": {
"type": "string"
},
"slot_minutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Length of one appointment."
},
"hours": {
"type": "object",
"properties": {
"sunday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"monday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"tuesday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"wednesday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"thursday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"friday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
},
"saturday": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
}
}
},
"required": [
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
],
"additionalProperties": false,
"description": "Open hours per weekday as HH:MM spans in time_zone; [] = closed."
},
"blocked_days": {
"type": "array",
"items": {
"type": "string"
},
"description": "Days off, YYYY-MM-DD."
},
"min_notice_hours": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"days_ahead": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"needs_approval": {
"type": "boolean",
"description": "true = each booking waits for confirm_appointment."
},
"reminder_hours": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Reminder email this many hours before; 0 = none."
},
"customer_changes": {
"type": "boolean",
"description": "true = customers may cancel or move their own booking from the link in their emails."
},
"change_cutoff_hours": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Online changes stop this many hours before the appointment."
},
"is_sample": {
"type": "boolean"
}
},
"required": [
"site_id",
"saved",
"enabled",
"time_zone",
"slot_minutes",
"hours",
"blocked_days",
"min_notice_hours",
"days_ahead",
"needs_approval",
"reminder_hours",
"customer_changes",
"change_cutoff_hours",
"is_sample"
],
"additionalProperties": false
}