Opening hours a machine can read
Written as prose, your hours are a guess for every machine that reads them. OpeningHoursSpecification expresses them as dayOfWeek plus opens and closes in 24 hour time, which turns seven days with two times each into fourteen unambiguous values. That is the whole job.

Why prose fails here
Every business writes its hours in prose at some point: open daily except Sunday, closed for lunch, by appointment in winter. A person can read that. A machine deciding whether to tell someone you are open right now cannot, so it either ignores the sentence or guesses.
The structured form removes the guess. Each entry names the day and gives an opening and a closing time, and anything that does not fit that shape, such as a lunch break, becomes two entries for the same day rather than a footnote.
The structure, and the count
An OpeningHoursSpecification entry carries dayOfWeek, opens and closes, with times in 24 hour form such as 09:00:00 and 17:00:00. So a standard week is 7 days with 2 times each, which is 14 values, and a lunch break on five days adds 5 more entries and 10 more values.
Set that against the effort elsewhere. For a local business, name and address are the 2 required properties and opening hours sit among the recommended ones, alongside telephone, geo and price range. Recommended does not mean optional in practice: it is the field a visitor most often needs and the one that changes most often.
And keep expectations flat. Google states that structured data does not guarantee that features consuming it will appear, and that for its AI features no special schema.org data is needed at all. You write the hours so that machines stop guessing, not so that a box appears.
| Item | Count | Note |
|---|---|---|
| Days in a week | 7 | Each needs its own entry |
| Times per open day | 2 | opens and closes |
| Values in a standard week | 14 | Before any exceptions |
| Extra entries for a lunch break on five days | 5 | Two entries per day |
| Required properties for a local business | 2 | Name and address only |
Where hours go wrong
The common failure is not the markup, it is the second copy. Hours on the website, on the map profile and on a directory that disagree turn a simple question into three answers, and the reader believes none of them.
Holidays are the second failure. A week of closure that exists only as a note on the door is invisible to every machine and to anyone checking before they set out.
Questions and answers
How do I express a lunch break?
What time format is used?
Are opening hours required?
Will markup make a box appear in search?
Sources
- schema.org, openingHoursSpecification The structure and the time format
- Google Search Central, Local business structured data Required and recommended properties and the guarantee disclaimer


