Import existing JSON-LD(paste code or read it from a URL)
Paste Event JSON-LD (any subtype, such as MusicEvent) to load it. Other events with the same name in the pasted code are loaded as extra dates.
Event details
More dates (recurring or multi-date events)
Google wants one Event per date, not one Event with many dates. Each row here becomes its own Event object with the same details and tickets.
Attendance mode *
Physical location
Tickets (one Offer per tier with a price)
Organizer & performers
Media
Google recommends 16x9, 4x3 and 1x1 crops, at least 50,000 pixels each. Two or more URLs are written as an array.
- BusinessEventMissing required name.
- BusinessEventMissing required startDate.
- BusinessEventMissing required location.
- BusinessEventRecommended: add description.
- BusinessEventRecommended: add endDate.
- BusinessEventRecommended: add image.
- BusinessEventRecommended: add offers.
- BusinessEventRecommended: add organizer.
- BusinessEventRecommended: add performer.
- Add the venue name.
- Add the venue street address. Google needs a full address.
- Pick the venue's time zone so start and end times carry a UTC offset.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BusinessEvent",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled"
}
</script>How to use
Describe the event and times
Pick the event type, add the name and description, and set start and end date and time. Choose the time zone offset and the status; Rescheduled asks for the original start date.
Set where it happens
Click Offline, Online or Mixed. Fill the venue name and street address for in-person events, or the online URL. Mixed shows both and writes two locations.
Add tickets and people, then copy
Add one tier per ticket type with price, currency, availability and URL, then the organizer and performers. Add extra dates if the event repeats, press Copy script and check it with Test in Google Rich Results Test.
Why Event Schema Generator
- Several ticket tiers, performers and image crops in one event.
- Extra dates become separate Event objects, with a weekly repeat button.
- Adds the UTC offset to every date and writes previousStartDate.
- Imports pasted Event JSON-LD and validates required fields.
Worked examples: concert, webinar and hybrid conference
The same form handles very different events. These three show which options to choose and what changes in the output.
| Event | Settings | What the JSON-LD contains |
|---|---|---|
| Concert at a club | Music Event, Offline, UTC offset of the city, two tiers (Standing 25, Balcony 40), two MusicGroup performers | Place with address, an Offer array with two prices, a performer array |
| Free webinar | Education Event, Online, price 0, one Person speaker | VirtualLocation with the stream URL, OnlineEventAttendanceMode, one Offer at 0. Not eligible for Google's event results |
| Hybrid conference | Business Conference, Mixed, venue plus stream URL, Early bird and Standard tiers | A location array with Place and VirtualLocation, MixedEventAttendanceMode, two Offers |
| Rescheduled show | Status Rescheduled, new start date, Original start date filled | EventRescheduled status plus previousStartDate |
Common questions
Which Event schema properties does Google require?
Does Google show online-only events in event results?
How do I add a time zone to Event schema dates?
How do I mark up several ticket types in one event?
What should Event schema say when an event is rescheduled?
Can Event markup list more than one performer?
What happens to Event schema when an event is cancelled?
Does Google check that event markup matches the page?
Should each date of a recurring event get its own Event block?
More Schema tools
View allAutomatic Schema Markup Generator
Crawl your site, auto-detect + generate JSON-LD for every page
Schema Markup Generator
JSON-LD or microdata for 10 types, plus a validator
FAQ Schema Generator
Build FAQPage JSON-LD by hand, paste or URL import
Article Schema Generator
Build Article, BlogPosting or NewsArticle JSON-LD