Apple Business guidance for capturing a location's opening hours. This includes service and special hours.
Hours by Day
times MUST be valid per the OSM Opening Hours specification with added constraints:
timesMUST only capture OSM<hour_minutes>where:<hour>is in the range00to24<minutes>is in the range00to59
| Name | Type | Input |
|---|---|---|
day | string | |
times | array |
Day
MUST be any one (1) of:
| SUNDAY | MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY | SATURDAY |
Times
| Name | Type | Description |
|---|---|---|
startTime | string | Start time in the format: <hours>:<minutes> |
endTime | string | End time in the format: <hours>:<minutes> |
<hours>MUST be any one (1) of:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
<minutes>MUST be any one (1) of:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
Occurrences
Opening Hours by Day
Opening Hours by Day captures a location's regular hours of operation and must reflect the actual hours of the described location. When a physical location displays different hours for a specific service, then these hours should be captured as Service Hours and must not modify the location's Opening Hours by Day.
US Post Office, Santa Barbara, CA, USA
US Post Office displays these hours:

Opening Hours by Day should capture the "Retail Hours." "Lobby Hours," "Photo Appointment Hours," "Passport Appointment Hours," and so on should be individually captured in Service Hours
Locations Without Expected Hours
Some locations do not physically display their hours of operation. These may include:
- Locations that are always open. For example, hotels, gas stations, parks, natural features, and so on
- Locations without fixed hours. For example, locations available by appointment, only
When hours of operation are not displayed because the location is operational 24 hours a day, Opening Hours by Day must still be captured to unambiguously capture this fact.
When a location is by appointment only, Opening Hours by Day should not be provided.
Hanks Seafood & Supermarket, New Orleans, LA, USA
Hanks is open 24 hours a day, 7 days a week.
Modeling Approach
Opening Hours by Day Example
{
"openingHoursByDay": [
{
"day": "MONDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "TUESDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "WEDNESDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "THURSDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "FRIDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "SATURDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
},
{
"day": "SUNDAY",
"times": [
{
"startTime": "00:00",
"endTime": "24:00"
}
]
}
]
}
Liberty Tax, Nashville, TN 37216
Liberty Tax is open by appointment only and hours of operation are not listed on their official website. Opening Hours by Day should not be provided for this location.
Unattended Locations
Unattended locations are required to possess Opening Hours. Unattended locations are generally considered to be operational 24 hours a day. The following convention is acceptable:
| Scenario | startTime | endTime |
|---|---|---|
| 24 hours a day | 00:00 | 24:00 |
Seasonal Hours
Seasonal hours are commonly a response to:
- Available daylight
- Harvesting times
- Holidays
- Weather conditions necessary for recreational activities
The Viking Ship Museum, Oslo, Denmark
The Viking Ship Museum has seasonal hours as follows:
| Season | Date Range | Hours |
|---|---|---|
| Summer | May 1 - Oct 23 | Mon - Sun 10:00 - 17:00 |
| Winter | Oct 24 - Apr 31 | Mon - Sun 10:00 - 16:00 |
Modeling Approach
Model seasonal hours using Special Hours. Specify their respective date ranges and use a description to distinguish them from one another.
Special Hours Example
{
"specialHours": [
{
"hoursByDay": [
{
"day": "MONDAY",
"times": [
{
"startTime": "10:00",
"endTime": "17:00"
}
]
},
{...},
{...},
{...},
{...},
{...},
{...}
],
"startDate": "2026-05-01",
"endDate": "2026-10-23",
"closed": "false",
"descriptions": [
{
"text": "Summer Season",
"locale": "en"
},
{
"text": "Sommer",
"locale": "da"
}
]
},
{
"hoursByDay": [
{
"day": "MONDAY",
"times": [
{
"startTime": "10:00",
"endTime": "16:00"
}
]
},
{...},
{...},
{...},
{...},
{...},
{...}
],
"startDate": "2026-10-23",
"endDate": "2026-04-30",
"closed": "false",
"descriptions": [
{
"text": "Winter Season",
"locale": "en"
},
{
"text": "Vinter",
"locale": "da"
}
]
}
]
}
Times
Refer to the following table for common scenarios and expected times:
| Scenario | startTime | endTime |
|---|---|---|
| 5pm-1am | 17:00 | 01:00 |
| 10pm-12.30am | 22:00 | 00:30 |
| 24 hours a day | 00:00 | 24:00 |
Related
| Name | Description |
|---|---|
| Location | Location API |