Summarize with:

When someone searches for concerts, conferences, or local events, Google can display rich event listings showing dates, venues, ticket prices, and direct purchase links. These enhanced search results are powered by event schema markup and they can significantly impact your ticket sales.

Event schema markup is structured data that tells search engines the specifics of your event: when it happens, where it’s located, how much tickets cost, and whether they’re still available. This event structured data enables Google to display your events as visually prominent rich results that drive conversions.

Why Event Structured Data Drives Sales

Event rich results aren’t just about visibility they’re designed to convert:

  • Direct ticket links: Users can access ticket purchasing directly from search results
  • Price transparency: Showing ticket prices upfront attracts qualified buyers
  • Date/time clarity: Clear scheduling information reduces friction in decision-making
  • Availability signals: Indicating limited tickets creates urgency

Event schema is increasingly valuable for AI-driven search experiences. Voice assistants use event structured data to answer questions like “What concerts are happening this weekend?” and AI overviews reference event data when generating summaries about upcoming happenings.

Understanding Event Structured Data

Understanding-event-structured-data-infographic

Event Schema Markup is a type of structured data that helps search engines understand key details about your events, such as date, location, and ticket availability. By implementing Event Schema Markup correctly, you increase your chances of appearing in rich results, improving visibility and driving more qualified traffic and ticket sales.

Schema.org Definition

Schema.org defines Event as “An event happening at a certain time and location.” This includes concerts, conferences, festivals, sports games, theater performances, workshops, and any scheduled gathering with a specific time and place.

The Importance of Event Schema Markup

PropertyStatusDescription
nameRequiredEvent title
startDateRequiredWhen the event begins (ISO 8601)
locationRequiredPlace, VirtualLocation, or both
imageRecommendedEvent promotional image
offersRecommendedTicket pricing and availability
eventStatusRecommendedScheduled, Cancelled, Postponed, etc.
eventAttendanceModeRecommendedOffline, Online, or Mixed

Event Types: Online, Offline, and Hybrid

Google recognizes three attendance modes:

  • OfflineEventAttendanceMode: Physical location events (concerts, conferences)
  • OnlineEventAttendanceMode: Virtual events (webinars, livestreams)
  • MixedEventAttendanceMode: Hybrid events with both options

Eligibility for Event Rich Results

Eligibility-for-event-results-infographic

Google’s Content Guidelines

Event schema is only for events with specific dates and times:

  • Concerts, shows, and performances
  • Conferences, seminars, and workshops
  • Sports games and tournaments
  • Festivals and fairs
  • Classes with scheduled sessions

Event schema is NOT appropriate for products, services without scheduled sessions, or business operating hours.

Date and Location Requirements

All dates must use ISO 8601 format with timezone information:

// Correct format with timezone
"startDate": "2025-06-15T19:00:00-05:00"
// Or with UTC offset
"startDate": "2025-06-15T19:00:00Z"

For physical events, include complete address information. For online events, use VirtualLocation with the event URL.

Handling Recurring Events

For recurring events (weekly concerts, monthly meetups), create separate Event entries for each occurrence rather than one event with multiple dates. Each instance needs its own startDate and can link to a common series.

Step-by-Step Implementation Guide

This step-by-step implementation guide helps you correctly apply Event Schema Markup to your event pages. By adding structured data with accurate details like event name, date, location, and ticket information, you can improve search visibility, enable rich results, and enhance user engagement across both traditional and AI-driven search experiences.

Complete JSON-LD Example

Here’s a comprehensive event schema for a concert:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Summer Jazz Festival 2025",
  "description": "Annual outdoor jazz festival featuring world-renowned artists.",
  "image": "https://example.com/images/jazz-festival.jpg",
  "startDate": "2025-07-20T18:00:00-04:00",
  "endDate": "2025-07-20T23:00:00-04:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Central Park Bandshell",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Central Park",
      "addressLocality": "New York",
      "addressRegion": "NY",
      "postalCode": "10024",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "NYC Jazz Society",
    "url": "https://nycjazz.org"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/tickets/jazz-festival",
    "price": 75,
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2025-03-01T00:00:00-05:00"
  },
  "performer": {
    "@type": "MusicGroup",
    "name": "The Blue Note Quartet"
  }
}
</script>

Key Properties Explained

eventStatus: Use EventScheduled, EventCancelled, EventPostponed, EventMovedOnline, or EventRescheduled. Update immediately when status changes.

eventAttendanceMode: Defines whether the event is physical, virtual, or hybrid. Critical for user expectations.

location: Use Place for physical venues with full PostalAddress. Use VirtualLocation with url for online events. Use both for hybrid.

offers: Include price, priceCurrency, availability status, and direct ticket URL. This drives conversions directly from search.

Virtual Event Example

"location": {
  "@type": "VirtualLocation",
  "url": "https://example.com/webinar/marketing-summit"
},
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode"

WordPress Implementation

Plugins: The Events Calendar, Events Manager, and All-in-One Event Calendar generate event schema automatically. Yoast SEO and Rank Math also support event markup.

