localwebadvisor
WIKI← Wiki home

What Is Event Schema?

By FayUpdated Jul 9, 2026EVERGREEN
⚡ THE ANSWER

Event schema is structured data from schema.org that describes a scheduled event, such as a class, workshop, grand opening, or fundraiser, to search engines. Added as JSON-LD, it states the event name, start and end times, location (physical or virtual), and ticket or attendance details. Google can use it to display an event rich result showing the date, time, and place directly in search and in Google's event experiences, helping people discover and attend local happenings.

Vocabulary
schema.org/Event with location, offers, and organizer (schema.org)
Required properties
name, startDate, and location for eligibility (Google Search Central)
Virtual events
Use VirtualLocation with a URL and eventAttendanceMode (schema.org)
Rich result
Can show date, time, and venue in search and event listings (Google Search Central)

What is Event schema and who benefits? #

Event schema describes a scheduled happening, an event that occurs at a specific time and place, so search engines can present it as an event rather than plain text. It captures the name, start and end times, location, whether physical or virtual, and details like tickets, price, and the organizer. When Google reads valid event markup, it can display a rich result showing the date, time, and venue directly in search, and surface the event in Google's dedicated event experiences, helping local people discover and attend. Many local businesses run events worth marking up: a gym hosting a bootcamp series or open house, a restaurant with a wine-tasting night, a salon with a product-launch party, a law firm running a free legal clinic, a landscaper giving a seasonal workshop. Event schema is part of the schema.org vocabulary in /wiki/schema-markup-guide. For businesses that use events to draw local customers, it turns a buried listing into a discoverable, richly displayed occasion that people can find, schedule, and show up for.

What properties does Event schema require? #

Google needs a minimum set for eligibility. name is the event's title. startDate is when it begins, in ISO 8601 format, ideally including the time and time zone. location is where it happens, expressed as a Place with a name and PostalAddress for physical events, or a VirtualLocation with a URL for online events. Beyond these required fields, several recommended properties strengthen the result: endDate for when it finishes, description explaining what the event is, image for a visual, offers describing tickets with a price, currency, availability, and a URL to buy, organizer naming who runs it, and eventAttendanceMode and eventStatus to indicate whether it is in person, online, or hybrid, and whether it is scheduled, postponed, or cancelled. The eventStatus field became especially important for keeping listings accurate when plans change. Every value must match the visible page. Generate the structure with /tools/schema-generator and validate with /tools/schema-validator, since a missing startDate or location will disqualify the event from rich results entirely.

What does Event JSON-LD look like? #

An Event object states the name, dates, location, and optionally offers and organizer. The example below shows an in-person fitness bootcamp at a gym. Note startDate and endDate include time and time zone offset, location is a Place with a full address, offers carries the ticket price and a purchase URL, and eventAttendanceMode plus eventStatus clarify the format and current status. Place the block on the page that describes the event, one per event, or use an array for a page listing several. After deploying, validate and monitor Google Search Console's event enhancement report for eligibility and errors. Keep the details current: if an event sells out, update the offers availability; if it is postponed or cancelled, update eventStatus and startDate rather than deleting the page, which is what Google recommends so people searching for it still get accurate information.

event.json — Gym bootcamp Event JSON-LD
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Summer Sunrise Bootcamp",
  "startDate": "2026-08-15T06:30:00-05:00",
  "endDate": "2026-08-15T07:30:00-05:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "Ironside Fitness",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "55 Harbor Blvd",
      "addressLocality": "Tampa",
      "addressRegion": "FL",
      "postalCode": "33602",
      "addressCountry": "US"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "15.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://ironsidefitness.com/events/bootcamp"
  },
  "organizer": {
    "@type": "Organization",
    "name": "Ironside Fitness",
    "url": "https://ironsidefitness.com"
  }
}

How do you handle virtual and hybrid events? #

Since online events became common, schema.org and Google added clear ways to describe them. eventAttendanceMode declares the format: OfflineEventAttendanceMode for in person, OnlineEventAttendanceMode for virtual, or MixedEventAttendanceMode for hybrid. For a virtual event, the location is a VirtualLocation object with a URL where attendees join, rather than a physical Place. For a hybrid event, you provide both a Place and a VirtualLocation. Getting this right matters because Google displays online events differently and searchers filter for them. A gym streaming a class, a consultant hosting a webinar, or a nonprofit running a virtual fundraiser should mark the event as online with the join URL. Businesses that offer both in-person and streamed attendance use the mixed mode with both locations. This flexibility means Event schema is not limited to physical gatherings; any scheduled, discoverable happening qualifies. Whatever the format, keep the attendance mode accurate and the URL or address correct, and validate with /tools/schema-validator so the event appears the way you intend.

Why does keeping events current matter so much? #

