Type your business name and the hours for each day, tick the days you are closed, and choose a regular, holiday or closed notice. You get a sign to print for the door, plus matching code for your website: a plain hours list and openingHoursSpecification structured data that search engines can read.
| Where | What this tool gives you | Keep in mind |
|---|---|---|
| Front door or window | A printable sign | Print at 100% scale on letter or A4 paper |
| Your website | An HTML list using the time element | Paste it where visitors look, such as the footer or contact page |
| Search engines | openingHoursSpecification JSON-LD | Times use the 24-hour hh:mm form |
| Google Business Profile | Nothing to paste; set hours in the profile | Special hours cover up to 6 days in a row |
Updated
One set of hours, three places to put them. Fill the form once and the door sign, the website list and the structured data all stay in step, so a customer never reads one time on the glass and another online.
Business name: Corner Street Bakery
Kind of notice: Regular hours, Holiday hours, Closed notice
Hours
Only the sign prints. Nothing is uploaded.
Website hours block (HTML)
<section aria-labelledby="hours-h">
<h2 id="hours-h">Opening hours, Corner Street Bakery</h2>
<dl>
<dt>Monday</dt><dd><time datetime="08:00">8:00 AM</time> to <time datetime="17:00">5:00 PM</time></dd>
<dt>Tuesday</dt><dd><time datetime="08:00">8:00 AM</time> to <time datetime="17:00">5:00 PM</time></dd>
<dt>Wednesday</dt><dd><time datetime="08:00">8:00 AM</time> to <time datetime="17:00">5:00 PM</time></dd>
<dt>Thursday</dt><dd><time datetime="08:00">8:00 AM</time> to <time datetime="17:00">5:00 PM</time></dd>
<dt>Friday</dt><dd><time datetime="08:00">8:00 AM</time> to <time datetime="19:00">7:00 PM</time></dd>
<dt>Saturday</dt><dd><time datetime="09:00">9:00 AM</time> to <time datetime="15:00">3:00 PM</time></dd>
<dt>Sunday</dt><dd>Closed</dd>
</dl>
</section>Structured data (JSON-LD)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Corner Street Bakery",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday"
],
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Friday"
],
"opens": "08:00",
"closes": "19:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Saturday"
],
"opens": "09:00",
"closes": "15:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Sunday"
],
"opens": "00:00",
"closes": "00:00"
}
]
}
</script>Google's local business guide uses validFrom and validThrough for hours that apply only between two dates. This example marks one holiday closed while the weekly hours stay as they are.
Opens and closes both 00:00 means closed all day; the two dates limit it to that one day.
{
"@type": "OpeningHoursSpecification",
"opens": "00:00",
"closes": "00:00",
"validFrom": "2026-11-26",
"validThrough": "2026-11-26"
}
The website block wraps each opening and closing time in an HTML time element with a datetime attribute such as 09:00. People see the friendly form, while browsers and tools read a precise 24-hour value.
Keep the list as real text rather than a picture of your sign. Text can be read aloud by screen readers, zoomed on phones and found by search.
The holiday notice adds a highlighted line, such as Closed Thursday for the holiday, above the weekly table so customers see the change first. The closed notice prints a big Closed heading with your note and the time you reopen.
Seasonal changes belong in the structured data too: add validFrom and validThrough to a separate block so the regular hours stay correct afterwards.
Google's local business documentation says to set both opens and closes to 00:00 for a day you are closed. This tool does that for every day you tick as Closed.
Google's documentation asks for opens 00:00 and closes 23:59. Enter those two times for the day and the code follows.
Yes. An extra OpeningHoursSpecification with validFrom and validThrough dates (YYYY-MM-DD) covers a season or a single holiday. Add one when you print a holiday sign.
Yes, separately. Its help page describes special hours for holidays and events, for up to 6 days in a row, and says a closure of 7 or more days in a row should use Temporarily closed instead.
No. The sign and the code are built in your browser and printing uses your own print dialog. Nothing is uploaded.
Related: How to get your business on Google, Google Business Profile optimization, Google review link generator, Hours calculator.
Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.
We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.