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.
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 schemaExample 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 locationExample 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 tiersExample 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 schemaEvent 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 formatEvent 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 dateEvent 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
- How to Add Schema Markup to Your Website - General implementation guide
- What is Structured Data in SEO? - Understanding structured data fundamentals
- How to Test Schema Markup - Validate your event schema
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.