Skip to content
ZeroServer.tools

Event Schema Generator

Generate Event JSON-LD for Google Events rich results.

Event Details

Location

Organizer

Tickets & Pricing

Generated JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Event",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD"
  }
}

About Event Schema Generator

This tool generates valid Event structured data in JSON-LD format following the Schema.org specification. Embedding Event JSON-LD in your page helps Google display rich results — including event cards with dates, locations, and ticket links — directly in Search. Fill in the event details above and paste the generated script tag into the <head> of your event page.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Adding Event markup so a listing can appear in event rich results.
  • Producing the date, location and offer properties in the expected format.
  • Marking up an online event, which has a different location shape.
  • Producing consistent markup across a set of event pages.
  • Checking an event's markup still matches the page after a date or venue change.

Frequently Asked Questions

Which properties does an Event need?
`name`, `startDate` and `location` are required. `endDate`, `description`, `image`, `offers` and `performer` are strongly recommended, and `offers` with a price is what makes a ticket link appear. Without a location the item is usually dropped entirely.
How should dates be formatted?
ISO 8601, and include the timezone offset — `2026-09-01T19:00:00-05:00`. A date with no offset is interpreted as the venue's local time, which is fine for a physical event and wrong for an online one where attendees are in several zones.
How do I mark up an online event?
Set `eventAttendanceMode` to `OnlineEventAttendanceMode` and make `location` a `VirtualLocation` with the join URL. That combination was added during 2020 and is now the standard shape; a virtual event with a physical address is a contradiction search engines do flag.
What is eventStatus for?
Recording that an event was cancelled, postponed or rescheduled — `EventCancelled`, `EventPostponed`, `EventRescheduled`. Keeping it current matters more than most properties, because a stale listing for a cancelled event is worse than no listing.
Can I mark up a recurring event?
Yes, but not as one item with a repeat rule — each occurrence is its own Event with its own dates, or you use `subEvent` to nest them under a parent. Search engines surface individual dates, so a single item covering a whole season cannot be shown usefully.

Common errors and gotchas

  • Using a date without a time zone, which makes the start time ambiguous for every reader.
  • Marking up a venue rather than an event, or a category page rather than a single event.
  • Omitting the event status, which matters for anything postponed or cancelled.
  • Using a physical location shape for an online event, which needs a virtual location.
  • Leaving markup in place after the event has passed, which becomes stale rather than merely useless.

Related Web & SEO tools

Private & free — this tool runs entirely in your browser.

NamecheapRegister a domain for your next project — from $1.98/yr.affiliate