Event Rich Results Schema: Complete Guide
Event rich results let Google show your events in a dedicated carousel with date, time, venue, and ticket availability — appearing at the top of search results for event-related queries. Whether you run a concert venue, conference organizer, or local events calendar, valid Event schema can significantly improve discoverability and attendance. This guide covers the required markup, date formats, virtual event handling, and how to fix the most common event schema errors.
What Are Event Rich Results?
Event rich results appear as cards in the Google Events carousel — a dedicated SERP feature that shows upcoming events matching a user's search query. Each card displays the event name, start date and time, venue or location, and sometimes ticket price or a "Get tickets" button. This feature is especially prominent for local search queries (e.g. "concerts near me this weekend") and for branded event searches. Events that appear in the carousel receive high visibility and can capture clicks from users who may not have found the event through a standard organic result.
Required Schema Markup (JSON-LD)
A minimal valid Event schema example:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "SitemapFixer SEO Summit 2026",
"startDate": "2026-09-15T09:00:00-05:00",
"endDate": "2026-09-15T17:00:00-05:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Chicago Convention Center",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Chicago",
"addressRegion": "IL",
"postalCode": "60601",
"addressCountry": "US"
}
},
"image": "https://sitemapfixer.com/images/seo-summit.jpg",
"description": "A full-day SEO conference covering technical SEO, structured data, and content strategy.",
"offers": {
"@type": "Offer",
"url": "https://sitemapfixer.com/events/seo-summit-2026",
"price": "199",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2026-04-27"
},
"organizer": {
"@type": "Organization",
"name": "SitemapFixer",
"url": "https://sitemapfixer.com"
}
}Required vs Recommended Properties
Required properties for Event rich results are name, startDate (ISO 8601 format with time and timezone), and location (for in-person events) or eventAttendanceMode set to OnlineEventAttendanceMode with a location of type VirtualLocation and a valid URL. Strongly recommended are endDate, eventStatus, image, description, offers (for ticketing), and organizer. The eventStatus field is especially important for events that may be postponed or cancelled — it prevents users from showing up to events that no longer exist.
Date and Time Format Requirements
Event dates must use ISO 8601 format. For events with a known time, include the full datetime: 2026-09-15T09:00:00-05:00. The timezone offset (-05:00 or Z for UTC) is required — events without a timezone offset may not appear in local time-based queries. For all-day events where time is unknown, use just the date: 2026-09-15. Do not use plain text like "September 15, 2026 at 9am" — this will fail validation. Verify your datetime strings in the Rich Results Test if events are not appearing in results.
Virtual and Hybrid Events
For online-only events, set eventAttendanceMode to https://schema.org/OnlineEventAttendanceMode and use a VirtualLocation with a url pointing to the event stream or registration page. For hybrid events (both in-person and online), set eventAttendanceMode to https://schema.org/MixedEventAttendanceMode and provide both a Place location and a VirtualLocation. Virtual event support was added by Google during 2020 and is now a standard part of the Events rich result feature — omitting it for online events causes the location display to be incorrect or missing.
Handling Cancelled or Postponed Events
When an event is cancelled or postponed, update the eventStatus field immediately. Use https://schema.org/EventCancelled for cancelled events, https://schema.org/EventPostponed for postponed events without a new date, or https://schema.org/EventRescheduled when a new date is confirmed (update startDate accordingly and add previousStartDate for the original date). Do not delete cancelled event pages — keeping them with EventCancelled status prevents confusion and allows Google to show the cancellation notice, protecting your users and your brand reputation.
How to Test Event Schema
Use the Rich Results Test (search.google.com/test/rich-results) to validate event schema on individual pages. Check Google Search Console under Enhancements > Events for site-wide coverage. One useful manual check: search Google for your event name or "[your brand] events" — if the event carousel is working correctly, your events will appear. If they are missing, investigate using URL Inspection in Search Console to confirm the page has been indexed recently and that the structured data was detected. Note that past events are automatically removed from the Events carousel.
Common Mistakes and How to Fix Them
Frequent event schema errors: missing timezone in startDate (fix: always include offset like -05:00); location provided as a plain string instead of a Place object (fix: use the full Place schema with PostalAddress); eventStatus not updated when events change (fix: implement a workflow to update schema when event details change); using the same event page URL for recurring events instead of separate URLs for each occurrence (fix: create individual pages per occurrence); and omitting offers for paid events (fix: always include an Offer if ticket purchase is required, with the ticket URL).
Recurring Events and Event Series
For recurring events (weekly yoga class, monthly meetup), Google recommends creating individual event pages for each occurrence rather than a single page with a recurring event schema. Each occurrence gets its own URL and Event schema with the specific date. This approach improves crawlability and ensures each event can independently appear in the Events carousel for the relevant date range. For concert or sports series, you can also use an EventSeries type to group related events, but individual Event schemas for each occurrence remain the most reliable path to rich results visibility.