Labeling your business’s operating hours in structured data (Schema.org code) can be a great addition to your website as search engines, such as Google and Bing, continue to utilize structured data more and more in their search results pages (SERPs).

But what do you do for the holidays when your operating hours may be different?

Local Business Holiday Hours example in Google Search Results

Google and the Google logo are registered trademarks of Google Inc., used with permission.

 
There’s two things you can do:

  1. Login to your Google My Business account and manually enter in your holiday hours. Google does recognizes schema.org markup but the only guaranteed way to have your holiday hours listed in Google search results is by entering them in Google My Business.
  2.  

  3. Have your holiday hours in text format somewhere on the page/website and either markup that text with microdata or place the new hours in JSON-LD format somewhere on the page as well using the specialOpeningHoursSpecification property. JSON-LD format is recommended, see examples below.

 
Which holidays does Google need special hours for?

In addition to all Federal holidays, Google acknowledges individual State holidays as well.

If you would like to know which dates and holidays are available for you to enter your holiday hours, view Google’s official list of Holidays and their dates.

 

Structured Data for Holiday Hours

Schema.org defines the specialOpeningHoursSpecification property as “the special opening hours of a certain place” and explicitly states that this property will “override general opening hours brought in scope by openingHoursSpecification or openingHours“.

 
JSON-LD Format Example

"specialOpeningHoursSpecification": { 
"@type": "OpeningHoursSpecification", 
"opens": "09:00", 
"closes": "14:00", 
"validFrom": "2017-11-23", 
"validThrough": "2017-11-23" 
}

 
The following example utilizes [ brackets ] in order to include multiple sets of special hours. Below are some popular holidays in the USA that tend to have different hours or are closed (00:00).

 
JSON-LD Format Example

"specialOpeningHoursSpecification": [{ 
"@type": "OpeningHoursSpecification", 
"opens": "00:00", 
"closes": "00:00", 
"validFrom": "2017-12-25", 
"validThrough": "2017-12-25" 
},{ 
"@type": "OpeningHoursSpecification", 
"opens": "09:00", 
"closes": "14:00", 
"validFrom": "2018-01-01", 
"validThrough": "2018-01-01" 
}]

 
Side Note:
While this property takes care of any and all holiday hours that may be different from the general opening hours, the language is broad enough to include any day that might have special hours.

 

Structured Data for Seasonal Hours

If you’re doing Schema for a business that is closed for a particular season or extended period of time, utilize the openingHoursSpecification property and the validFrom and validThrough sub-properties to specify the exact dates of your off-season.

 
JSON-LD Format Example

"openingHoursSpecification": { 
"@type": "OpeningHoursSpecification", 
"opens": "00:00", 
"closes": "00:00", 
"validFrom": "2016-12-01", 
"validThrough": "2017-03-01" 
}

 
That about sums it up. Make sure to always test your code in Google’s structured data testing tool to make sure it’s free of any errors. If you liked this post or had any further comments on the topic, please let me know in the comments below.

The following two tabs change content below.