Guide : Event Schema
How to implement schema.org/Event markup pour Google's event résultats enrichis — requis properties (nom, startDate, emplacement), pourquoi virtual-only events aren't eligible, the four eventStatus valeurs, and the one-event-one-URL rule.
Langues
1 indice probant sur cette page
- Outil en ligne associéSchema Markup Validator
Event schema (schema.org/Event) is données structurées — usually JSON-LD — que indique moteur de recherches an event's nom, date, emplacement, and ticketing details so an individual event page peut qualify pour Google's event rich result. Google exige exactly three properties: nom, startDate, and emplacement. The unique biggest myth to bust: as of Google's current (December 2025) docs, virtual-only events aren't eligible pour the event rich result — 'Virtual experiences que have aucun real-world component aren't pris en charge. Events doit prendre placer in a physical emplacement.' Que contradicts a lot of still-circulating 2020 pandemic-era advice que treats eventAttendanceMode=OnlineEventAttendanceMode and VirtualLocation as sufficient on leur propre; ceux properties are encore valid schema.org but don't unlock the rich result pour an online-only event. Autre load-bearing rules: chaque event nécessite its propre unique leaf-page URL (listing pages don't qualify), vous doit jamais strip startDate or emplacement quand updating eventStatus (EventScheduled, EventCancelled, EventPostponed, EventRescheduled), and marking up sales, coupons, or non-events has historically triggered manual actions. Valid markup seulement rend vous eligible; Google encore decides si to montrer it.
TL;DR — Event schema is code vous ajouter to an event page que étiquettes the event details pour moteur de recherches — “this is the event name,” “ce is quand it starts,” “ce is où it’s held,” “here’s how to obtenir tickets.” Ajout it correctement to an individual event page peut faire it eligible pour Google’s richer event listings. The catch la plupart guides obtenir incorrect: Google’s event rich result nécessite a réel, physical emplacement — a purely online-only event isn’t eligible, aucun matter how vous mark it up.
Ce que Event schema is
Quand vous regarder at an event page, vous pouvez tell the event nom from the date from the
venue simplement by reading. A moteur de recherche sees plain text and has to guess.
Event schema spells it out in code, en utilisant the shared
schema.org vocabulary — it tags chaque piece of lune page
with ce que it en réalité is: the name of the event, the startDate, the
location, ticket offers, who’s performing, and who’s organizing.
It’s almost toujours written as JSON-LD — a petit block of code que sits in the page sans modification how lune page semble.
Pourquoi it’s worth doing
The payoff is the event rich result: the enhanced, visually rich listing (and the dedicated event-search experience) Google montre pour event-related searches. Une page with clean Event markup peut earn a plus eye-catching listing que montre the date, venue, and ticket info correct in le résultats — qui peut aider it stand out. The même structured markup donne AI systems a cleaner, unambiguous lire on the event’s details aussi, though I don’t have données showing que reliably translates into plus AI-sourced trafic or citations pour quelconque particulier event page.
The three choses vous doit have
To be eligible at tout, Google exige exactly three properties:
- nom — the complet title of the event (pas the venue, and pas a promo comme “50% off tickets”).
- startDate — quand it starts, with the date and temps.
- emplacement — où it’s held, as a
Placewith a nom and an adresse.
Au-delà ceux, it’s worth ajout the recommended details — an endDate, an
image, ticket offers (price, currency, availability), the performer, and the
organizer — parce que ils faire the listing richer and plus utile.
The chose la plupart personnes obtenir incorrect
A purely virtual, online-only event isn’t eligible pour Google’s event rich result. Google’s current documentation is blunt à propos de it: events “doit prendre placer in a physical emplacement.” A lot of advice encore floating autour from 2020 — quand Google ajouté online-event properties during the pandemic — rend it sound comme flipping an “online event” switch is suffisant. It isn’t, pour Google’s rich result. Ceux online-event properties encore exist and are valid, but on leur propre ils don’t obtenir a webinar into the event experience.
Two plus beginner traps:
- Un event, un page. Mark up individual event pages — pas une page que listes tout votre upcoming events. A listing/calendar page doesn’t qualify.
- Valid markup ≠ guaranteed rich result. It rend vous eligible; Google encore decides si to afficher it.
- Don’t fake events. Marking up a sale, a coupon, or votre business hours as an “event” is contre Google’s rules and has gotten sites in trouble.
Vouloir the complet version — the required-vs-recommended property split, how to handle canceled and postponed events, multi-day vs. multi-performance events, and the content rules que obtenir events disapproved? Switch to the Avancé tab.
TL;DR — schema.org/Event markup (usually JSON-LD) on an individual event page peut faire it eligible pour Google’s event rich result. Google exige three properties:
name,startDate,location. The load-bearing fact of ce whole topic: per Google’s current (Dec 2025) docs, virtual-only events aren’t pris en charge — “Events must take place in a physical location.”eventAttendanceModeandVirtualLocationare valid schema.org (ajouté in the 2020 COVID era) but don’t unlock the rich result pour an online-only event. Autre rules personnes miss: un event = un unique leaf URL (listing pages don’t qualify); quand vous modifiereventStatus(EventScheduled / EventCancelled / EventPostponed / EventRescheduled) vous doit jamais stripstartDateorlocation; multi-day is unEvent, multiple ticketed performances are separateEvents; and marking up sales, coupons, or non-events is contre policy and has drawn manual actions. Valid markup seulement earns eligibility.
Ce que Event schema fait — and ce que it doesn’t
Event schema is the schema.org/Event vocabulary vous put on an event page so search engines peut lire the event’s nom, timing, emplacement, and ticketing. On Google, correctement implemented markup on an individual event page rend it eligible pour the event rich result — the enhanced listing and the dedicated event-search experience Google runs pour event-related requêtes.
Ce que it doesn’t do: it isn’t a ranking factor, and it isn’t a magic switch. Comme every kind of données structurées, it rend une page eligible pour a spécifique search fonctionnalité — it doesn’t lift votre organic positions and it doesn’t guarantee the fonctionnalité montre. Evidence for this claim Google's event feature excludes promotional non-events and requires each event to have a unique page focused on that event. Scope: Google Search Event content guidelines; valid Schema.org markup alone does not establish eligibility. Confidence: high · Verified: Google: Event structured data
Requis properties: nom, startDate, emplacement
Google is explicit que vous doit inclure the requis properties: “Vous doit inclure the requis properties pour votre content to be eligible pour afficher in enhanced résultats de recherche.” Pour Event, that’s three:
name(Text) — the complet title of the event. Google’s rule is spécifique: don’t utiliser the nom of the venue as the event nom (that’s ce quelocation.nameis pour), don’t utiliser the type of event (“Concert” n’est pas a descriptive nom), and don’t stuff it with URLs, prices, performers, or “short-term promotions (pour exemple, ‘buy votre tickets now’).” Google’s propre avant/après: pas “Bill Graham Civic Auditorium” and pas “LIMITED TEMPS SALE - Kesha and Macklemore Concert - 25 USD”, but “The Adventures of Kesha and Macklemore” or “Meet and Greet: Kesha and Macklemore.”startDate(DateTime) — “The commencer date and commencer temps of the event in ISO-8601 format. Ajouter les deux the date and temps so utilisateurs peut trouver events que fit into leur schedule.”location(Placer) — définir@typetoPlaceand ajouterlocation.nameandlocation.address. Google’s steer on the adresse: be spécifique — pas simplement “Sydney” but “Bennelong Point, Sydney NSW 2000, Australia.” And its best-practice notes pour tricky cas: “Si the event se produit à travers several streets, define the starting emplacement and mention the complet details in description. Si the event se produit sans a well-defined emplacement, utiliser the city nom or the la plupart representative emplacement. Si the event se produit at multiple locations at the même temps, créer différent events pour chaque emplacement.”
Recommended properties que améliorer le résultat
Au-delà the requis three, ces faire the listing fuller and are worth ajout:
endDate— même ISO-8601 format asstartDate.eventStatus— the scheduled/canceled/postponed/rescheduled state (voir the dedicated section ci-dessous).image— Google’s general image guidance s’applique; provide multiple images at 1x1, 4x3, and 16x9 aspect ratios.offers(anOffer) —url,price,priceCurrency,availability(e.g.InStock,SoldOut,PreOrder), andvalidFrompour quand tickets go on sale.performer(Person / PerformingGroup) andorganizer(Organization / Person, withnameandurl).description— Google’s guidance: “Focus on the event details and pas votre site’s fonctionnalités. Don’t repeat autre facts comme date and emplacement; à la place, ajouter que information to the respective properties.” Remarque it seulement montre a snippet.
Virtual and hybrid events: ce que Google’s current docs en réalité dire
Ce is the section que separates current guidance from the recycled 2020 advice encore tout over the web, so lire it carefully.
Google’s current documentation states, verbatim: “Virtual experiences que have aucun real-world component aren’t pris en charge. Events doit prendre placer in a physical emplacement.” Que signifie a purely virtual, online-only event has aucun chemin into Google’s event rich result — regardless of how vous mark it up.
Evidence for this claim Google's current Event rich-result documentation says purely virtual events without a real-world component are not supported. Scope: Google Search Event rich-result requirements; Schema.org still defines online-attendance and VirtualLocation vocabulary. Confidence: high · Verified: Google: Event structured dataHere’s the nuance que trips personnes up. Back in March 2020, at the commencer of the
pandemic, Google announced nouveau Event
properties
so publishers pourrait communicate que events had déplacé online or been canceled: an
eventAttendanceMode (with OnlineEventAttendanceMode /
OfflineEventAttendanceMode / MixedEventAttendanceMode valeurs), the
eventStatus valeurs, and prise en charge pour VirtualLocation. Ceux properties are
encore valid schema.org vocabulary — nobody supprimé les. But the current
Search Central Event doc ne … plus documents an online-event exemple and states
outright que virtual-only events aren’t pris en charge pour the rich result.
So the honest, current position:
- A physical emplacement is the anchor. Virtual and hybrid events probable encore besoin a real-world emplacement component to qualify pour the event experience — parce que Google exige que physical emplacement.
eventAttendanceModeandVirtualLocationaren’t useless — they’re legitimate markup pour a hybrid event que fait have a réel venue, and they’re utile pour autre consumers of the données (votre propre systems, autre moteur de recherches, and AI/LLM understanding). Ils simplement don’t, by themselves, obtenir an online-only event into Google’s rich result.- Si vous run webinars or online-only events, don’t expect the event rich result. Utiliser the markup pour machine-readability si vous comme, but plan votre visibility autour the rest of votre SEO, pas the event experience.
I vouloir to be precise ici plutôt que sensational: ce is pas “virtual events
are banned.” It’s que a virtual event with aucun real-world component isn’t
eligible pour the spécifique event rich result. La plupart of the competing content on ce
topic encore treats OnlineEventAttendanceMode as a live Google fonctionnalité que obtient
an online event into the rich result on its propre. Straight from Google’s current
docs, that’s pas Comment cela fonctionne.
Handling event status: EventScheduled, EventCancelled, EventPostponed, EventRescheduled
eventStatus takes un of four valeurs, and there’s un rule que dwarfs the rest:
jamais supprimer startDate or location quand the status changements. Google warns:
“Quand the event status changements, DON’T supprimer the startDate. The startDate
property is requis to aider identifier the unique event.”
Si vous don’t définir eventStatus at tout, Google treats the event as EventScheduled
(the normal, going-ahead state). The autre three:
EventCancelled— the event won’t se produire. Google: “Don’t supprimer or modifier autre properties (Par exemple, don’t supprimerstartDateorlocation); à la place, garder tout valeurs as the même as ils were avant the cancelation, and mettre à jour theeventStatustoEventCancelled. Pourquoi? Properties commestartDateandlocationaider identifier the unique event and assurez-vous personnes comprendre the nouveau status of the event.”EventPostponed— it va se produire, but the nouveau date isn’t connu yet. Google: “The event has been postponed to a plus tard date, but the date isn’t connu yet. Garder the original date in thestartDateof the event jusqu’à vous know quand the event va prendre placer. Une fois vous know the nouveau date information, modifier theeventStatustoEventRescheduledand mettre à jour thestartDateandendDatewith the nouveau date information.”EventRescheduled— a nouveau date is confirmed. Google: “The event has been rescheduled to a plus tard date. Mettre à jour thestartDateandendDatewith the relevant nouveau dates. Optionally, vous pouvez aussi mark theeventStatusfield as rescheduled and ajouter thepreviousStartDate.”
The distinction personnes la plupart souvent blur: EventPostponed and EventCancelled are
pas interchangeable. Cancelled signifie it’s off; postponed signifie it’s happening
plus tard on a date vous don’t know yet — and vous devez upgrade postponed to
rescheduled (with previousStartDate) une fois vous do know.
Un event, un URL — pourquoi listing pages don’t qualify
Google is unambiguous: “Chaque event DOIT have a unique URL (a leaf page) and markup on que URL,” and “The event experience on Google seulement supports pages que focus on a unique event. We recommend focusing on ajout markup to votre event posting pages au lieu de pages que liste schedules or multiple events.”
Evidence for this claim Google's event feature excludes promotional non-events and requires each event to have a unique page focused on that event. Scope: web Confidence: high · Verified: Event structured dataCe is un of the la plupart courant implementation mistakes pour venues and ticketing platforms — marking up a calendar or “upcoming events” listing page and expecting a rich result pour chaque event on it. Que page doesn’t qualify. Chaque event nécessite its propre dedicated page with its propre markup.
Multi-day events vs. multiple performances
Ces are handled differently, and it trips up a lot of implementations:
- A unique event que spans several days → un
Eventwith thestartDateandendDatecovering the range. Google: “Si votre event or ticket info is pour an event que runs over several days, specify les deux the commencer and fin dates of the event.” - Multiple distinct ticketed performances à travers days → a separate
Eventpour chaque. Google: “Si là are several différent performances à travers différent days, chaque with individual tickets, ajouter a separateEventelement pour chaque performances.”
Pour genuinely recurring series, schema.org has EventSeries and eventSchedule
properties. They’re valid markup — but I’d treat les as “valid schema.org,
unconfirmed rich-result impact” plutôt que a guaranteed chemin to the event
experience. Quand in doubt, follow Google’s documented pattern: un Event per
performances.
Content policies — ce que obtient events disapproved (and manually actioned)
Event markup has a réel spam-enforcement history, so ce isn’t hypothetical. Google exige que “Chaque event doit accurately décrire the event nom, commencer date, and emplacement,” and it spells out ce que pas to mark up as an event:
- Non-events. Google: *“Don’t promote non-event products or services tel as
‘Trip package: San Diego/LA, 7 nights’ as events. Don’t ajouter short-term discounts
or purchase opportunities, tel as: ‘Concert — buy votre tickets now,’ or ‘Concert
- 50% off jusqu’à Saturday.’ Don’t mark business hours as events, tel as: ‘Adventure park ouvrir 8 AM to 5PM.’ Don’t mark coupons or vouchers as events, tel as: ‘5% off votre premier order.’”*
- Membership/invitation-only events. Google: “Events doit be bookable to the general public. Events que exiger a membership, or invitation prior to purchasing the ticket or attending the event are ineligible pour the event experience.”
- School/minors on-premise events. Google: “Spectator events où the principal participants and audience are minors and occur on-premise of a school aren’t eligible pour the event experience.”
And là are teeth behind ce. Google: “Si votre site violates un or plus of ces guidelines, alors Google may prendre manual action contre it. Une fois vous have remedied the problem, vous pouvez submit votre site pour reconsideration.” Ce isn’t theoretical — Google was reported to have issued manual actions contre sites en utilisant Event markup to promote sales and coupons plutôt que genuine events, qui is exactly the “don’t add short-term discounts” and “don’t mark coupons as events” guidance ci-dessus. (I’d vérifier the specifics contre a principal source avant treating quelconque particulier cas as canonical — the enforcement pattern is bien established regardless.)
Date and temps formatting
Utiliser ISO-8601, and inclure the timezone offset. Google’s guidance: specify the
timezone by notamment the UTC/GMT offset — an event at 7pm on September 5 in Nouveau
York devrait carry the -04:00 or -05:00 offset. Pour a genuinely day-long event
où the hour is unknown or irrelevant, utiliser the date seulement (aucun temps). And don’t
fake a midnight commencer: a valeur comme 2019-08-15T00:00:00+00:00 pour an event whose
commencer temps vous don’t en réalité know reads to Google as literally midnight, qui is
almost certainly incorrect.
Event subtypes: base Event vs. MusicEvent, BusinessEvent, etc.
schema.org has subtypes — MusicEvent, BusinessEvent, EducationEvent,
SportsEvent, and plus. Vous don’t have to utiliser les: the base Event type is
valid and sufficient, and Google’s documented requis/recommended properties appliquer
the même façon regardless. Subtypes ajouter plus spécifique semantic tagging si vous vouloir
it, but “you must use MusicEvent” is a myth — base Event is fine.
Bing and Event schema
Bing doesn’t publish an Event-specific structured-data aider page the façon Google fait. Its general référence — Marking Up Votre site with Structured Données — confirms Bing supports the schema.org vocabulary broadly (along with Microdata, RDFa, and Ouvrir Graph), sans Event-specific requis/recommended property listes. I’m pas going to invent Bing Event prise en charge que doesn’t have a documentation page behind it. The honest framing: Bing rewards well-formed schema.org markup généralement and won’t punish vous pour notamment Event schema, but it has aucun equivalent of Google’s dedicated event rich-result/search experience. So the principal motivation pour Event markup remains Google — plus general machine-readability pour AI/LLM consumption.
Validating and troubleshooting
Validate the markup with Google’s Résultats enrichis Tester, and monitor the Events report and enhancements in Search Console. A remarque on regional availability: Google’s event search experience is disponible in a spécifique définir of countries/languages, and que liste changements — vérifier the current availability directement on Google’s docs page at the temps vous implement, plutôt que trusting a stale liste.
Où ce sits
Event schema is un of the Social & Community schema types in the broader structured-data picture, alongside markup comme DiscussionForumPosting, FAQPage, HowTo, QAPage, and SoftwareApplication. Pour the vocabulary as a whole and how ces pieces fit ensemble, voir the broader Balisage de données structurées and Données structurées hubs ce article nests sous.
AI summary
A condensed prendre on the Avancé version:
- Ce que c’est:
schema.org/Eventmarkup (usually JSON-LD) on an individual event page que étiquettes the event’s nom, date, emplacement, and ticketing so lune page peut qualify pour Google’s event rich result and event-search experience. - Requis properties (three):
name,startDate,location.nameis the event title (pas the venue, pas the event type, aucun promos);startDateis ISO-8601 with date and temps;locationis aPlacewith a nom and a spécifique adresse. - The load-bearing myth-bust: per Google’s current (Dec 2025) docs,
virtual-only events aren’t pris en charge — “Events doit prendre placer in a physical
emplacement.”
eventAttendanceModeandVirtualLocationare valid schema.org (ajouté March 2020, COVID era) but don’t obtenir an online-only event into the rich result on leur propre. Hybrid/virtual events probable encore besoin a real-world emplacement component. - Un event = un unique leaf URL. Listing/schedule/calendar pages with multiple events don’t qualify.
eventStatus(four valeurs): par défautEventScheduled;EventCancelled(off),EventPostponed(happening plus tard, date unknown),EventRescheduled(nouveau date définir, ajouterpreviousStartDate). Jamais stripstartDateorlocationquand the status changements.- Multi-day vs. multi-performance: a unique multi-day event is un
EventwithstartDate/endDate; multiple ticketed performances are a separateEventchaque.EventSeries/eventScheduleare valid but unconfirmed pour the rich result. - Content policy has teeth: don’t mark up sales, coupons, business hours, or autre non-events; membership/invitation-only and school-minors-on-premise events are ineligible; violations peut draw manual actions.
- Dates: ISO-8601 with timezone offset; date-only pour day-long events; don’t fake a midnight commencer.
- Subtypes optional: base
Eventis valid and sufficient —MusicEvent,BusinessEvent, etc. ajouter semantics but aren’t requis. - Bing: aucun dedicated Event doc; supports schema.org broadly; aucun event rich result. Principal motivation pour Event markup is Google (plus AI/LLM readability).
- Eligibility ≠ afficher: valid markup seulement rend lune page eligible; Google encore decides si to montrer it.
Documentation officielle
Primary-source documentation from the moteur de recherches.
- Event (Event) données structurées — the authoritative référence: requis/recommended properties,
eventStatus, the one-event-one-URL rule, content policies, and the virtual-events statement. (Footer: “Last updated 2025-12-10 UTC.”) - Nouveau properties pour virtual, postponed, and canceled events (March 2020) — the COVID-era rollout of
eventAttendanceMode,eventStatus, andVirtualLocation. Utile pour understanding pourquoi so beaucoup virtual-event advice exists — and pourquoi the current docs have déplacé on. - General Données structurées Guidelines — le site-wide structured-data policies (accuracy, aucun spam) que Event markup doit aussi follow.
- Résultats enrichis Tester — validate Event markup and vérifier rich-result eligibility.
Schema.org (the vocabulary)
- schema.org/Event — the complet Event type référence and its properties.
- schema.org/eventAttendanceMode — the online/offline/mixed attendance-mode property (valid vocabulary, pas sufficient alone pour Google’s rich result).
- schema.org/EventSeries and schema.org/eventSchedule — the recurring-series vocabulary (valid markup, unconfirmed rich-result impact).
Bing / Microsoft
- Marking Up Votre site with Données structurées — Bing’s general structured-data prise en charge (schema.org, JSON-LD, Microdata, RDFa). Remarque: Bing has aucun dedicated Event structured-data documentation.
Quotes from the source
On-the-record statements from Google’s documentation. Chaque lien is a deep lien que jumps to the quoted passage on the source page.
Google — requis properties
- “You must include the required properties for your content to be eligible for display in enhanced search results.” — Recherche Google Central, Event données structurées. Jump to quote
- “The start date and start time of the event in ISO-8601 format. Add both the date and time so users can find events that fit into their schedule.” Jump to quote
- On the event nom: “Not recommended: Bill Graham Civic Auditorium.” Jump to quote
- On addresses: “If the event happens across several streets, define the starting location and mention the full details in description.” Jump to quote
Google — virtual events (the accuracy spine)
- “Virtual experiences that have no real-world component aren’t supported. Events must take place in a physical location.” Jump to quote
Google — event status changements
- “Warning: When the event status changes, DON’T remove the
startDate. ThestartDateproperty is required to help identify the unique event.” Jump to quote - On cancellations: “Don’t remove or change other properties (for example, don’t remove
startDateorlocation); instead, keep all values as the same as they were before the cancelation, and update theeventStatustoEventCancelled.” Jump to quote - On postponement: “The event has been postponed to a later date, but the date isn’t known yet. Keep the original date in the
startDateof the event until you know when the event will take place.” Jump to quote - On rescheduling: “The event has been rescheduled to a later date. Update the
startDateandendDatewith the relevant new dates.” Jump to quote
Google — un event, un URL, and multi-day events
- “Each event MUST have a unique URL (a leaf page) and markup on that URL.” Jump to quote
- “Mark up multi-day events correctly: If your event or ticket info is for an event that runs over several days, specify both the start and end dates of the event.” Jump to quote
Google — content policies
- “Don’t promote non-event products or services such as ‘Trip package: San Diego/LA, 7 nights’ as events.” Jump to quote
- “Events must be bookable to the general public. Events that require a membership, or invitation prior to purchasing the ticket or attending the event are ineligible for the event experience.” Jump to quote
- “Spectator events where the primary participants and audience are minors and occur on-premise of a school aren’t eligible for the event experience.” Jump to quote
- “If your site violates one or more of these guidelines, then Google may take manual action against it.” Jump to quote
Event schema cheat sheet
The minimum pour the event rich result
Event.name + startDate + location (a Place with name and
address). Individual event pages seulement — un event per leaf URL.
Requis vs. recommended
| Property | Status | Notes |
|---|---|---|
name | Requis | Event title — pas the venue, pas “Concert,” aucun promos |
startDate | Requis | ISO-8601, date and temps, with timezone offset |
location | Requis | Place + location.name + location.address |
endDate | Recommended | ISO-8601 |
eventStatus | Recommended | Defaults to EventScheduled si omitted |
image | Recommended | Multiple; 1x1, 4x3, 16x9 aspect ratios |
offers | Recommended | url, price, priceCurrency, availability, validFrom |
performer | Recommended | Person / PerformingGroup |
organizer | Recommended | Organization / Person (name, url) |
description | Recommended | Event details seulement; don’t repeat date/emplacement |
The four eventStatus valeurs
| Valeur | Meaning | Clé rule |
|---|---|---|
EventScheduled | Going ahead (the par défaut) | Assumed si eventStatus is absent |
EventCancelled | Won’t se produire | Garder startDate + location; simplement modifier status |
EventPostponed | Happening plus tard, date unknown | Garder original startDate jusqu’à vous know |
EventRescheduled | Nouveau date confirmed | Mettre à jour startDate/endDate; ajouter previousStartDate |
Multi-day vs. multiple performances
| Situation | Markup |
|---|---|
| Un event over several days | Un Event, startDate + endDate |
| Several ticketed performances | Separate Event per performances |
| Recurring series | EventSeries/eventSchedule — valid, rich-result impact unconfirmed |
Fast facts
- Format: JSON-LD (recommended).
- Virtual-only events aren’t eligible pour Google’s event rich result — physical emplacement requis.
eventAttendanceMode/VirtualLocation: valid schema.org, pas sufficient alone.- Jamais strip
startDate/locationquand updatingeventStatus. - Base
Eventis fine — subtypes (MusicEvent, etc.) are optional. - Bing: aucun dedicated Event docs, aucun event rich result.
- Valid markup = eligible, pas guaranteed to montrer.
Is my event eligible pour Google’s event rich result?
Fonctionner bas the questions:
Is my event eligible for Google's event rich result — and what should I mark up?
Event schema Mythes et erreurs à éviter
Myth: “Ajouter eventAttendanceMode: OnlineEventAttendanceMode and votre virtual-only
event va montrer in Google’s event rich result.”
Faux per Google’s current docs — virtual-only events with aucun physical component
aren’t pris en charge pour the event experience, regardless of eventAttendanceMode or
VirtualLocation. Ceux properties are valid schema.org and fine pour hybrid
events (qui have a réel venue) or non-Google consumers, but ils don’t obtenir a
purely online event into Google’s rich result.
Myth: “Vous doit utiliser a spécifique subtype comme MusicEvent or BusinessEvent
au lieu de the base Event type.”
Pas requis — the base Event type is valid and sufficient, and Google’s
documented requis/recommended properties appliquer the même façon. Subtypes ajouter
semantics si vous vouloir les, nothing plus.
Myth: “Cancelled or expired events should have their schema removed.”
Faux, and explicitly warned contre. Garder startDate and location in placer and
simplement mettre à jour eventStatus to EventCancelled, EventPostponed, or
EventRescheduled. Google nécessite ceux properties to identifier the unique event and
communicate the nouveau status.
Myth: “Vous pouvez mark up une page listing tout votre upcoming events and obtenir a rich result pour chaque un.” Unsupported — chaque event nécessite its propre unique leaf-page URL with its propre markup. Listing/schedule/calendar pages don’t qualify.
Myth: “Event schema is a ranking factor.” Overstated — comme autre données structurées, it rend une page eligible pour a spécifique rich result; it isn’t a general organic-ranking signal.
Myth: “EventPostponed and EventCancelled are interchangeable.”
They’re pas. EventCancelled signifie the event is off; EventPostponed signifie it’ll
se produire but the nouveau date isn’t connu yet — and devrait be upgraded to
EventRescheduled (with previousStartDate) une fois the date is confirmed.
Mistake: marking up a sale, coupon, or “limited time offer” as an event. Contre policy — Google explicitly calls out short-term discounts, coupons, business hours, and non-event products/services as ineligible/violating. Ce has historically triggered manual actions.
Mistake: putting the venue nom (or a promo) in the event name.
The event name is the event’s title. Utiliser location.name pour the venue, and garder
promos, prices, and “buy your tickets now” out of the nom entirely.
Mistake: faking a commencer temps.
A valeur comme 2019-08-15T00:00:00+00:00 pour an event whose commencer temps vous don’t
know reads as literally midnight. Pour day-long events with an unknown/irrelevant
hour, utiliser the date seulement — aucun temps.
Outils pour validating Event schema
- Balisage de données structurées Validator — paste Event JSON-LD or the complet page to catch syntax, schema.org vocabulary, and graph-reference problems avant checking Google’s Event-specific requirements.
- Rich-Result Eligibility Checker — vérifier
que the Event inclut the requis
name,startDate, and physicallocation, alors examiner manquant recommended properties. - Google Résultats enrichis Tester — tester the deployed event URL with Google’s renderer and confirmer the Event markup it en réalité detects.
Courant Event schema problèmes
The markup validates, but the online event n’est pas eligible
- Symptom — A virtual-only event has valid schema.org markup but aucun eligible Google event rich result.
- Probable causer —
VirtualLocationandOnlineEventAttendanceModeare valid vocabulary, but Google’s current Event documentation exige a real-world physical emplacement pour ce rich result. - Fix — Ne faites pas fabricate a venue. Garder the markup pour machine-readability si it accurately describes the event, but arrêter treating the Google event experience as an disponible channel pour que online-only event.
A cancelled or postponed event develops required-property errors
- Symptom — An Event que previously qualified now reports a manquant
startDateorlocationaprès its status modifié. - Probable causer — The mettre à jour traiter supprimé identifying properties quand it définir
EventCancelledorEventPostponed. - Fix — Restore the original
startDateandlocation. ModifiereventStatuspendant que retaining ceux valeurs; une fois a postponed event has a nouveau date, utiliserEventRescheduled, mettre à jour the dates, and ajouterpreviousStartDate.
Event markup triggers a policy problème or manual action
- Symptom — Event enhancements disappear broadly, or Search Console reports a structured-data manual action.
- Probable causer — Pages are marking up sales, coupons, business hours, invitation-only activity, or autre non-events as Event content.
- Fix — Supprimer Event markup from anything que n’est pas a genuine, publicly bookable event, correct affected pages, validate les à nouveau, and follow Search Console’s reconsideration traiter si a manual action is présent.
Prove an Event markup modifier took effect
Tester 1 — A nouveau in-person event is eligible in the rendered page
- Tester to run — Tester the deployed leaf-page URL with the Rich-Result Eligibility Checker and Google’s Résultats enrichis Tester.
- Attendu result — Les deux detect un Event with
name,startDate, and a physicalPlaceemplacement; Google reports aucun critical Event errors. - Échec interpretation — A virtual-only emplacement, manquant requis field, listing-page implementation, or rendu côté client échec empêche the intended eligibility.
- Monitoring window — Immediate in the validators; autoriser the suivant Google explorer avant expecting Search Console reporting to modifier.
- Rollback trigger — Ne faites pas ship markup que invents a physical venue or describes a différent event que the visible page. Supprimer the block jusqu’à the page and markup peut agree.
Tester 2 — A status mettre à jour preserves the event identity
- Tester to run — Après setting
EventCancelled,EventPostponed, orEventRescheduled, comparer the rendered JSON-LD with the prior version and validate the live URL à nouveau. - Attendu result —
startDateandlocationremain présent; a rescheduled event has the nouveau dates andpreviousStartDatependant que the status uses the correct schema.org enumeration. - Échec interpretation — Manquant identifying fields signifie the mettre à jour job or template stripped données que Google dit to retain.
- Monitoring window — Immediate après the status deployment and cache clearance.
- Rollback trigger — Revert the status-template modifier si it removes
startDateorlocationà travers event pages, alors redeploy a corrected mapping.
Event JSON-LD exemples
A standard in-person event (Google’s propre exemple)
A unique, scheduled, physically-located event with the requis three properties plus the recommended extras. Ce is reproduced from Google’s Event documentation:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "The Adventures of Kira and Morrison",
"startDate": "2025-07-21T19:00-05:00",
"endDate": "2025-07-21T23:00-05:00",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Snickerpark Stadium",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 West Snickerpark Dr",
"addressLocality": "Snickertown",
"postalCode": "19019",
"addressRegion": "PA",
"addressCountry": "US"
}
},
"image": [
"https://example.com/photos/1x1/photo.jpg",
"https://example.com/photos/4x3/photo.jpg",
"https://example.com/photos/16x9/photo.jpg"
],
"description": "The Adventures of Kira and Morrison is coming to Snickertown in a can't miss performance.",
"offers": {
"@type": "Offer",
"url": "https://www.example.com/event_offer/12345_202403180430",
"price": 30,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2024-05-21T12:00"
},
"performer": {
"@type": "PerformingGroup",
"name": "Kira and Morrison"
},
"organizer": {
"@type": "Organization",
"name": "Kira and Morrison Music",
"url": "https://kiraandmorrisonmusic.com"
}
}Remarque the details que matter: location is a réel Place with a complet adresse, the
availability and eventStatus utiliser the schema.org enum URL formulaire (pas plain
strings), and the name is the event title — pas the venue “Snickerpark Stadium,”
qui correctement lives in location.name.
The même event, cancelled — ce que changements and ce que doesn’t
Quand an event is appelé off, vous garder startDate and location exactly as
ils were and seulement flip eventStatus:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "The Adventures of Kira and Morrison",
"eventStatus": "https://schema.org/EventCancelled",
"startDate": "2025-07-21T19:00-05:00",
"endDate": "2025-07-21T23:00-05:00",
"location": {
"@type": "Place",
"name": "Snickerpark Stadium",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 West Snickerpark Dr",
"addressLocality": "Snickertown",
"postalCode": "19019",
"addressRegion": "PA",
"addressCountry": "US"
}
}
}The un modifier is eventStatus → https://schema.org/EventCancelled. Deleting
startDate or location ici voudrait be the mistake — Google nécessite les to identifier
the unique event and tell utilisateurs it’s off.
A rescheduled event — nouveau dates, with previousStartDate
Une fois a postponed event has a confirmed nouveau date, switch to EventRescheduled,
mettre à jour the dates, and record the old un:
{
"@context": "https://schema.org",
"@type": "Event",
"name": "The Adventures of Kira and Morrison",
"eventStatus": "https://schema.org/EventRescheduled",
"previousStartDate": "2025-07-21T19:00-05:00",
"startDate": "2025-09-14T19:00-05:00",
"endDate": "2025-09-14T23:00-05:00",
"location": {
"@type": "Place",
"name": "Snickerpark Stadium",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 West Snickerpark Dr",
"addressLocality": "Snickertown",
"postalCode": "19019",
"addressRegion": "PA",
"addressCountry": "US"
}
}
}Individual event page vs. a listing page
Ce is the distinction que trips up venues and ticketing platforms:
- ✅ Eligible — individual event page:
example.com/events/kira-morrison-july-21/with a uniqueEventobject describing que un montrer. Ce is ce que qualifies. - ❌ Pas eligible — listing page:
example.com/events/showing a calendar or grid of ten upcoming montre, marked up (or pas) as a batch. Google’s event experience seulement supports pages que focus on a unique event — so mark up the individual event pages, pas the listing.
(The JSON-LD blocks ci-dessus are simplified illustrative exemples construit on Google’s documented standard-event exemple; validate votre propre markup with the Résultats enrichis Tester avant shipping.)
Testez vos connaissances: Event Schema
Five rapide questions on schema.org/Event, the physical-location rule, and event status handling. Pick an réponse pour chaque, alors vérifier.
Ressources utiles
My writing on ce topic
I haven’t publié a standalone Event schema guide of my propre — so plutôt que point vous at something que doesn’t exist, the honest déplacer is to send vous to the principal sources ci-dessous and to the connexe structured-data fonctionner on ce site. Pour the broader vocabulary and où Event fits, voir the Balisage de données structurées and Structured Données hubs; pour the AI angle, Balisage de données structurées pour AI.
From autour the industry
- Event (Event) données structurées (Recherche Google Central) — the authoritative référence pour requis/recommended properties,
eventStatus, the one-event-one-URL rule, content policies, and the virtual-events statement. - Nouveau properties pour virtual, postponed, and canceled events (Recherche Google Central Blog, March 2020) — the COVID-era rollout that’s the source of la plupart virtual-event advice; lire it alongside the current docs to voir how guidance evolved.
- General Données structurées Guidelines (Google) — le site-wide accuracy/spam policies Event markup doit aussi satisfy.
- schema.org/Event — the complet vocabulary référence pour the Event type and its properties.
- Résultats enrichis Tester (Google) — validate Event markup and vérifier eligibility.
- Marking Up Votre site with Données structurées (Bing Webmaster Outils) — Bing’s general (non-Event-specific) structured-data prise en charge.
- A Simple SEO Guide pour Successful Event Marketing (Ahrefs) — a broader regarder at SEO pour events, with event données structurées as un implementation tactic.
- Ce que Is Balisage de données structurées? How to Ajouter It & Pourquoi c’est important (Ahrefs) — a general schema guide with a utile AI-agent/discovery angle.
Journal des modifications
Mis à jour le 17 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.