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.

Première publication : 1 juil. 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues
1 indice probant sur cette page

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 — 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.” eventAttendanceMode and VirtualLocation are 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 modifier eventStatus (EventScheduled / EventCancelled / EventPostponed / EventRescheduled) vous doit jamais strip startDate or location; multi-day is un Event, multiple ticketed performances are separate Events; 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 que location.name is 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 @type to Place and ajouter location.name and location.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.”

Au-delà the requis three, ces faire the listing fuller and are worth ajout:

  • endDate — même ISO-8601 format as startDate.
  • 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 (an Offer) — url, price, priceCurrency, availability (e.g. InStock, SoldOut, PreOrder), and validFrom pour quand tickets go on sale.
  • performer (Person / PerformingGroup) and organizer (Organization / Person, with name and url).
  • 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 data

Here’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.
  • eventAttendanceMode and VirtualLocation aren’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.

Evidence for this claim Google's current Event rich-result documentation says purely virtual events without a real-world component are not supported. Scope: web Confidence: high · Verified: Event structured data

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 supprimer startDate or location); à la place, garder tout valeurs as the même as ils were avant the cancelation, and mettre à jour the eventStatus to EventCancelled. Pourquoi? Properties comme startDate and location aider 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 the startDate of the event jusqu’à vous know quand the event va prendre placer. Une fois vous know the nouveau date information, modifier the eventStatus to EventRescheduled and mettre à jour the startDate and endDate with the nouveau date information.”
  • EventRescheduled — a nouveau date is confirmed. Google: “The event has been rescheduled to a plus tard date. Mettre à jour the startDate and endDate with the relevant nouveau dates. Optionally, vous pouvez aussi mark the eventStatus field as rescheduled and ajouter the previousStartDate.”

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 data

Ce 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 daysun Event with the startDate and endDate covering 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 Event pour chaque. Google: “Si là are several différent performances à travers différent days, chaque with individual tickets, ajouter a separate Event element 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.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.