← Back to Blog

Your events page is invisible to Google if the schema is wrong

Your events page is invisible to Google if the schema is wrong

Google shows event rich results for concerts, workshops, conferences, and local meetups directly in search results, complete with dates, times, venues, and ticket links. When it works, it's one of the highest-click-through-rate SERP features available. When the schema is wrong, your events page looks like every other blue link, and your competitors with correct markup get the visual real estate.

The frustrating part is that Event schema errors are almost always silent. Google Search Console doesn't always flag them. Your page still renders fine for visitors. You just never get the rich result, and you have no idea why until you manually inspect the JSON-LD.

The errors that kill rich results

Missing or malformed startDate. This is the most common failure. The Event schema spec requires startDate in ISO 8601 format with a timezone offset. "Saturday, June 14" doesn't work. "2026-06-14" works for all-day events, but "2026-06-14T19:00" without a timezone offset is ambiguous and Google may reject it. The correct format is 2026-06-14T19:00:00-07:00 for a 7pm Pacific event.

Stale events. Google explicitly penalizes pages that list past events with future-looking schema. If your events page still has JSON-LD for last month's webinar, Google may suppress rich results for the entire page, including your upcoming events. The fix is simple (remove or update the schema when the event passes), but most CMS setups don't automate this.

Wrong or missing location. For in-person events, location needs to be a Place with name, address, and ideally geo coordinates. For online events, Google introduced VirtualLocation with an url property during 2020. Many sites still use Place for virtual events or omit the location entirely, which makes the schema invalid for rich result eligibility.

Missing performer or organizer. These aren't strictly required by the spec, but Google's documentation notes that events with performer or organizer properties are more likely to receive rich results. A local venue listing a concert without the performer's name is leaving data on the table.

What the audit checks

The Event Schema Audit parses your page's JSON-LD and Microdata looking for Event types, then validates each one against Google's rich result requirements. It checks for:

Required properties: name, startDate, location (with the correct sub-type for in-person vs. virtual). Missing any of these means no rich result.

Date format compliance: ISO 8601 with timezone offset. Flags dates that parse but lack timezone information, which can cause events to display at the wrong time in search results.

Stale event detection: events whose startDate or endDate has already passed. These should be removed from the schema or updated.

Location type matching: catches Place used for virtual events and VirtualLocation used for in-person events.

Optional but impactful properties: performer, organizer, offers (ticket pricing), image, and description. Each one increases rich result eligibility.

Schema that actually works

Here's what a correctly structured Event looks like:

{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Summer Jazz Festival",
  "startDate": "2026-07-12T18:00:00-05:00",
  "endDate": "2026-07-12T23:00:00-05:00",
  "location": {
    "@type": "Place",
    "name": "Riverside Amphitheater",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "500 River Road",
      "addressLocality": "Austin",
      "addressRegion": "TX",
      "postalCode": "78701"
    }
  },
  "performer": {
    "@type": "Person",
    "name": "Sarah Mitchell Quartet"
  },
  "offers": {
    "@type": "Offer",
    "price": "35.00",
    "priceCurrency": "USD",
    "url": "https://example.com/tickets",
    "availability": "https://schema.org/InStock"
  },
  "image": "https://example.com/images/jazz-fest.jpg",
  "description": "An evening of live jazz on the riverfront."
}

Every field has a purpose. The timezone offset on startDate means Google displays the correct local time. The offers block enables the price and availability badge in the rich result. The image gives Google something to show in the visual carousel.

Building with events in mind

If you run a venue, a conference series, or a workshop business, event schema should be part of your CMS template, not something you add by hand each time. WordPress plugins like Events Calendar Pro and custom Eleventy data files both support auto-generating the JSON-LD from your event database.

Run the Event Schema Audit alongside the Schema JSON-LD Graph Linter to catch structural issues in your JSON-LD beyond just the Event type, and the Rich Results Eligibility tool to check whether Google currently considers your markup valid.

For anyone building an event-driven business, The $97 Launch covers how to structure your site so that every event page is both a landing page and a search-optimized entry point.

Fact-check notes and sources

  • Google's Event structured data requirements and rich result eligibility: Source: Google Search Central, "Event structured data".
  • VirtualLocation support added in 2020: Source: Schema.org release notes and Google's updated documentation for online events.
  • ISO 8601 date format specification for timezone offsets: Source: ISO 8601:2004.
  • Past-event schema suppression: Google's documentation recommends removing or marking past events to maintain page-level rich result eligibility.

Related reading

This post is informational, not SEO-consulting advice. Mentions of Google and CMS platforms are nominative fair use. No affiliation is implied.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026