Event schema generator
Mark up concerts, workshops, meetups and festivals so Google can list them with date, venue and ticket information.
Required
4/4
Recommended
14/16
All Google-required properties present. That makes the page eligible, not guaranteed. Google's docs
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "EducationEvent",
"name": "Structured Data Clinic: Product Markup",
"description": "A hands-on evening fixing real merchant-listing warnings. Bring a laptop and a product page.",
"image": "https://example.com/img/clinic-16x9.jpg",
"startDate": "2026-11-12T18:30:00+01:00",
"endDate": "2026-11-12T21:00:00+01:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Kulturhaus Mitte",
"address": {
"@type": "PostalAddress",
"streetAddress": "Auguststraße 21",
"addressLocality": "Berlin",
"postalCode": "10117",
"addressCountry": "DE"
}
},
"offers": {
"@type": "Offer",
"url": "https://example.com/clinic/tickets",
"price": 25,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-09-01"
},
"organizer": {
"@type": "Organization",
"name": "Berlin SEO Meetup",
"url": "https://example.com/meetup"
}
}
</script>When to use Event markup
- A page for one event that people can attend at a set time and place.
- Each date of a recurring event gets its own Event.
- Not for promotions, sales or vouchers, which Google's guidelines exclude.
Getting it right
- Required: name, startDate, location and location.address. Recommended: description, endDate, eventStatus, image, offers, organizer and performer.
- Always include the time-zone offset (e.g. 2026-11-12T18:30+01:00).
- If an event moves, keep the markup and set eventStatus to EventRescheduled with previousStartDate, or EventPostponed if no new date is set.
- Use an absolute ticket URL that leads straight to purchase.
Source: Google Search Central, Event structured data documentation, and schema.org/Event.
Google's property list
| Property | Google says |
|---|---|
name | required |
startDate | required |
location | required |
location.address | required |
description | recommended |
endDate | recommended |
eventStatus | recommended |
image | recommended |
offers | recommended |
offers.availability | recommended |
offers.price | recommended |
offers.priceCurrency | recommended |
offers.url | recommended |
offers.validFrom | recommended |
organizer | recommended |
organizer.name | recommended |
organizer.url | recommended |
performer | recommended |
performer.name | recommended |
location.name | recommended |
Example output
{
"@context": "https://schema.org",
"@type": "EducationEvent",
"name": "Structured Data Clinic: Product Markup",
"description": "A hands-on evening fixing real merchant-listing warnings. Bring a laptop and a product page.",
"image": "https://example.com/img/clinic-16x9.jpg",
"startDate": "2026-11-12T18:30:00+01:00",
"endDate": "2026-11-12T21:00:00+01:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Kulturhaus Mitte",
"address": {
"@type": "PostalAddress",
"streetAddress": "Auguststraße 21",
"addressLocality": "Berlin",
"postalCode": "10117",
"addressCountry": "DE"
}
},
"offers": {
"@type": "Offer",
"url": "https://example.com/clinic/tickets",
"price": 25,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-09-01"
},
"organizer": {
"@type": "Organization",
"name": "Berlin SEO Meetup",
"url": "https://example.com/meetup"
}
}Event schema questions
Can I mark up online events?
schema.org supports VirtualLocation and eventAttendanceMode. Google's current Event docs are built around a Place with an address, so an online-only event may not get the event experience.
What happens to a cancelled event?
Set eventStatus to EventCancelled and keep the page live, so people searching for it see that it was cancelled.
Should I mark up a list of events on one page?
Each event should have its own details page with its own markup. A listing page may carry markup too if each event links to its page.