Events are time-sensitive, which makes stale event markup uniquely harmful. An event listing showing 'InStock' tickets for a sold-out class, or promoting an event that was cancelled, actively misleads people and frustrates them. Google specifically recommends that when an event changes, you update the markup rather than remove the page: set eventStatus to EventCancelled or EventPostponed, update startDate for rescheduled events, and adjust the offers availability when tickets sell out. This keeps searchers accurately informed even as plans shift. The practical implication is that Event schema demands active maintenance in a way that stable markup like breadcrumbs does not. If you run recurring events, the schema should be driven by your event data, an events calendar or database, so changes flow automatically. Our /services/database-services and /services/web-app-development teams build event systems where the schema updates with the listing. For businesses running occasional events, the discipline is simply to update the markup whenever anything changes, which is part of the upkeep in /services/care-plans.

How does Event schema support local discovery? #

For a local business, events are a proven way to draw people through the door, and Event schema makes those events discoverable in the places people look. When someone searches for things to do or for a specific type of event nearby, Google's event experiences surface marked-up events with their date, time, and venue. This is a discovery channel most local competitors ignore, so businesses that use it can stand out. A restaurant's tasting menu night, a gym's open house, a salon's masterclass, a contractor's home-improvement seminar, each becomes findable to local searchers who were not already following the business. This complements the broader local visibility work in /services/local-seo and the location pages built for industries like /web-design-for-gyms and /web-design-for-restaurants. Event schema also feeds AI systems that answer 'what's happening near me this weekend' style questions, part of the shift covered in /wiki/ai-search-optimization. Turning your events into structured, discoverable data extends their reach well beyond your existing audience, which is exactly the point of hosting them.

What are common Event schema mistakes? #

Several errors recur. First, omitting a required field, name, startDate, or location, which disqualifies the event entirely. Second, missing or wrong time zones in startDate, which can display the event at the wrong hour for searchers. Third, leaving stale markup on past or cancelled events instead of updating eventStatus, which misleads people and erodes trust. Fourth, using event markup for things that are not events, like a coupon, a business hours notice, or an ongoing offer, which violates Google's guidelines; those are not scheduled occurrences with a start time. Fifth, marking up a virtual event with a physical location or vice versa, confusing the attendance mode. Sixth, listing tickets as available when they are sold out. Most of these are avoided by driving the schema from real event data and updating it as things change. Validate with /tools/schema-validator and monitor Google Search Console. If you inherited a site with broken or misused event markup, our /services/website-rescue team audits and corrects it so your events display accurately.

How do you implement Event schema on your site? #

The right implementation depends on how often you run events. For occasional events, you can generate a block with /tools/schema-generator, place it on the event page, validate it, and remember to update it if plans change. For businesses running regular events, hand-maintaining markup is error-prone, so the schema should be generated from an events calendar or database, where creating or editing an event automatically produces correct, current JSON-LD. On WordPress, dedicated events plugins output Event schema from your event entries, and a developer can refine it through /services/wordpress-development. On a custom site, our /services/web-app-development and /services/database-services teams build event systems where the listing, the visible details, and the schema all draw from one record, so they never disagree and updates propagate automatically. Whichever path, validate with /tools/schema-validator, watch Google Search Console, and keep eventStatus and availability honest. Done well, Event schema turns each occasion you host into a discoverable, accurately displayed listing that extends its reach and fills your seats, and keeping it current is part of /services/care-plans.

FAQ

What information is required for Event schema?

At minimum, Google needs the event name, a startDate in ISO 8601 format with time and time zone, and a location, either a physical Place with an address or a VirtualLocation with a URL. Without these, the event is not eligible for a rich result. Adding endDate, description, image, offers, and organizer strengthens the listing further.

Can I use Event schema for online events?

Yes. Set eventAttendanceMode to OnlineEventAttendanceMode and use a VirtualLocation with the join URL instead of a physical address. For hybrid events, use the mixed mode and provide both a Place and a VirtualLocation. Google displays online events distinctly and searchers filter for them, so marking the format accurately matters for how your event appears.

What should I do when an event is cancelled or postponed?

Update the markup rather than deleting the page. Set eventStatus to EventCancelled or EventPostponed, and for a reschedule update the startDate. This keeps searchers who look for the event accurately informed. Google specifically recommends this approach so stale or misleading listings do not persist, which protects your credibility with people planning to attend.

Does Event schema show a rich result in Google?

Yes, it can display the event's date, time, and venue directly in search results and surface it in Google's dedicated event experiences, where people discover local happenings. This makes events findable to searchers beyond your existing audience, a discovery channel many local competitors overlook, provided the required fields are present and the markup stays accurate.

What kinds of things should not use Event schema?

Anything that is not a scheduled occurrence with a start time. Coupons, ongoing discounts, business hours, and general offers are not events and marking them up as such violates Google's guidelines. Reserve Event schema for genuine happenings like classes, workshops, openings, fundraisers, and performances that occur at a specific date and time.

How do I keep event markup current if I run many events?

Drive the schema from an events calendar or database so that creating or editing an event automatically generates correct, up-to-date JSON-LD. Dedicated events plugins on WordPress do this, and custom sites can build an event system where the listing and schema share one record. This avoids error-prone manual maintenance and keeps status and availability honest as things change.

Was this helpful?