Schema Markup
10 min read

Event Schema Markup Tutorial: Get Featured in Google Events (2025)

Learn how to add event schema markup to appear in Google Events, rich results, and search. Complete tutorial with examples for concerts, webinars, conferences, and more.

January 29, 2025

Want your events to appear in Google Events, show up with rich details in search, and get discovered by more attendees? Event schema markup is the key to unlocking these powerful event promotion features.

This complete tutorial shows you how to implement event schema for concerts, conferences, webinars, workshops, and any other event - with step-by-step examples and best practices.

What is Event Schema Markup?

Event schema is structured data specifically designed for events and performances. It tells search engines everything about your event - date, time, location, price, availability, and more.

With event schema, Google can:

  • Display Event Cards: Rich visual cards with event details in search
  • Google Events Feature: List your event in the dedicated Google Events section
  • Show Key Information: Date, time, location, price directly in results
  • Enable Ticket Purchases: Link to ticket sales from search results
  • Support Virtual Events: Properly mark online events and webinars
  • Calendar Integration: Users can add events to calendars
  • Voice Search: Better discoverability through voice assistants

Why Event Schema Matters

Event schema delivers significant benefits for event organizers:

50-70% Higher Visibility

Event rich results occupy prime real estate in search and appear in Google Events, dramatically increasing visibility.

More Ticket Sales

Direct links to tickets from search results remove friction and increase conversion rates by 30-40%.

Better User Experience

Users see all event details at a glance without needing to click through.

Virtual Event Support

Properly structured online events get marked as virtual, reaching remote audiences.

Competitive Edge

Many event organizers don't use schema - implementing it gives you immediate advantage.

Required vs. Recommended Event Properties

Required Properties (Must Have)

  • name: Event title
  • startDate: When event starts (ISO 8601 date-time format)
  • location: Where event happens (physical address OR online URL)

Highly Recommended Properties

  • endDate: When event ends
  • description: Event summary and details
  • image: Event promotional image
  • organizer: Who's hosting the event
  • offers: Ticket pricing and availability
  • performer: For concerts/shows - who's performing
  • eventStatus: Whether event is scheduled, cancelled, postponed
  • eventAttendanceMode: In-person, online, or mixed
  • url: Event details page URL

Complete Event Schema Examples

Example 1: In-Person Concert

{
  "@context": "https://schema.org",
  "@type": "MusicEvent",
  "name": "Summer Jazz Festival 2025",
  "description": "Experience an evening of world-class jazz featuring Grammy-winning artists under the stars.",
  "image": [
    "https://jazzfest.com/poster-2025.jpg",
    "https://jazzfest.com/venue-photo.jpg"
  ],
  "startDate": "2025-07-15T19:00:00-07:00",
  "endDate": "2025-07-15T23:00:00-07:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Central Park Amphitheater",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Central Park West",
      "addressLocality": "New York",
      "addressRegion": "NY",
      "postalCode": "10024",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "NYC Jazz Foundation",
    "url": "https://jazzfest.com"
  },
  "performer": [
    {
      "@type": "MusicGroup",
      "name": "The Blue Note Quartet"
    },
    {
      "@type": "Person",
      "name": "Sarah Johnson"
    }
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://jazzfest.com/tickets",
    "price": "65.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2025-01-15T00:00:00-07:00"
  }
}
// Complete in-person music event schema

Example 2: Online Webinar

{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "SEO Masterclass: Schema Markup Secrets",
  "description": "Learn advanced schema markup strategies from industry experts in this 90-minute live webinar.",
  "image": "https://example.com/webinar-banner.jpg",
  "startDate": "2025-02-10T14:00:00-08:00",
  "endDate": "2025-02-10T15:30:00-08:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
  "location": {
    "@type": "VirtualLocation",
    "url": "https://zoom.us/j/123456789"
  },
  "organizer": {
    "@type": "Organization",
    "name": "SchemaBooster Academy",
    "url": "https://schemabooster.com"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/register",
    "price": "0",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2025-01-20T00:00:00-08:00"
  }
}
// Online event/webinar schema with virtual location

Example 3: Multi-Day Conference

