Boneyard Tools

Event Schema Generator (JSON-LD)

Fill in your event details and get valid Event JSON-LD structured data you can paste into your page. It supports in person, online and hybrid events, ticket offers, and status changes like cancelled or postponed. The script builds live in your browser, so you can copy or download it in one click.

How to generate event schema

  1. Enter the event name and ISO start date, then pick the status and whether it is in person, online or hybrid.
  2. Add the venue or online URL, plus optional ticket price, performer and organizer details.
  3. Copy the JSON-LD script and paste it into the <head> or body of your event page.

Examples

In person concert with tickets

name: Summer Jazz Festival, Offline, venue + address, price 45 USD, ticket URL
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": { "@type": "Place", "name": "...", "address": { "@type": "PostalAddress", ... } },
"offers": { "@type": "Offer", "price": 45, "priceCurrency": "USD" }

Online webinar

name: Product Webinar, Online, onlineUrl: https://example.com/live
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": { "@type": "VirtualLocation", "url": "https://example.com/live" }

Frequently asked questions

What is Event schema markup?

Event schema is structured data from the schema.org Event type that describes a happening: its name, dates, location, status and tickets. Adding it as JSON-LD lets search engines understand the event and show it in event rich results, including the date, venue and a ticket link, instead of guessing from your page text.

How do I mark an event as online, in person or hybrid?

Pick the attendance mode. In person events use an OfflineEventAttendanceMode with a Place and a postal address. Online events use an OnlineEventAttendanceMode with a VirtualLocation and the viewing URL. Hybrid events use a MixedEventAttendanceMode and include both a Place and a VirtualLocation so each audience is covered.

How should I format the start and end dates?

Use ISO 8601, for example 2026-09-12T19:00-07:00, which includes the time and time zone offset. Google strongly recommends including the time zone so the event shows correctly for users everywhere. A date alone such as 2026-09-12 is valid but less precise. The end date is optional but recommended.

How do I show a cancelled or postponed event?

Set the status field. Cancelled outputs EventCancelled and postponed outputs EventPostponed, while a normal event outputs EventScheduled. Keep the listing live with the updated status rather than deleting it, so search engines and visitors see the change instead of a missing page or a stale date.

Will this guarantee event rich results?

No. Valid markup makes your event eligible for rich results, but Google decides whether to show them based on quality, accuracy and policy. Make sure the markup matches the visible content, fill in recommended properties like location, image and offers, and validate before publishing. Markup that misrepresents the event can cause a manual action.

Is my event data sent anywhere?

No. The JSON-LD is built entirely in your browser. Nothing you type is uploaded, logged or stored, so you can draft markup for unannounced events safely.

Related tools