Event Schema Generator

100% private — runs on your device, never uploaded. Works offline once loaded.

Create standards-compliant Event structured data (JSON-LD) that helps your event appear as a rich result in Google Search. Fill in the details and copy the generated markup straight into your page.

What Event schema is and why it matters

Event structured data is a block of machine-readable JSON-LD that describes a real-world or online event: its name, when it happens, where it happens, how to get tickets, and who is running it. Search engines read this markup to understand the page beyond its visible text, which makes the page eligible for the event rich result and the event experiences shown in Google Search and Google Maps.

When implemented correctly, an event listing can appear with its date, venue, and a ticket link directly in the results, or be grouped into Google's dedicated events carousel. That extra visibility typically improves click-through, especially for time-sensitive listings where users are scanning for dates and locations at a glance.

The properties this generator produces

The tool builds a schema.org Event object with the properties Google documents for event rich results. It fills in the reference URLs correctly so validators accept the markup on the first try.

  • name, description — the human-readable title and summary of the event.
  • startDate / endDate — ISO 8601 date-times; adding a time-zone offset avoids ambiguity.
  • eventAttendanceMode — Offline, Online, or Mixed, each expressed as a full schema.org URL.
  • eventStatus — Scheduled, Rescheduled, Postponed, Cancelled, or Moved Online.
  • location — a Place with name and address for physical events, a VirtualLocation with a URL for online ones, or both for hybrid events.
  • offers — an Offer with price, currency, availability, and a ticket URL.
  • organizer — an Organization with a name and URL.

Attendance mode and location: getting it right

A common validation failure is a mismatch between the attendance mode and the location. If you mark an event as online, Google expects a VirtualLocation with a live URL; if it is in person, it expects a physical Place with a postal address. Hybrid events should include both, which is why this generator emits an array of two location objects when you pick Mixed mode.

Keep the address as a complete postal string (street, city, region, postal code, country) so it is unambiguous. If you move an in-person event online, use the Moved Online status rather than silently changing the location, so previously indexed listings update cleanly.

Testing and keeping it accurate

Structured data must reflect what a visitor actually sees on the page. Do not mark up events that are not visible on the page, and never inflate details such as availability or price. After pasting the markup, run the URL through Google's Rich Results Test and the Schema Markup Validator to confirm there are no errors or warnings.

Because event data is time-sensitive, update or remove the markup once an event ends, and keep the eventStatus current if plans change. Stale or contradictory structured data can cause Google to distrust the markup and drop the rich result.

Frequently asked questions

Does adding this schema guarantee a rich result?

No. Valid structured data makes a page eligible for rich results, but Google decides algorithmically whether to show one. Correct, complete markup that matches the visible page gives you the best chance.

Can one page contain multiple events?

Yes. You can include several separate Event JSON-LD blocks on a listing page, one per event. Generate each one here and paste them all into the page.

What currency format should the price use?

Use a three-letter ISO 4217 code such as USD, EUR, or GBP for priceCurrency, and a plain number for price (for example 30, not $30.00). The generator uppercases the currency for you.

Is the <script> wrapper required?

JSON-LD must sit inside a <script type="application/ld+json"> tag in your HTML. Keep the wrap option checked to copy ready-to-paste markup, or uncheck it if you only need the raw object for a template.

What is eventStatus for?

It communicates whether the event is scheduled, rescheduled, postponed, cancelled, or moved online. Keeping it accurate lets Google update or annotate the listing when plans change instead of showing outdated information.

Is my data sent anywhere?

No. The markup is generated entirely in your browser as you type. Nothing you enter is uploaded or stored on a server.

Advertisement