XooCode(){

EventAttendanceModeEnumeration

EventAttendanceModeEnumeration is a schema.org Enumeration for how an Event is attended. It is the value of eventAttendanceMode and is required for Google's virtual / hybrid event surfaces; omitting it defaults events to in-person only.

It has 3 members:

  • OfflineEventAttendanceMode: in-person only.
  • OnlineEventAttendanceMode: online / virtual only (livestream, webinar, pre-recorded broadcast).
  • MixedEventAttendanceMode: hybrid — in-person attendance and a simultaneous online option.

Full example of schema.org/EventAttendanceModeEnumeration json-ld markup

The markup is verified as valid with Rich Results Test from Google.

schema.org/EventAttendanceModeEnumeration
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Xoo Code Quarterly — Summer 2026",
  "startDate": "2026-06-14T19:00:00-04:00",
  "endDate": "2026-06-14T22:00:00-04:00",
  "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": [
    { "@type": "Place", "name": "The Thunderdome", "address": { "@type": "PostalAddress", "streetAddress": "100 Arena Way", "addressLocality": "Dunmore", "addressRegion": "PA" } },
    { "@type": "VirtualLocation", "url": "https://xoocode.com/events/q2-2026/livestream" }
  ],
  "organizer": { "@type": "Organization", "name": "Xoo Code", "url": "https://xoocode.com" }
}
</script>

Location pattern

For online-only events, set location to a VirtualLocation with url. For hybrid events, location should be an array containing both a Place (the venue) and a VirtualLocation (the livestream URL).

Minimal valid version

The smallest markup that still produces a valid EventAttendanceModeEnumeration 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.

schema.org/EventAttendanceModeEnumeration (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Xoo Code Quarterly",
  "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
  "location": [
    { "@type": "Place", "name": "The Thunderdome" },
    { "@type": "VirtualLocation", "url": "https://xoocode.com/livestream" }
  ]
}
</script>

Google rich results this unlocks

EventAttendanceModeEnumeration is a structural type. It does not produce a rich result on its own.

Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). EventAttendanceModeEnumeration becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.

Common EventAttendanceModeEnumeration 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.

  1. 01

    Missing eventAttendanceMode

    Wrong
    Event with no attendance mode
    Right
    Always populate eventAttendanceMode; Google treats missing as Offline

    Online-only events omitted from virtual-event surfaces because the signal is missing.

  2. 02

    Online-only event with Place location

    Wrong
    Online event with location = Place
    Right
    VirtualLocation with url for online-only events

    Location of 'VirtualLocation' is the pattern Google reads for online events; Place implies in-person.

About the example data

The Xoo Code Quarterly event at The Thunderdome, streamed online as a hybrid event.

Comments

Loading comments...

Leave a comment