Event schema: required vs recommended properties
Google requires three properties for event markup — a name, a start date and a location — and recommends several more, including an end date, status, image, tickets and organizer.
| Property | Status | Format | Notes |
|---|---|---|---|
| Event name | Required | Text | |
| Start date and time | Required | Date and time, ISO 8601 | |
| End date and time | Recommended | Date and time, ISO 8601 | Required for events that run over several days. |
| Attendance mode | Recommended | One of a fixed set | |
| Event status | Recommended | One of a fixed set | |
| Description | Recommended | Text | |
| Image URLs | Recommended | List | At least 720 pixels wide; 1920 is recommended. |
| Tickets | Recommended | Group | |
| Organizer name | Recommended | Text | |
| Venue name | Optional | Text | Required for events with a physical location. |
| Venue address | Optional | Group | |
| Venue address › Street address | Optional | Text | |
| Venue address › City | Optional | Text | |
| Venue address › State or region | Optional | Text | |
| Venue address › Postal code | Optional | Text | |
| Venue address › Country code | Optional | ISO 3166-1 alpha-2 code | |
| Online event URL | Optional | URL | For online or mixed events: where people join. |
| Tickets › Ticket URL | Optional | URL | |
| Tickets › Price | Optional | Number | |
| Tickets › Currency | Optional | ISO 4217 code | |
| Tickets › Availability | Optional | One of a fixed set | |
| Performer or speaker | Optional | Text | |
| Organizer website | Optional | URL |
Is Event markup eligible for a Google rich result?
Event markup can make an event eligible for an event experience in Google Search, with dates, venue and ticket links. Google requires a name, a start date and a location.
Status verified on 24 September 2026. Google’s documentation: https://developers.google.com/search/docs/appearance/structured-data/event
About Event structured data
Event markup lets Google show your event, with its date, venue and ticket link, in an event experience in Search. It is aimed at real events with a defined time and place — concerts, classes, festivals, conferences — not promotions or sales.
Online events are supported as well. Mark the attendance mode as online and give a VirtualLocation with the URL where attendees join; a mixed event lists both a Place and a VirtualLocation.
Common Event schema mistakes
- Using a date without a time. Google needs the start date and time so that it can list the event at the right hour.
- Leaving out the venue name or address for a physical event. Location needs both a name and a postal address.
- Not updating eventStatus. A cancelled or postponed event must be marked EventCancelled or EventPostponed; and when an event is rescheduled you keep the new startDate and add previousStartDate.
- Marking up an event that is not actually held: promotions, sales, discounts and non-events do not qualify.
- Pointing the ticket URL to a page that does not let people buy tickets. The offer URL must lead directly to purchase.
- Ignoring time zones. A start time with a UTC offset removes any doubt about when the event happens in the local time of the venue.
Event schema example
A two-day conference with a physical venue, a ticket offer, a speaker and an organiser, as generated on this page, is shown below.
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Lahore Web Summit 2026",
"startDate": "2026-09-18T10:00:00+05:00",
"endDate": "2026-09-19T18:00:00+05:00",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Expo Center Lahore",
"address": {
"@type": "PostalAddress",
"streetAddress": "Abdul Haque Road",
"addressLocality": "Lahore",
"addressRegion": "Punjab",
"postalCode": "54770",
"addressCountry": "PK"
}
},
"description": "Two days of talks and workshops on web performance, accessibility and search.",
"image": "https://example.com/img/summit-1920.jpg",
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": 25,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"performer": {
"@type": "Person",
"name": "Amina Rahman"
},
"organizer": {
"@type": "Organization",
"name": "Example Events",
"url": "https://example.com"
}
}How to use it
- Fill in the event details — the form marks each field Required, Recommended or Optional.
- Watch the JSON-LD and the validation list update as you type.
- Copy the JSON-LD, the HTML script tag or the Next.js snippet, or download the .json file.
- Paste it into your page, then check it with Google’s Rich Results Test.
Frequently asked questions
Which properties are required for Event schema?
A name, a start date (with time) and a location, which for a physical event needs a venue name and address. Everything else is recommended.
How do I mark up an online event?
Set the attendance mode to OnlineEventAttendanceMode and use a VirtualLocation with the URL where people join. For a hybrid event use MixedEventAttendanceMode with both a Place and a VirtualLocation.
What do I do if an event is cancelled or postponed?
Keep the markup and change eventStatus to EventCancelled or EventPostponed. If it is rescheduled, set EventRescheduled, keep the new startDate and add previousStartDate.
Can I mark up recurring events?
Create a separate Event for each occurrence, each with its own start date. Do not list several dates in one Event.
Will my event definitely appear in Google?
No. Valid markup makes it eligible, but Google decides what to show.
Valid markup makes a page eligible for a rich result; it does not guarantee one. Google decides what to show. Test your page with Google’s Rich Results Test before relying on it.