Event schema generator (JSON-LD)
A concert, conference, workshop, or meetup with a date and a place.
Rich result available: Event experience. Schema.org type Event.
Event rich results in Google
Events can appear in Google's event listings with date, venue, and ticket links. Google needs a name, a start date, and a location (a venue address, an online URL, or both).
When to use Event schema
Use on pages for concerts, conferences, classes, and webinars with a fixed schedule. Remove or update markup after the event ends.
Event properties Google requires and recommends
| Property | Status | In the form |
|---|---|---|
| name | Required | Event name |
| startDate | Required | Starts |
| attendanceMode | Recommended | Where it happens |
| location | Required | Venue |
| endDate | Recommended | Ends |
| description | Recommended | Description |
| image | Recommended | Images |
| eventStatus | Recommended | Status |
| offers | Recommended | Tickets |
| organizer | Recommended | Organizer |
| performer | Recommended | Performers or speakers |
Event JSON-LD example
This is what the builder produces from the example data. Paste it into the page's HTML, in the <head> or the body.
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Berlin Frontend Meetup #42",
"description": "Two talks on web performance, then drinks.",
"startDate": "2026-06-18T19:00",
"endDate": "2026-06-18T22:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Kulturbrauerei",
"address": {
"@type": "PostalAddress",
"streetAddress": "Schönhauser Allee 36",
"addressLocality": "Berlin",
"postalCode": "10435",
"addressCountry": "DE"
}
},
"image": [
"https://example.com/images/meetup-42.jpg"
],
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": 0,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
},
"organizer": {
"@type": "Organization",
"name": "Berlin Frontend e.V.",
"url": "https://example.com"
},
"performer": {
"@type": "Person",
"name": "Jane Doe"
}
}Event schema FAQ
- How do online events differ?
- Set eventAttendanceMode to OnlineEventAttendanceMode and use VirtualLocation with a join URL.
- What happens after the event passes?
- Update eventStatus or remove outdated markup so search results do not show stale dates.