Build a schema.org Event JSON-LD block with dates, venue, organiser and ticket offers. Supports in-person, online and hybrid modes. Empty fields are dropped.
Google’s Event rich result shows the event name, date, and location directly in search results, a card format that appears above regular blue links for queries like “concerts near me” or “tech conferences November”. It is one of the most visually prominent rich results available and costs nothing beyond correct markup. This tool builds the complete schema.org/Event JSON-LD block from a form, validating the fields Google actually checks before emitting the output.
The generator supports all three attendance modes: in-person (a Place node with a street address), online only (a VirtualLocation with a join URL), and hybrid (both nodes). The event type selector covers 21 schema.org subtypes from MusicEvent to Hackathon; selecting MusicEvent reveals a performer field not shown for other types. Empty optional fields are omitted from the output entirely, so a minimal name-plus-date form still produces valid markup.
Load Sample fills the form with a two-day tech conference: name “DevConnect Summit 2026”, type BusinessEvent, start 2026-11-14T09:00, end 2026-11-15T18:00, venue Metro Convention Center, 221 Convention Plaza, New York NY 10001. The output includes eventStatus set to https://schema.org/EventScheduled and eventAttendanceMode set to https://schema.org/OfflineEventAttendanceMode, which are both required for the rich result. The property count badge reads 6 properties. Switch to Bare JSON when pasting into a CMS structured-data field.
2026-11-14T09:00). Without a time, only the date is emitted, which is valid for all-day events.endDate precedes startDate.https://. A relative path is caught with the error “Image URL must be absolute and start with https://.”Google requires an absolute URL; a relative one silently fails the rich result check.25.00. A currency symbol, space or comma triggers “Price must be a plain number.” Free events can pass 0 — a 0.00 offer is emitted and signals the event is free.Switching the status chip to Cancelled sets eventStatus to https://schema.org/EventCancelled in the output. Google recommends keeping the markup live with this status rather than removing the script tag, so anyone who finds the page in search still sees the cancellation notice. The same applies to postponed and rescheduled events: update the dates, update the status, and redeploy. Switch to Bare JSON when pasting into a CMS structured-data field; most CMS platforms wrap the <script type="application/ld+json"> tag themselves, so pasting a pre-wrapped block creates a double-wrapped tag that validators reject. The Script tag output is for direct HTML embeds only.
Leave price at 0 or blank for free events — a 0.00 offer is still emitted, showing the event as free.
Paste the Script tag output anywhere inside your page’s <body> or <head>. Switch to Bare JSON for CMS structured-data fields that wrap the tag themselves. Verify with Google’s Rich Results Test once your page is live. Cancelled events should keep their markup with EventCancelled status rather than removing it, so people who saved the URL still see the update.