Opening hours generator — tidy hours text, HTML table and schema.org JSON-LD

Type your opening hours the way you would say them — "Mon-Fri 09:00-17:30", "Sat 10am-2pm", "Sun closed" — and the tool turns them into a tidy hours list, a small HTML table and schema.org JSON-LD for your website.

Live demo · real result from this tool
Display times as

Press Generate to create a result.

Processed on your device — nothing is uploaded.

How to use the opening hours generator

  1. Type your hours in Opening hours, one line per day or range, for example Mon-Fri 09:00-17:30.
  2. Choose Display times as 17:30 or 5:30 pm.
  3. Fill in Business name, Business type (schema.org), Website, Phone and the address fields.
  4. Leave Also produce schema.org JSON-LD ticked if you want the structured-data block.
  5. Copy the text list, the HTML snippet or the JSON-LD, or download each as a file.

What it does and when to use it

Opening hours appear on your website, door sign and emails. This tool gives you the same hours in three forms from one input, so they stay consistent.

The text list groups days that share the same hours, so “Monday – Friday: 09:00 – 17:30” replaces five identical lines. The HTML snippet is a plain <table class="opening-hours"> you can style. The JSON-LD describes your business, address and openingHoursSpecification in the schema.org vocabulary, which search engines and other apps can read.

Use it when you open a new location, change seasonal hours, or add structured data to a site. Then announce the change to staff with a memo, or to the public with a press release for a new branch. The landing page copy generator can turn “When are you open?” into an FAQ entry.

How it works

Each line is split into a day part and a time part. Day ranges are expanded, including ranges that wrap past Sunday (Fri-Mon gives Friday, Saturday, Sunday, Monday). Times are converted to 24-hour HH:MM. A later line overrides an earlier one for the same day.

For the JSON-LD, days with exactly the same opening and closing time are grouped into one OpeningHoursSpecification entry with a dayOfWeek list. Split shifts become two entries. The < character is escaped so the script block is safe to paste. All of this runs in your browser.

Worked examples

A shop. Mon-Fri 09:00-17:30, Sat 10:00-14:00, Sun closed gives Monday – Friday: 09:00 – 17:30, “Saturday: 10:00 – 14:00” and “Sunday: Closed”. The JSON-LD has two entries: Monday–Friday 09:00–17:30 and Saturday 10:00–14:00.

A restaurant with two sittings, 12-hour display. Tue-Sat 12pm-3pm, 6pm-11pm, Sun noon-4pm, Mon closed gives “Monday: Closed”, Tuesday – Saturday: 12 pm – 3 pm, 6 pm – 11 pm and “Sunday: 12 pm – 4 pm”.

Always open. Daily 24 hours gives Monday – Sunday: Open 24 hours.

Limits and tips

  • Holiday and special-date hours are not supported; update the hours before and after each holiday.
  • Hours that run past midnight (for example 18:00–02:00) are kept as typed in one entry; check how your website platform expects them.

Frequently asked questions

What formats can I type?
Day names or their first two letters (Mon, Tu, Wednesday), ranges like Mon-Fri or Fri-Mon, lists like "Mon, Wed", and the words Daily, Weekdays and Weekends. Times can be 24-hour (17:30) or 12-hour (5:30pm, 5.30 pm), plus "noon" and "midnight". Separate split shifts with a comma or "and".
Why are closed days missing from the JSON-LD?
In openingHoursSpecification, a day that is not listed is treated as closed, so the tool lists only the days with opening times. The text list and HTML table still show "Closed" for those days.
How are 24-hour days written?
Typing "24 hours" or "open 24 hours" gives 00:00 to 23:59, and "midnight" as a closing time also becomes 23:59. The text list shows "Open 24 hours".
What happens if a line has a typo?
The tool skips that line and shows a message such as "Could not read the times in …" or "Unknown day in …", so you can fix it. The other lines still work.
Where do I put the JSON-LD?
Paste the whole script block into the HTML of the page about that location, usually in the head.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close