Skip to content
FeaturesPricingAffiliateBlogHelpAboutContact
Get StartedSign In
Back to Blog
tips2027-07-066 min read

OpeningHoursSpecification Schema: Powering the Google Knowledge Panel "Open Now" Badge

A 14-table breakfast spot in Çekmeköy earned a green "Open now · until 23:00" Knowledge Panel badge via OpeningHoursSpecification. DayOfWeek enum, special hours, thMenu auto-formatting walkthrough.

th

thMenu Team

thmenu.com

Picture a 14-table breakfast café in Çekmeköy, Istanbul. A guest searches Google for "kahvaltıcı open near me" and the café appears in the Knowledge Panel with a green "Open now · until 23:00" badge. That badge isn't coming from Google My Business alone — it's powered by OpeningHoursSpecification schema markup.

What OpeningHoursSpecification does that GMB can't

GMB hours feed the first result card, but schema.org/OpeningHoursSpecification powers the live "open/closed" badge in the Knowledge Panel, Maps voice answers, and LLM answer engines like Perplexity that scrape JSON-LD. GMB is one surface; schema is multi-surface.

The Çekmeköy operator updated GMB for 8 weeks without earning the badge. Once OpeningHoursSpecification was added to the JSON-LD, the Knowledge Panel started showing "Open now" within 9 days, lifting click-through rate by 18%.

DayOfWeek enum and correct formatting

Day names must be the schema.org enum URL or string — https://schema.org/Monday, not "Pazartesi". Times are ISO 8601 24-hour: "07:00", not "7 am". Leading zeros required.

  • dayOfWeek: ["Monday","Tuesday",...] or single string
  • opens: "07:00" — ISO time format
  • closes: "23:00" — wrap past midnight as two blocks

Special hours: Ramadan, school holidays, public holidays

For Ramadan sahur service or extended winter break hours, add a second OpeningHoursSpecification block with validFrom and validThrough. Google prefers the special block when its date range covers today.

thMenu's admin "Opening Hours" page generates this structure automatically — pick days from a UI, the system emits ISO time, builds separate validFrom-validThrough blocks for Ramadan/holidays, and injects JSON-LD into your menu page. No hand-written schema required.

FAQ

How long until the badge appears? After Rich Results Test passes, expect 7-14 days. URL Inspection in Search Console can shorten this to 3-5 days.

How do I encode hours past midnight? Use two blocks: "23:00-23:59" and "00:00-02:00". Single blocks crossing midnight fail validation.

If GMB and schema disagree, which wins? Google usually picks the most recently updated and most specific source — keep both consistent to avoid mismatch flags.

Found this helpful? Share it.