@type: Restaurant · FoodEstablishment
Restaurant schema generator
Restaurant hours are deceptively complex: lunch and dinner services, late weekends, Monday closures and holiday exceptions. Restaurant opening hours schema encodes every split shift and exception precisely so Google never tells a diner you're open when you're not.
Free · no account needed · validated against Google's LocalBusiness guidelines
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Restaurant", "@id": "https://trattoriafiore.example/#localbusiness", "name": "Trattoria Fiore", "description": "Neighbourhood Italian trattoria on the Jordaan canals: handmade pasta, wood-fired secondi and a natural wine list.", "url": "https://trattoriafiore.example", "logo": "https://trattoriafiore.example/logo.png", "image": [ "https://trattoriafiore.example/img/dining-room-16x9.jpg", "https://trattoriafiore.example/img/pasta-4x3.jpg", "https://trattoriafiore.example/img/terrace-1x1.jpg" ], "telephone": "+31 20 555 8820", "email": "ciao@trattoriafiore.example", "priceRange": "€€€", "currenciesAccepted": "EUR", "paymentAccepted": "Debit Card, Credit Card, Apple Pay", "address": { "@type": "PostalAddress", "streetAddress": "Prinsengracht 191", "addressLocality": "Amsterdam", "addressRegion": "Noord-Holland", "postalCode": "1015 DS", "addressCountry": "NL" }, "geo": { "@type": "GeoCoordinates", "latitude": 52.376542, "longitude": 4.884321 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Tuesday", "Wednesday", "Thursday" ], "opens": "17:30", "closes": "23:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Thursday", "Friday" ], "opens": "12:00", "closes": "14:30" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Friday", "Saturday" ], "opens": "17:30", "closes": "00:30" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "12:00", "closes": "15:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "12:00", "closes": "21:30" } ], "specialOpeningHoursSpecification": [ { "@type": "OpeningHoursSpecification", "name": "Christmas Day", "validFrom": "2026-12-25", "validThrough": "2026-12-25", "opens": "17:00", "closes": "22:00" }, { "@type": "OpeningHoursSpecification", "name": "New Year's Day", "validFrom": "2027-01-01", "validThrough": "2027-01-01", "opens": "00:00", "closes": "00:00" }, { "@type": "OpeningHoursSpecification", "name": "Annual closure", "validFrom": "2027-01-11", "validThrough": "2027-01-24", "opens": "00:00", "closes": "00:00" } ], "servesCuisine": [ "Italian", "Pasta", "Wine bar" ], "menu": "https://trattoriafiore.example/menu", "acceptsReservations": true, "hasOfferCatalog": { "@type": "OfferCatalog", "name": "Menu highlights", "itemListElement": [ { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Tasting menu", "description": "Six courses with seasonal antipasti and dessert." }, "price": "68.00", "priceCurrency": "EUR", "priceSpecification": { "@type": "UnitPriceSpecification", "price": "68.00", "priceCurrency": "EUR", "unitText": "per person" } }, { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Wine pairing", "description": "Natural Italian wines matched to the tasting menu." }, "price": "45.00", "priceCurrency": "EUR", "priceSpecification": { "@type": "UnitPriceSpecification", "price": "45.00", "priceCurrency": "EUR", "unitText": "per person" } }, { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Private dining room", "description": "Exclusive use for groups of 12–24." }, "priceSpecification": { "@type": "PriceSpecification", "minPrice": "900.00", "priceCurrency": "EUR" } } ] }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "reviewCount": "864", "bestRating": "5", "worstRating": "1" }, "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "Lotte Bakker" }, "reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }, "reviewBody": "Best cacio e pepe outside Rome. Book the canal-side table!", "datePublished": "2026-09-28" } ], "sameAs": [ "https://maps.app.goo.gl/trattoriafiore-example", "https://www.instagram.com/trattoriafiore.ams", "https://www.tripadvisor.com/Restaurant_Review-trattoria-fiore-amsterdam", "https://www.facebook.com/trattoriafioreamsterdam" ]}</script>Generate your restaurant schema
Fill in your details — the JSON-LD, validator and search preview update as you type. Free, no account.
Step 1 of 7
Business
Type & identity
Business type
Pick the most specific schema.org subtype. It's the strongest relevance signal you can send.
@typeIdentity
Use the name exactly as it appears on your storefront and Google Business Profile.
nameMissing business name
alternateNamelegalNamedescription0/750
sloganfoundingDateWebsite & media
urlMissing website URL
logoSquare, at least 112×112px, on a plain background.
imageNo images
Food establishment details
Recommended by Google for restaurants, cafés and bars.
servesCuisineAdd cuisine types
menuAdd a menu URL
acceptsReservationsFree schema checker
Validate existing restaurant markup
Already have restaurant markup? Paste it to see its score, rich result eligibility and exactly what to fix.
Properties that matter for restaurants
openingHoursSpecification | Separate lunch and dinner services per day, including past-midnight closes. |
specialOpeningHoursSpecification | Christmas, New Year and annual closures. |
servesCuisine | Recommended by Google for food establishments. |
menu + acceptsReservations | Two of the most-clicked restaurant details. |
name + address | Required by Google for every LocalBusiness — and must match your Business Profile exactly. |
Best practices
- Encode a 17:30–00:30 Friday as one range — LocalSchema handles past-midnight closes.
- Add holiday exceptions at least two weeks ahead; Google caches aggressively.
- Link your menu page, not a PDF, for better crawlability.
FAQ
What the validator checks
- Required name and full postal address
- Phone format and international prefix
- Overlapping or invalid split hours
- Coordinates with 5+ decimal precision
- Expired holiday exceptions
- Keyword-stuffed business names
- Self-serving review markup
- servesCuisine and menu for food businesses
For agencies
Managing several restaurants?
Host the schema for up to 25 client locations and update hours across every site from one dashboard.
See Pro