{
  "@context": "https://schema.org",
  "@type": "BusinessEvent",
  "name": "Tech Summit 2025",
  "description": "Three days of keynotes, workshops, and networking with tech industry leaders.",
  "image": "https://techsummit.com/banner.jpg",
  "startDate": "2025-09-20T09:00:00-05:00",
  "endDate": "2025-09-22T18:00:00-05:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Austin Convention Center",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "500 E Cesar Chavez St",
      "addressLocality": "Austin",
      "addressRegion": "TX",
      "postalCode": "78701",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "Tech Events Inc",
    "url": "https://techsummit.com"
  },
  "offers": [
    {
      "@type": "Offer",
      "name": "Early Bird Ticket",
      "price": "299.00",
      "priceCurrency": "USD",
      "availability": "https://schema.org/SoldOut",
      "validFrom": "2024-12-01T00:00:00-05:00",
      "validThrough": "2025-02-01T00:00:00-05:00"
    },
    {
      "@type": "Offer",
      "name": "General Admission",
      "price": "399.00",
      "priceCurrency": "USD",
      "availability": "https://schema.org/InStock",
      "url": "https://techsummit.com/tickets",
      "validFrom": "2025-02-01T00:00:00-05:00"
    },
    {
      "@type": "Offer",
      "name": "VIP Pass",
      "price": "699.00",
      "priceCurrency": "USD",
      "availability": "https://schema.org/InStock",
      "url": "https://techsummit.com/tickets",
      "validFrom": "2025-02-01T00:00:00-05:00"
    }
  ]
}
// Multi-day hybrid conference with multiple ticket tiers

Example 4: Theater Performance

{
  "@context": "https://schema.org",
  "@type": "TheaterEvent",
  "name": "Shakespeare's Hamlet",
  "description": "Classic production of Hamlet featuring Tony Award-winning director and ensemble cast.",
  "image": "https://theater.com/hamlet-poster.jpg",
  "startDate": "2025-03-15T19:30:00-05:00",
  "endDate": "2025-03-15T22:00:00-05:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Shakespeare Theater",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "450 7th St NW",
      "addressLocality": "Washington",
      "addressRegion": "DC",
      "postalCode": "20004",
      "addressCountry": "US"
    }
  },
  "organizer": {
    "@type": "Organization",
    "name": "Shakespeare Theater Company"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://theater.com/hamlet/tickets",
    "price": "45.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
// Theater performance event schema

Event Date & Time Format

Event dates must use ISO 8601 format with timezone:

Format: `YYYY-MM-DDTHH:MM:SS±HH:MM`

Examples:

  • March 15, 2025 at 7:30 PM EST = `2025-03-15T19:30:00-05:00`
  • June 20, 2025 at 2:00 PM PST = `2025-06-20T14:00:00-08:00`
  • All-day event on July 4 = `2025-07-04T00:00:00-07:00`
// Correct date-time formats
"startDate": "2025-03-15T19:30:00-05:00"  // 7:30 PM EST
"startDate": "2025-06-20T14:00:00-08:00"  // 2:00 PM PST
"startDate": "2025-07-04"                  // All day event

// ❌ INCORRECT formats
"startDate": "March 15, 2025"     // Natural language
"startDate": "03/15/2025"         // US date format
"startDate": "2025-03-15 7:30pm" // Wrong time format

Event Status Values

Use the `eventStatus` property to indicate event state:

  • EventScheduled: Event is happening as planned
  • EventCancelled: Event has been cancelled
  • EventPostponed: Event delayed, new date TBA
  • EventRescheduled: Event moved to new date (update startDate)
  • EventMovedOnline: In-person event shifted to virtual
// Scheduled event (default)
"eventStatus": "https://schema.org/EventScheduled"

// Cancelled event
"eventStatus": "https://schema.org/EventCancelled"

// Postponed (no new date yet)
"eventStatus": "https://schema.org/EventPostponed"

// Rescheduled (update dates too)
"eventStatus": "https://schema.org/EventRescheduled",
"startDate": "2025-04-20T19:00:00-05:00"  // New date

Event Attendance Mode Values

Specify how attendees can participate:

  • OfflineEventAttendanceMode: In-person only
  • OnlineEventAttendanceMode: Virtual/online only
  • MixedEventAttendanceMode: Hybrid (both in-person and online)
// In-person event
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
  "@type": "Place",
  "name": "Convention Center",
  "address": { ... }
}

// Online event
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
  "@type": "VirtualLocation",
  "url": "https://zoom.us/j/123456789"
}

// Hybrid event
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": [
  {
    "@type": "Place",
    "name": "Main Venue",
    "address": { ... }
  },
  {
    "@type": "VirtualLocation",
    "url": "https://stream.example.com"
  }
]

How to Implement Event Schema

Step 1: Choose Event Type