Manual: Add JSON-LD via theme’s header.php or use a Custom HTML block. For event post types, create a template that generates schema from post meta fields.

Validation and Testing

Clipboard-with-validation-and-testing-tools

Validation and testing ensure your Event Schema Markup is correctly implemented, error-free, and eligible for rich results. By using tools like Google Rich Results Test and Schema Markup Validator, you can identify issues such as missing fields, incorrect formats, or invalid data. Regular testing helps maintain accuracy, improve search visibility, and ensure your event information is properly understood by search engines and AI systems.

Testing Your Event Schema

Google Rich Results Test: Verify event eligibility at Google Rich Results Test.

Schema Markup Validator: Full Schema.org validation at validator.schema.org.

Common Errors

  • Invalid date format: Use ISO 8601 with timezone (2025-06-15T19:00:00-04:00)
  • Missing location: Every event needs Place and/or VirtualLocation
  • Expired events: Remove or update schema for past events

Updating Expired Events

After an event ends, either remove the schema entirely or update eventStatus to reflect completion. Leaving stale event data with future-looking offers damages credibility and may trigger warnings.

Common Mistakes to Avoid

Date Format Errors

The most common mistake is incorrect date formatting:

// WRONG
"startDate": "June 15, 2025 7:00 PM"
// CORRECT
"startDate": "2025-06-15T19:00:00-04:00"

Fake Pricing or Availability

Never mark tickets as InStock if they’re sold out, or show prices that don’t match your actual ticket prices. This violates Google’s policies and damages user trust.

Forgetting eventStatus Updates

When events are cancelled, postponed, or moved online, update eventStatus immediately. Users finding “scheduled” events that are actually cancelled creates frustration and potential manual actions.

AI Search and Voice Optimization

Events in AI Summaries

AI-powered search features use event structured data to generate responses for queries like “What’s happening in [city] this weekend?” Complete, accurate event schema increases the likelihood of inclusion in these summaries.

Voice Search Compatibility

For voice assistant optimization:

  • Use clear, pronounceable event names
  • Include complete location information for “near me” queries
  • Ensure dates and times are unambiguous

Entity Clarity

Help AI systems understand your event by using specific names (“Summer Jazz Festival 2025” not “Our Annual Event”), linking to performer profiles, and including organizer information.

Best Practices for Maximum Ticket Sales

Maximizing-ticket-sales-infographic

Pricing and Availability

For maximum conversion impact:

  • Include accurate price with priceCurrency
  • Update availability status as tickets sell
  • Link directly to ticket purchase (not homepage)
  • Show validFrom date for early-bird pricing

High-Quality Images

Use compelling event images at least 1200px wide. Show performers, venue, or previous event photos that communicate the experience attendees can expect.

Mobile and Location Optimization

Many event searches happen on mobile with location intent. Ensure your event pages load quickly on mobile devices and include accurate geo coordinates in your location data for “events near me” queries.

Frequently Asked Questions

What date format does event schema require?

ISO 8601 format with timezone information: YYYY-MM-DDTHH:MM:SS±HH:MM. Example: 2025-06-15T19:00:00-04:00.

Can I use event schema for online webinars?

Yes. Use VirtualLocation with the event URL and set eventAttendanceMode to OnlineEventAttendanceMode.

How do I handle cancelled events?

Update eventStatus to https://schema.org/EventCancelled immediately. Keep the schema so users see the cancellation notice in search results.

Should I create separate schema for recurring events?

Yes. Each occurrence should have its own Event entry with unique startDate. This ensures accurate display for each instance.

Is the offers property required?

Not required, but highly recommended. Including price, availability, and ticket URL significantly increases conversion potential from search results.

What image size should I use?

Use images at least 1200 pixels wide. Provide multiple aspect ratios (1:1, 4:3, 16:9) when possible for optimal display across different Google surfaces.

How quickly do event rich results appear?

After implementing valid schema, Google typically processes it within days. However, rich result display depends on query context and isn’t guaranteed for every search.

Can I include multiple ticket tiers in offers?

Yes. Use an array of Offer objects, each with its own price and name (e.g., “General Admission,” “VIP”).

Event Schema Implementation Checklist

Event-schema-checklist-illustration

Use this checklist for every event page.

Required:

  • name matches visible event title
  • startDate in ISO 8601 format with timezone
  • location with Place and/or VirtualLocation
  • @context and @type declarations

Recommended:

  • endDate for multi-hour/day events
  • eventStatus (update when status changes)
  • eventAttendanceMode (Offline/Online/Mixed)
  • offers with price, currency, availability, URL
  • image (1200px+ width)
  • organizer information

Validation:

  • Test with Google Rich Results Test
  • Verify dates display correctly
  • Check ticket URL links to correct page
  • Monitor Search Console Events report

Mamunur Rashid is a tech enthusiast with 14+ years in the industry and a deep passion for WordPress. As a key contributor to SchemaEngine AI at RadiusTheme, he writes about schema markup, entity SEO, and AI-powered search — helping businesses build the digital authority that gets them recommended.