Event Schema Markup
Event markup tells Google about happenings at specific times and places — from concerts and conferences to workshops and community gatherings. Valid Event markup enables rich event listings in Google Search with date, location, and ticket information.
Eligible Rich Results
When to Use Event
Properties
| Property | Type | Status | Description |
|---|---|---|---|
| name | Text | required | The event name or title. |
| startDate | Date or DateTime | required | When the event starts. |
| endDate | Date or DateTime | recommended | When the event ends. |
| location | Place or VirtualLocation | required | Where the event takes place. |
| description | Text | recommended | Description of the event. |
| image | URL or ImageObject | recommended | Event promotional image. |
| offers | Offer | recommended | Ticket pricing and availability. |
| performer | Person or Organization | optional | Who is performing or presenting. |
| organizer | Person or Organization | recommended | Who organized the event. |
| eventStatus | EventStatusType | recommended | Scheduled, Cancelled, Postponed, etc. |
| eventAttendanceMode | EventAttendanceModeEnumeration | recommended | Online, Offline, or Mixed. |
| url | URL | recommended | Event page URL. |
| previousStartDate | Date | optional | Original start date if rescheduled. |
JSON-LD Examples
Conference
A multi-day tech conference with ticket information.
{
"@context": "https://schema.org",
"@type": "Event",
"name": "DevCon 2024",
"startDate": "2024-09-15T09:00:00-07:00",
"endDate": "2024-09-17T17:00:00-07:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Convention Center",
"address": {
"@type": "PostalAddress",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"addressCountry": "US"
}
},
"image": "https://devcon.com/2024-poster.jpg",
"description": "Three days of cutting-edge tech talks, workshops, and networking.",
"offers": {
"@type": "Offer",
"url": "https://devcon.com/tickets",
"price": "599",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2024-03-01"
},
"organizer": {
"@type": "Organization",
"name": "DevCon Inc.",
"url": "https://devcon.com"
}
} Online Webinar
A free virtual event with online attendance.
{
"@context": "https://schema.org",
"@type": "EducationEvent",
"name": "Introduction to Machine Learning",
"startDate": "2024-05-20T14:00:00-04:00",
"endDate": "2024-05-20T15:30:00-04:00",
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "VirtualLocation",
"url": "https://zoom.us/j/123456789"
},
"description": "A beginner-friendly introduction to machine learning concepts.",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"organizer": {
"@type": "Organization",
"name": "AI Learning Hub"
}
} Common Mistakes
Not including timezone offset in startDate — '2024-09-15T09:00:00' is ambiguous; use '2024-09-15T09:00:00-07:00'.
Forgetting to update eventStatus when an event is cancelled or postponed.
Using a string for location instead of a Place object with an address.
Not specifying eventAttendanceMode for virtual or hybrid events.
Setting offers.price to 'Free' instead of '0' — price must be a number.
Complete Guide to Event Schema Markup
Event schema markup enables your events to appear in Google's event listings — a dedicated search feature that shows upcoming events with dates, locations, and ticket information. For event organizers, this can be a major source of ticket sales and attendance.
The three essential properties are name, startDate, and location. Without all three, Google won't display the event rich result. For dates, always include the timezone offset to avoid ambiguity — an event at '2024-09-15T09:00:00-07:00' is unambiguous, while '2024-09-15T09:00:00' could be interpreted differently by different systems.
Since 2020, the eventAttendanceMode property has become important. Google uses it to distinguish between in-person, online, and hybrid events, and displays this information prominently in search results. For online events, use VirtualLocation with a URL for the location instead of a Place.
The eventStatus property is critical for managing cancellations and postponements. When an event is cancelled, update the status to EventCancelled but leave the event markup in place — this helps Google communicate the cancellation to people who have already seen the event listing. For rescheduled events, use EventRescheduled and add previousStartDate.
Related Types
Ready to Create Event Markup?
Use our free generator to create valid Event JSON-LD markup with a visual form. No coding required.
Open Generator