UtilityToolsLab

© 2026 UtilityToolsLab. Built and maintained by the UtilityToolsLab Team.

Free eBooks·About·Changelog·Privacy Policy·Terms of Service·Report a bug
HomeSchema & Structured DataEvent Schema

Related Tools

LocalBusiness JSON-LDArticle SchemaFAQ SchemaBreadcrumb SchemaProduct Schema

Event Schema JSON-LD Generator

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.

You Might Also Like

All Schema & Structured Data

LocalBusiness JSON-LD

Build LocalBusiness JSON-LD with opening hours modelled properly: split shifts, merged day ranges and round-the-clock trading all come out correct.

Article Schema

Build Article, BlogPosting or NewsArticle JSON-LD with author, publisher and date properties. Flags a headline over Google's 110-character limit.

FAQ Schema

Build a schema.org FAQPage JSON-LD block from your own questions and answers, ready to paste into your page. 100% client-side, no uploads.

Breadcrumb Schema

Build a schema.org BreadcrumbList JSON-LD block from an ordered page trail, ready to paste into your page. 100% client-side, no uploads.

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.

Worked Example: DevConnect Summit 2026

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.

Edge Cases: Required Properties and What Gets Rejected

  • name is the only truly required field — the tool blocks output and emits the error “Add an event name — Google requires it to show the rich result.” without it.
  • startDate is also required. The tool accepts a date and a time in separate fields and combines them to an ISO 8601 datetime string (2026-11-14T09:00). Without a time, only the date is emitted, which is valid for all-day events.
  • endDate before startDate is caught: the tool emits “End date is before the start date.” and blocks output. Google rejects a block where endDate precedes startDate.
  • Image URL must be absolute and begin with 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.
  • Price must be a plain decimal like 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.
  • Missing location for an in-person event and missing organizer produce amber warnings rather than hard errors, because the markup stays technically valid — but Google rarely shows the full rich result without them.

When Not to Use a Script Tag: CMS Fields and Deployment Notes

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.

Event

Date & Time

Venue (in-person)

Organiser

Tickets / Offers (optional)

Leave price at 0 or blank for free events — a 0.00 offer is still emitted, showing the event as free.

  • Add an event name — Google requires it to show the rich result.
  • Add a start date — startDate is required for the Event rich result.
  • In-person events should have a venue name. Google may not show the rich result without a location.
  • No organiser name. Google recommends including an organizer for the Event rich result.
  • No end date. Without endDate Google may display the event as open-ended.

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.