Event Schema: Structured Data for Conferences, Webinars, and Hybrid Events
Event schema enables event pages to appear in Google's dedicated Events search experience - showing event date, location, ticket price, and attendance mode in rich result formats that stand out from standard organic listings. For in-person conferences, virtual webinars, and hybrid events alike, Event schema is the prerequisite for Google Events carousel inclusion, event-specific voice query answers, and structured AI Overview citations for event-discovery queries.
The introduction of eventAttendanceMode values (OnlineEventAttendanceMode, MixedEventAttendanceMode) in 2020 - necessitated by the pandemic pivot to virtual events - created a permanent structured data layer for virtual event discovery that Google has continued investing in. Properly declaring eventAttendanceMode is now one of the most common implementation errors, causing virtual events to fail virtual event filter eligibility.
For related schema context, see Organization Schema and FAQ Schema.
Event Rich Result Preview - In-Person, Virtual, and Hybrid
Toggle between event types to see how each displays in Google's rich result format - including the key structural differences:
AEO & AI Search Summit 2026
April 15–17, 2026
Moscone Center, San Francisco, CA
Ticket options
Early Bird: $499 (ends Feb 28)
General Admission: $799
VIP + Workshop: $1,299
Event schema enables the event date, location, and ticket price information to display in Google Search rich results and Google Events carousel
Complete JSON-LD Examples - In-Person and Virtual Events
Annotated, production-ready Event schema for both event formats - with key field differences highlighted:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "AEO & AI Search Summit 2026",
"startDate": "2026-04-15T09:00:00-07:00",
"endDate": "2026-04-17T18:00:00-07:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Moscone Center",
"address": {
"@type": "PostalAddress",
"streetAddress": "747 Howard St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94103",
"addressCountry": "US"
}
},
"image": "https://example.com/events/aeo-summit-2026.jpg",
"description": "The premier conference for AEO practitioners...",
"organizer": {
"@type": "Organization",
"name": "AEO Practitioner Network",
"url": "https://example.com"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": "799",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2026-01-15T00:00:00-07:00"
}
}eventAttendanceMode
In-person: OfflineEventAttendanceMode
Virtual: OnlineEventAttendanceMode
Critical for hybrid/virtual eligibility
location @type
In-person: Place + PostalAddress
Virtual: VirtualLocation with url
Different @type required per mode
eventStatus
In-person: EventScheduled
Virtual: EventScheduled
Update if event status changes
eventStatus Reference - All Status Values and Usage
The five eventStatus values and when to use each - including the critical update workflow for cancelled and rescheduled events:
EventScheduledEvent will proceed as planned. Default status - must be explicitly declared.
RequiredEventCancelledEvent has been cancelled. Google may still show the event listing with a cancelled label. Update as soon as possible.
EventMovedOnlineWhat was an in-person event has moved to online delivery. Keep original in-person details + add VirtualLocation.
EventPostponedEvent postponed without a confirmed new date. Do not use EventRescheduled until new date is confirmed.
EventRescheduledEvent has a confirmed new date. Update startDate and endDate with new values alongside this status.