Why Event Schema Matters
Event structured data enables rich results in Google Search that display dates, times, venue information, ticket prices, and availability directly in the search listing. For event-driven businesses (venues, conferences, ticketing platforms, performing arts), this markup is essential. Events with rich results see significantly higher click-through rates because users can evaluate the event details without clicking through first.
Google supports Event schema for concerts, festivals, conferences, workshops, sporting events, meetups, and other scheduled gatherings. It does not support coupons or vouchers, business hours, or short-term sales as "events."
Required JSON-LD Structure
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Austin Tech Conference 2026",
"startDate": "2026-05-15T09:00:00-05:00",
"endDate": "2026-05-17T17:00:00-05:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Austin Convention Center",
"address": {
"@type": "PostalAddress",
"streetAddress": "500 E Cesar Chavez St",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
}
},
"image": "https://example.com/events/austin-tech-2026.jpg",
"description": "Three-day technology conference featuring 200+ speakers on AI, cloud infrastructure, and cybersecurity.",
"offers": {
"@type": "Offer",
"url": "https://example.com/events/austin-tech-2026/tickets",
"price": "499.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2026-01-15T08:00:00-05:00"
},
"performer": {
"@type": "Person",
"name": "Keynote Speaker Name"
},
"organizer": {
"@type": "Organization",
"name": "TechEvents Inc.",
"url": "https://example.com"
}
}
Required vs Recommended Properties
Required: name, startDate, location (or location.url for online events), eventAttendanceMode
Strongly recommended: endDate, eventStatus, image, description, offers, organizer
Omitting recommended properties will not cause validation errors but significantly reduces your chance of appearing as a rich result.
Handling Event Status Changes
Use eventStatus to communicate schedule changes without removing the schema:
EventScheduled- proceeding as planned (default)EventPostponed- delayed, new date not yet confirmed (keep originalstartDateand addpreviousStartDate)EventRescheduled- moved to a new date (updatestartDateand addpreviousStartDate)EventCancelled- no longer happening (keep the markup, change status only)EventMovedOnline- changed from in-person to virtual
Virtual and Hybrid Events
For online events, set eventAttendanceMode to OnlineEventAttendanceMode and replace the Place location with:
"location": {
"@type": "VirtualLocation",
"url": "https://example.com/events/virtual-stream-url"
}
For hybrid events, use MixedEventAttendanceMode and include both a Place and a VirtualLocation in an array.
Common Validation Errors
- Missing startDate: The most common error. Must be in ISO 8601 format with timezone offset.
- Past events: Google does not show rich results for events whose
startDatehas passed. Remove or update expired event markup. - Missing location for offline events: You must include a full
Placewith address for in-person events. - Invalid eventStatus URL: Must use the full
https://schema.org/prefix, not just the value name.
Testing and Monitoring
Validate with Google's Rich Results Test before deployment. After launch, monitor the Events enhancement report in Google Search Console for valid items, warnings, and errors. Check the Performance report filtered by "Event rich results" search appearance to measure impressions, clicks, and CTR improvements.