
When someone searches ‘concerts in London next week’ or ‘marketing workshops near me’, Google shows a special Events section at the top of the results — complete with event names, dates, venues, and ticket links. This is Google’s rich results feature for events, and it can dramatically increase the visibility of your WordPress events.
This guide explains exactly how event rich results work, what markup is required, how to implement it in WordPress with zero configuration, and how to test that Google can read your event data correctly.
What Are Google Rich Results for Events?
Rich results are enhanced search listings that go beyond the standard blue link + description format. For events, Google can show:
- Event name and description
- Start and end date/time
- Event location (venue name and address)
- Online event indicator for virtual events
- Ticket/registration links
- Event image
Events rich results appear in three places in Google Search: the standard search results page (as an enhanced listing), the Events carousel at the top of the page for event-related queries, and Google’s dedicated Events experience (accessible via the ‘Events’ filter in Search).
Why Rich Results Matter for Event SEO
- Higher click-through rates — rich results stand out visually and get significantly more clicks than standard listings
- More qualified traffic — users who click already know the date, time, and location
- Events carousel placement — appear in the prominent carousel at the top of search results
- Competitive advantage — most WordPress event sites do not implement this correctly
- AI model citations — structured data helps AI assistants (ChatGPT, Perplexity, Gemini) accurately describe your events
How Event Rich Results Work: Event Schema Markup
To get rich results, you need to add structured data to your event pages. Google reads this data — written in a format called JSON-LD — and uses it to understand your event details and decide whether to show a rich result.
Event structured data follows the Schema.org/Event specification. Here is a complete, valid example for a WordPress event page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "WordPress Developer Meetup — June 2026",
"startDate": "2026-06-18T18:30:00+05:30",
"endDate": "2026-06-18T21:00:00+05:30",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "The Innovation Hub",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Tech Street",
"addressLocality": "Mumbai",
"addressRegion": "Maharashtra",
"postalCode": "400001",
"addressCountry": "IN"
}
},
"image": "https://xylusthemes.com/wp-content/uploads/event-image.jpg",
"description": "Join our monthly WordPress developer meetup...",
"organizer": {
"@type": "Organization",
"name": "XylusThemes",
"url": "https://xylusthemes.com"
},
"offers": {
"@type": "Offer",
"url": "https://xylusthemes.com/events/wp-meetup-june/",
"price": "0",
"priceCurrency": "INR",
"availability": "https://schema.org/InStock",
"validFrom": "2026-05-01"
}
}
</script>Required vs. Recommended Event Schema Properties
Google has strict requirements for event rich results eligibility. Missing required properties will prevent your events from qualifying.
Required Properties (must have all of these)
- name — The full name of the event
- startDate — ISO 8601 format with time and timezone (e.g. 2026-06-18T18:30:00+05:30)
- location — Either a Place with an address, or VirtualLocation for online events
Strongly Recommended (significantly improve eligibility)
- endDate — When the event finishes
- eventStatus — EventScheduled, EventCancelled, EventPostponed, or EventRescheduled
- eventAttendanceMode — OfflineEventAttendanceMode, OnlineEventAttendanceMode, or MixedEventAttendanceMode
- image — A high-quality image of the event (minimum 720px wide)
- description — A clear description of the event
- offers — Ticket price and availability information
- organizer — Who is running the event
- performer — Speakers, bands, or key participants
How to Add Event Schema in WordPress
Method 1: Automatic Schema via the Event Schema Plugin — Zero Configuration
This is the easiest method, and it needs no setup at all. If WP Event Aggregator is already active on your site, the Event Schema plugin works completely automatically:
- Install and activate the Event Schema plugin from xylusthemes.com
- That’s it — since WP Event Aggregator is already active, valid JSON-LD schema is automatically generated and injected on every event page as soon as the plugin is active. No field mapping, no settings to fill in, nothing to configure.
- The only reason to visit Event Schema → Settings is if you ever want to disable schema output — that’s the one toggle available there. There’s nothing to configure to turn schema on; it’s on by default the moment the plugin is active.
When you update an event through WP Event Aggregator, the schema updates automatically too.
Method 2: Manual JSON-LD in WordPress Pages
For one-off events on standard WordPress pages, add the schema manually:
- Open the event page in the WordPress block editor
- Add a ‘Custom HTML’ block at the bottom of the page
- Paste your complete JSON-LD script (using the template above, with your event details)
- Update the page
💡 PRO TIP: Always use ISO 8601 format for dates: YYYY-MM-DDTHH:MM:SS+TIMEZONE. Google will reject events with ambiguous date formats. For IST, use +05:30 as the timezone offset.
Method 3: Using Yoast SEO or RankMath
Both Yoast SEO Premium and RankMath Pro include event schema support. In Yoast, this appears under the ‘Schema’ tab in the block editor sidebar. In RankMath, use the Schema module to select ‘Event’ and fill in the fields.
Testing Your Event Schema
Before submitting your site to Google, test your schema implementation to catch errors:
Google’s Rich Results Test
- Go to search.google.com/test/rich-results
- Enter your event page URL and click ‘Test URL’
- Look for ‘Event’ in the detected items list
- Green = eligible for rich results. Yellow = warnings (may still qualify). Red = errors (will not qualify)
Common errors to watch for: missing required fields, invalid date format, mismatched image dimensions, and invalid eventStatus values.
Google Search Console
Once your events are indexed, check Google Search Console → Enhancements → Events to see which event pages are eligible for rich results, which have errors, and which are successfully appearing as rich results.
Common Event Schema Errors and How to Fix Them
| Error | Cause | Fix |
|---|---|---|
| Missing required field: name | Event post has no title | Ensure every event post has a title |
| Missing required field: location | Venue not set | Add venue name and full address to event |
| startDate not valid | Wrong date format | Use ISO 8601: 2026-06-18T18:30:00+05:30 |
| Image too small | Image under 720px wide | Use event images at least 1200x630px |
| Offer price invalid | Price missing currency | Always include priceCurrency with offers.price |
| eventStatus not recognised | Typo in status value | Use exact URL: schema.org/EventScheduled |
Online Events and Hybrid Events
Post-2020, Google added specific schema support for online and hybrid events. If your event is fully online, use VirtualLocation instead of Place:
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"location": {
"@type": "VirtualLocation",
"url": "https://zoom.us/j/your-meeting-id"
}For hybrid events (both in-person and online), use MixedEventAttendanceMode and include both a Place and a VirtualLocation in an array.
Event Schema for Recurring Events
If you run events that repeat (weekly meetups, monthly workshops), each occurrence should have its own event page with its own schema. Google does not currently support a single recurring event schema — each date needs individual markup.
WP Event Aggregator handles this automatically when syncing recurring events from Meetup, Eventbrite, or Google Calendar — each imported occurrence gets its own event post with correct schema, automatically, via the Event Schema plugin.
Frequently Asked Questions
Do I need to configure anything after installing the Event Schema plugin?
No. As long as WP Event Aggregator is already active, schema generation is fully automatic the moment you activate the Event Schema plugin. The settings page only has an option to disable schema output — there’s nothing to set up to turn it on.
How long does it take to appear as a rich result?
Google typically processes event schema within 1–7 days of crawling the page. For new sites or pages, it may take longer for Googlebot to first crawl and index your event pages. Submit your sitemap in Google Search Console to speed up discovery.
My schema is valid but events still don’t show as rich results. Why?
Valid schema is necessary but not sufficient. Google’s selection of rich results also depends on your site’s overall authority, the specificity of the search query, and whether the event is timely. Sites with higher domain authority are more likely to be shown as rich results.
Do I need schema on every event page or just the main events page?
Schema must be on the individual event page (the page with a unique URL for each event). A single events listing page that shows multiple events can include schema for each event, but individual event pages with their own schema are the most reliable approach.
Summary
Event rich results are one of the most powerful, underutilised SEO features for WordPress event websites. Getting your events into Google’s Events carousel means more visibility, more qualified clicks, and an experience that puts your event details front-and-centre in search.
- Install the Event schema plugin — with WP Event Aggregator already active, schema is generated automatically with zero configuration
- Include all required fields: name, startDate, location (handled automatically for imported events)
- Recommended fields (endDate, image, offers, organizer) are included automatically for best eligibility
- Test with Google’s Rich Results Test before going live
- Monitor performance in Google Search Console → Events
For automatic Event schema on every WordPress event you publish, see the XylusThemes Event Schema plugin at xylusthemes.com.