Use the most specific event type:

  • MusicEvent - Concerts, festivals, performances
  • TheaterEvent - Plays, musicals, shows
  • DanceEvent - Dance performances, recitals
  • SportsEvent - Games, matches, tournaments
  • BusinessEvent - Conferences, seminars, trade shows
  • EducationEvent - Classes, workshops, training
  • Event - Generic type for other events

Step 2: Generate Your Event Schema

Use SchemaBooster's event generator:

  • Select 'Event' schema type
  • Choose specific event subtype
  • Fill in event details (name, date, location, price)
  • Add images and description
  • Set event status and attendance mode
  • Copy generated JSON-LD code

Step 3: Add to Your Event Page

Place schema in the `<head>` or before `</body>`:

<!DOCTYPE html>
<html>
<head>
  <title>Summer Jazz Festival 2025</title>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "MusicEvent",
    "name": "Summer Jazz Festival 2025",
    ...
  }
  </script>
</head>
<body>
  <!-- Event page content -->
</body>
</html>

Step 4: Validate Event Schema

  • Open Google Rich Results Test
  • Enter your event page URL
  • Verify "Event" appears in detected items
  • Check for errors or warnings
  • Fix any issues and retest
  • Confirm dates, location, and pricing display correctly

See our schema testing guide for details.

Event Schema Best Practices

  • Use Specific Event Types: Choose MusicEvent, TheaterEvent, etc. over generic Event
  • Include High-Quality Images: Minimum 1200px wide for event cards
  • Add Detailed Descriptions: Help users understand what to expect
  • Set Correct Timezone: Always include timezone offset in dates
  • Update Event Status: Mark cancelled/postponed events immediately
  • Include All Ticket Tiers: List multiple offers if you have different pricing
  • Add Performer Info: For concerts/shows, list all performers
  • Use VirtualLocation: For online events, provide meeting/streaming URL
  • Keep Schema Current: Update dates, status, and availability regularly
  • Match Visible Content: Schema must reflect event details on page

Common Event Schema Mistakes

Mistake 1: Wrong Date Format

Using human-readable dates instead of ISO 8601.

Fix: Always use YYYY-MM-DDTHH:MM:SS±HH:MM format with timezone.

Mistake 2: Missing Location Type

Not specifying whether location is Place or VirtualLocation.

Fix: Use "Place" for physical venues, "VirtualLocation" for online events.

Mistake 3: Not Updating Cancelled Events

Leaving eventStatus as "Scheduled" when event is cancelled.

Fix: Update to "EventCancelled" immediately when events are cancelled.

Mistake 4: Incomplete Offer Information

Missing price, currency, or availability in offers.

Fix: Include complete offer details with URL, price, currency, and availability status.

Frequently Asked Questions

Do I need event schema for every event?

Yes, add event schema to every event page to be eligible for Google Events and rich results. Without schema, your events won't appear in enhanced search features, significantly limiting discoverability and attendance.

How long before my event appears in Google Events?

After implementing valid event schema, Google typically takes 1-3 weeks to process and display events in Google Events. Events must also have future start dates - past events won't appear. Use Search Console URL Inspection to request immediate indexing.

Can I add multiple events to one page?

While possible, it's better to create individual pages for each event. Multiple events on one page can confuse search engines about which event to feature. For event series, create separate pages for each date or use a single event with multiple performances.

What if my event is free?

For free events, set price to "0" and include all other offer properties. Free events are eligible for all event rich results and Google Events features.

Related Reading

Conclusion: Promote Events with Schema Markup

Event schema markup is essential for event organizers in 2025. It's the difference between being discovered in Google Events with beautiful event cards, or being lost in generic search results.

Your Event Schema Checklist:

  • ✅ Use specific event type (MusicEvent, BusinessEvent, etc.)
  • ✅ Include name, startDate, and location (required)
  • ✅ Add endDate, description, and image
  • ✅ Set eventStatus and eventAttendanceMode
  • ✅ Include complete offer/ticket information
  • ✅ Use ISO 8601 date format with timezone
  • ✅ Add high-quality event images (1200px+)
  • ✅ Validate with Rich Results Test
  • ✅ Update status for cancelled/postponed events
  • ✅ Monitor in Search Console

Ready to get your events featured in Google? Generate validated event schema in minutes with SchemaBooster's event generator. Sell more tickets today.

TAGS

event schemaGoogle Eventsevent marketingstructured dataevent SEO

Ready to Boost Your SEO?

Generate professional schema markup in seconds with AI-powered accuracy.