Opening hours
note
These articles use the stores import formats to describe stores, most important for producers of the store data (e.g. POS system integration creating stores). Since a store can contain tenant-specific extensions, use the Stores schema endpoints in your specific tenant to understand details on consuming store data.
openingHours is an ordered list of rules. The first rule where all conditions evaluate to true is used for the current date.
This means the order of opening hours are important: place specific exceptions before broad fallback rules.
Opening hours rule model
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
conditions | array | Yes | One or more conditions that must all match. | [{ "type": "dayofweek", "days": ["Monday"] }] |
open | array | Yes | The open interval(s) to apply when conditions match. Empty array means closed for matching dates. | [{ "from": "08:00", "to": "14:00" }] |
Condition types
always
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
type | string | Yes | Constant value always; always matches. | "always" |
never
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
type | string | Yes | Constant value never; never matches. | "never" |
dayofweek
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
type | string | Yes | Constant value dayofweek. | "dayofweek" |
days | array<string> | Yes | Days that should match. Allowed: Monday ... Sunday. | ["Monday", "Tuesday"] |
specificdates
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
type | string | Yes | Constant value specificdates. | "specificdates" |
dates | array<string(date)> | Yes | Explicit dates that should match. | ["2026-12-24", "2026-12-31"] |
betweendates
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
type | string | Yes | Constant value betweendates. | "betweendates" |
fromIncl | string(date) | Yes | Inclusive start date. | "2026-06-01" |
toIncl | string(date) | Yes | Inclusive end date. | "2026-08-31" |
Open interval fields
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
from | string(HH:mm) | Yes | Opening time for the interval. | "08:00" |
to | string(HH:mm) | Yes | Closing time for the interval. | "14:00" |
toNextDay | boolean | No | When true, to is interpreted as next day. | true |
Example with exception and fallback
{
"openingHours": [
{
"conditions": [
{
"type": "specificdates",
"dates": ["2026-12-24"]
}
],
"open": []
},
{
"conditions": [
{
"type": "dayofweek",
"days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
}
],
"open": [
{
"from": "08:00",
"to": "16:00"
}
]
},
{
"conditions": [
{
"type": "always"
}
],
"open": [
{
"from": "00:00",
"to": "00:00",
"toNextDay": true
}
]
}
]
}
In this example, 24 Dec is closed, weekdays are open 08:00–16:00, and a final fallback covers all remaining days with open 24 hours each day.