Sign in to see your venue's slug and publishable key in every sample.
Your account has no venue yet, so the samples keep their placeholders. Sign out
Signed in as · . Create a publishable key in the console and reload to see it here. Sign out
Signed in as · . The samples show your venue's publishable key. Sign out
Developer docs
Opening hours
Read a venue's weekly schedule and date-specific overrides for holidays, events and early closing — for display, not for computing slots.
The weekly schedule plus date-specific overrides (holidays, events, early closing). Availability already applies these; read them to display hours, not to compute slots. It follows the same key rules as the rest of /api/venues/** (Keys and headers) and answers 404 with a problem body when no venue has that slug.
Endpoints
GET /api/venues/{venueSlug}/opening-hours
Response 200 OK
| Field | Type | Meaning |
|---|---|---|
slug, timezone |
string | The venue and the zone the times are in |
regular |
object[] | One entry per weekday: day (Monday…Sunday), isClosed, opens, closes (HH:mm, null when closed) |
special |
object[] | Date overrides: date (yyyy-MM-dd), isClosed, opens, closes, note — an entry wins over the weekday for its date |
Hours that cross midnight (opens 18:00, closes 02:00) belong to the day they start on.
Breaks are only applied to days that close before midnight.
{
"slug": "demo-sportsbar",
"timezone": "Europe/Berlin",
"regular": [
{
"day": "Monday",
"isClosed": true,
"opens": null,
"closes": null
},
{
"day": "Tuesday",
"isClosed": false,
"opens": "16:00",
"closes": "23:00"
},
{
"day": "Wednesday",
"isClosed": false,
"opens": "16:00",
"closes": "23:00"
}
],
"special": [
{
"date": "2026-12-24",
"isClosed": true,
"opens": null,
"closes": null,
"note": "Christmas Eve — closed"
},
{
"date": "2026-12-31",
"isClosed": false,
"opens": "18:00",
"closes": "02:00",
"note": "New Year's Eve — late night"
}
]
}Errors — 404 no venue with that slug.
curl
curl "https://api.bookdineplay.com/api/venues/your-venue/opening-hours" \
-H "X-BookDinePlay-Key: bdp_pk_your_publishable_key" \
-H "Origin: https://www.your-venue.example"JavaScript
const hours = await (await fetch('https://api.bookdineplay.com/api/venues/your-venue/opening-hours', {
headers: { 'X-BookDinePlay-Key': 'bdp_pk_your_publishable_key' }
})).json();
for (const day of hours.regular) {
console.log(day.day, day.isClosed ? 'closed' : `${day.opens}–${day.closes}`);
}C#
var hours = await client.GetOpeningHoursAsync("your-venue", cancellationToken);Next steps
- Venue — the other five reads for this venue.
- Availability — the slots these hours already constrain.
- .NET SDK — the same read as a typed method.