Event
Event markup covers anything with a start date, an end date, and a location. Conferences, concerts, workshops, theatrical performances, classes, festivals, all of it. It powers Google's Event rich result, which surfaces as a dedicated card above regular search results for event queries.
One gotcha worth calling out early: since 2020 Google requires eventAttendanceMode on every Event that wants the rich result. Set it to OfflineEventAttendanceMode, OnlineEventAttendanceMode, or MixedEventAttendanceMode. The Common Mistakes section below covers this and a couple of other easy-to-miss requirements.
Full example of schema.org/Event json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"@id": "https://xoocode.com/xoocon-2018/#Event",
"name": "XooCon 2018",
"url": "https://xoocode.com/xoocon-2018/",
"sameAs": "https://wikipedia.org/Event/XooCon2018/",
"description": "Come together for the coding even of the year at XooCon 2018!",
"alternateName": "Xoo Code Convention 2018",
"image": "https://xoocode.com/images/xoocode-1018-promo-image-front.jpg",
"location": {
"@id": "https://xoocode.com#thunderdome",
"@type": "Place",
"name": "Kopenhagen Thunderdome",
"url": "https://thunderdome.dk/",
"address": "Thunderdome vej 12"
},
"maximumAttendeeCapacity": "3000",
"remainingAttendeeCapacity": "512",
"organizer": {
"@type": "Organization",
"name": "Xoo Code Inc.",
"url": "https://xoocode.com"
},
"offers": [
{
"@id": "https://xoocode.com/shop/events/xoocon-2018-single-day-ticket",
"name": "XooCon Day Pass",
"availability": "https://schema.org/InStock",
"price": "995",
"priceCurrency": "DKK",
"validFrom": "2018-04-20",
"url": "https://xoocode.com/shop/events/xoocon-2018-single-day-ticket"
},
{
"name": "XooCon Full Pass",
"availability": "https://schema.org/InStock",
"price": "1495",
"priceCurrency": "DKK",
"validFrom": "2018-04-20",
"url": "https://xoocode.com/shop/events/xoocon-2018-full-pass-ticket"
},
{
"@id": "https://xoocode.com/shop/events/ict-year-ticket",
"name": "Tour Year Pass",
"availability": "https://schema.org/InStock",
"price": "595",
"priceCurrency": "EUR",
"validFrom": "2018-01-04",
"url": "http://internationalcodetour.com/shop/year-pass"
}
],
"identifier": "XC-ID-2018",
"potentialAction": "Participation",
"typicalAgeRange": "24-40",
"subjectOf": "https://youtube.com/XooCon2018-promo-video/",
"about": "Programming Code",
"attendee": [
{
"@id": "https://xoocode.com#attendee-github",
"@type": "Organization",
"name": "GitHub Inc."
},
{
"@id": "https://xoocode.com#attendee-safra-cruz",
"@type": "Person",
"name": "Safra Catz",
"jobTitle": "CEO",
"worksFor": {
"@type": "Organization",
"name": "Oracle Inc."
}
}
],
"audience": {
"audienceType": "Programmers",
"geographicArea": {
"@type": "AdministrativeArea",
"address": "Denmark"
}
},
"contributor": [
{
"@id": "https://xoocode.com#xoo-partner1",
"@type": "Organization",
"name": "Xoo Partner 1"
},
{
"@type": "Organization",
"name": "Xoo Partner 2"
}
],
"performer": {
"@id": "https://xoocode.com#attendee-safra-cruz"
},
"workFeatured": "Schema Examples 2018",
"startDate": "2018-04-20",
"endDate": "2018-04-21",
"doorTime": "2018-04-20T10:00:00",
"duration": "P2D",
"eventStatus": "https://schema.org/EventRescheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"previousStartDate": "2018-03-10",
"funder": {
"@id": "https://xoocode.com#funder-microsoft-global",
"@type": "Organization",
"name": "Microsoft Global"
},
"inLanguage": "da",
"isAccessibleForFree": true,
"subEvent": {
"@type": "Event",
"name": "Schema Coder of the Year 2018",
"description": "Award ceremony honoring the most prominent markup coder of the year 2018",
"url": "https://xoocode.com/events/scy2018/",
"location": {
"@id": "https://xoocode.com#thunderdome"
},
"startDate": "2018-04-20",
"endDate": "2018-04-20",
"offers": {
"@id": "https://xoocode.com/shop/events/xoocon-2018-single-day-ticket"
},
"performer": {
"@id": "https://xoocode.com#funder-microsoft-global"
},
"image": "https://xoocode.com/images/scy-2018.jpg"
},
"superEvent": {
"@type": "Event",
"name": "Code Tour 2018",
"description": "The official grand coding tour for the year 2018 kicks off in January and tours 14 locations throughout the year!",
"url": "http://internationalcodetour.com",
"location": {
"@id": "https://xoocode.com#thunderdome"
},
"startDate": "2018-01-04",
"endDate": "2018-12-20",
"offers": {
"@id": "https://xoocode.com/shop/events/ict-year-ticket"
},
"performer": {
"@id": "https://xoocode.com#funder-microsoft-global"
},
"image": "https://xoocode.com/images/code-tour-main-image-2018.jpg"
},
"translator": {
"@type": "Organization",
"name": "Intl. Translator Services Inc.",
"url": "http://itsi.com"
}
}
</script>Rich result preview
Approximate preview of what Google may render from this markup. Hover any element inside the card to see which JSON-LD path produced it. Google decides whether to show any rich result. Markup makes you eligible, not guaranteed.
XooCon 2018
Minimal valid version
The smallest markup that still produces a valid Event entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "XooCon 2018",
"startDate": "2018-04-20",
"endDate": "2018-04-21",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Kopenhagen Thunderdome",
"address": {
"@type": "PostalAddress",
"streetAddress": "Thunderdome vej 12",
"addressLocality": "Kopenhagen",
"addressCountry": "DK"
}
},
"image": "https://xoocode.com/images/xoocode-1018-promo-image-front.jpg",
"description": "Come together for the coding event of the year at XooCon 2018!"
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsEvent rich resultprimary
Common Event mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
eventStatus as a plain string instead of a URL enum
Wrong"eventStatus": "Scheduled"Right"eventStatus": "https://schema.org/EventScheduled"Google requires full schema.org URL enums for eventStatus. The valid values are EventScheduled, EventRescheduled, EventPostponed, EventMovedOnline, and EventCancelled, each prefixed with https://schema.org/.
- 02
Missing eventAttendanceMode after 2020
WrongEvent with only location and no eventAttendanceModeRight"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode"Google introduced eventAttendanceMode during the pandemic and now treats its absence as a quality signal. Set it to OfflineEventAttendanceMode, OnlineEventAttendanceMode, or MixedEventAttendanceMode. Required for the Event rich result since 2020.
- 03
location as a string instead of Place + PostalAddress
Wrong"location": "Kopenhagen Thunderdome, Denmark"Right"location": { "@type": "Place", "name": "Kopenhagen Thunderdome", "address": { "@type": "PostalAddress", "streetAddress": "Thunderdome vej 12", "addressLocality": "Kopenhagen", "addressCountry": "DK" } }Google's Event rich result requires location.address with at least streetAddress, addressLocality, and addressCountry. A flat string will validate but the rich result will not appear.
Schema properties in this example
Also mentioned in 22 other examples
Event also appears in ArtGallery, BookStore, BroadcastEvent, Cemetery, CityHall, CompoundPriceSpecification, ConferenceEvent, EntertainmentBusiness, and 14 more. See the full Event schema page for every reference.
About the example data
The example is XooCon 2018, a fictional developer conference in Copenhagen, and follows the schema.org/Event vocabulary. It demonstrates events with multiple ticket tiers (via the offers array), nested sub-events, sponsors, speakers, and the ISO 8601 duration format for doorTime and duration.
Comments
Loading comments...