Every year the same thing happens. A customer walks up on Christmas Eve, finds the door locked and sends a one-star message that says "closed when it said open." The shop was never wrong on purpose. The hours on the door said one thing, the business profile said another and the website said a third.
Holiday opening hours are a small job with an outsized payoff, but only when every place customers look tells the same story. This guide walks through the whole routine: decide the dates, make a door sign people can read from the pavement, post it, update your listings and add the code that lets search tools show the right hours.
If you would rather skip straight to the result, the free holiday hours kit builds the sign, the post, the listing text and the code from one set of hours.
Start with a list of dates
Open a calendar and write down every date that differs from a normal week. For many shops that list looks like this:
| Date (2026) | Day | What to decide |
|---|---|---|
| Thanksgiving, 26 Nov | Thursday | Closed, or short hours |
| Black Friday, 27 Nov | Friday | Longer hours, or normal |
| Christmas Eve, 24 Dec | Thursday | Early close |
| Christmas Day, 25 Dec | Friday | Closed |
| Boxing Day, 26 Dec | Saturday | Closed, or limited hours |
| New Year's Eve, 31 Dec | Thursday | Early close |
| New Year's Day, 1 Jan | Friday | Closed |
Your own list may be shorter or longer. A salon might add the days staff are off, a restaurant might add a private event. Whatever the list, put a real decision next to each date. "Maybe open" is the enemy of a clear sign.
Two small rules save a lot of confusion later:
- Say the day and the date. "Thu 24 Dec" beats "Christmas Eve" because it works for customers who are not thinking about the holiday.
- Write times the way your customers do. In the United States that is "9am-1pm". In much of Europe it is "09:00-13:00". Pick one style and use it everywhere.
Normal hours matter too
A holiday sign only makes sense next to your regular hours. Before you change anything, check that your normal week is right. Do you really close at five on Fridays, or is that what the old sign says? Do you close for lunch? Write the true version down, including breaks.
Splitting a day into two slots is worth getting right. "Mon-Fri 9am-12pm and 1pm-5pm" is a different promise from "Mon-Fri 9am-5pm", and customers who arrive at half past twelve will notice.
Make a door sign people can read
The door is still the place where the most people see your hours, and it is the place most often done badly. A good sign has five parts:
- A heading that says what it is. "Holiday opening hours" is plain and works.
- Your business name, so a photo of the sign still makes sense.
- A short list of dates, one per line, in date order, with the status at the end of each line.
- A word, not a colour. Mark closed days with the word "Closed". A red line is invisible to a colour-blind customer and to anyone reading a black-and-white printout.
- Your regular hours at the bottom, so people know what happens the rest of the year.
Print it large. If you are reading it from two metres away, every date row should be about as tall as your thumb. Put it inside the glass, facing out, so rain does not ruin it, at eye level and away from the door handle.
Choose a style by where it will live. A plain white sign uses the least ink and suits a quiet shop front. A bold coloured sign catches the eye on a busy street. A dark sign looks good in a window with warm lighting. The kit offers all three, and it prints on A4 or Letter paper.
Put it up early
Hang the sign at least a week before your first changed day. Two weeks is better when your first date is a holiday that regulars plan around. If you only hang it the afternoon before, the people it helps are already in the shop.
Turn the same hours into a post
The social post is the sign for people who are not walking past. It needs the same facts in a different shape: a square-ish portrait picture, short lines and a big heading. The standard portrait size is 1080 by 1350 pixels, which fills most of a phone screen without being cropped.
A few habits make the post work harder:
- Post twice. Once a week or more ahead, and once the day before your first change.
- Pin it. Leave it at the top of your profile until the last date has passed.
- Write the caption in plain words. "We are closed Thursday 26 November and open 9am-1pm on Thursday 24 December. Back to normal hours on Saturday 2 January." Do not make people read the image to find out.
- Add alt text. One line, with the same dates, helps people using screen readers and covers anyone whose image does not load.
Update your listings the same day
Your business profile on maps and search, your social bios, your booking page and any directory listing should all say the same thing. This is the step most owners skip, and it is the one that causes the angry message. Customers use the profile to decide whether to come, long before they see the door.
Use the plain-text version, with no special characters, so it pastes cleanly into every form:
Sunnyside Bakery - opening hours
Mon-Fri: 9am-5pm
Sat: 10am-4pm
Sun: Closed
Holiday hours
Thu Nov 26 (Thanksgiving): Closed
Fri Nov 27 (Black Friday): 8am-8pm
Thu Dec 24 (Christmas Eve): 9am-1pm
Fri Dec 25 (Christmas Day): Closed
Many profile forms have a separate section for special hours. Use it when it exists, because it switches the hours back automatically after the date. If a form only offers free text, paste the block above and set a reminder to remove it when the holidays are over.
Add the code that search tools read
Your website can say the same thing in a form that machines read. It is called structured data, and for opening hours it uses a standard format with two parts: a block for your normal week and a block for special dates.
The special-dates block is the one that matters in December. Each date gets its own entry with a start and end date. A closed day is written with an opening and closing time of 00:00, which the format reads as "closed all day". Here is a short example:
{
"@context": "https://schema.org",
"@type": "Bakery",
"name": "Sunnyside Bakery",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:00"
}
],
"specialOpeningHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"validFrom": "2026-12-25",
"validThrough": "2026-12-25",
"opens": "00:00",
"closes": "00:00"
}
]
}
A few details trip people up:
- Use 24-hour times in the code, even if your sign uses am and pm. The format wants "17:00", not "5pm".
- Group days that share hours. Monday to Friday can share one entry. Saturday gets its own.
- Give a lunch break two entries. One for the morning slot and one for the afternoon.
- Closing after midnight is written with a closing time that is earlier than the opening time, for example opens "18:00" and closes "02:00".
- Remove old special dates after the holidays so your code does not collect dead entries.
Paste the block inside a script tag of type application/ld+json on the page that shows your hours, usually the contact page. If your site builder has a custom code box, it goes there. The kit gives you the finished block with the script tag already around it.
Check before you publish
Run through this list once the sign is printed and the code is in place:
- Does the day name match the date? Check each one against a calendar, especially across year end.
- Do the sign, the post, the profile and the website show the same times?
- Is every closed day marked with the word "Closed"?
- Are your regular hours on the sign?
- Does the sign mention a date that has already passed? Take it down.
A simple holiday timeline
- Three weeks ahead: decide the dates and hours with your team.
- Two weeks ahead: print the sign, update the website code and your listings.
- One week ahead: hang the sign and publish the first post.
- The day before: post a reminder and check the door.
- After the last date: remove the sign and the special dates, and confirm normal hours everywhere.
Next step
Open the holiday hours kit, enter your normal week, check the dates and download the four pieces. If your website is still showing last year's hours, grade your website for a free score and a short list of fixes, and keep the checklist for your own door close by with the Door Go leave-home checklist.