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.