If you run a website that promotes events — concerts, workshops, webinars, conferences, or local meetups — adding event schema markup to your WordPress site can dramatically improve your visibility in Google Search. Events with proper schema markup can appear as rich results: showing date, time, location, and ticket information directly in search results, before users even click your link.

In this guide, we’ll explain exactly what event schema is, why it matters for SEO, and walk through two methods for adding it to WordPress: manually with JSON-LD, and automatically using the free Event Schema plugin by Xylus Themes.

What Is Event Schema Markup?

Schema markup (also called structured data) is a standardized vocabulary of tags defined by Schema.org — a collaborative project by Google, Microsoft, Yahoo, and Yandex. When you add schema markup to your pages, you’re giving search engines structured, machine-readable information about your content.

Event schema specifically tells search engines that a page describes an event, and provides key details: the event name, start and end date/time, location (physical or virtual), organizer, ticket URL, and more. Google uses this data to power Event rich results in search.

Why Event Schema Matters for SEO

Rich Results Appearance: Events with schema can appear in the Events carousel or with enhanced listings in Google Search, showing date, time, and location directly in SERPs.

Higher Click-Through Rates: Rich results with event details have significantly higher CTR than plain blue links — users see exactly when and where the event is before clicking.

Google Events Pack Visibility: Google sometimes shows a dedicated ‘Events’ section in search results for relevant queries. Schema is the key to getting into this pack.

Voice Search Optimization: Voice assistants like Google Assistant use event schema to answer ‘What events are happening near me?’ queries.

AI Search Citations: AI-powered search (ChatGPT, Google AI Overviews, Gemini) increasingly uses structured data to provide factual answers about events.

Required vs. Recommended Event Schema Properties

Google requires certain properties to be present for an event to qualify for rich results:

Required Properties

@name: The name of the event (e.g., ‘Annual WordPress Developer Conference 2026’).

@startDate: The start date and time in ISO 8601 format (e.g., ‘2026-06-15T09:00:00’).

@location: The venue or virtual location — requires a nested Place or VirtualLocation object.

Recommended Properties (for richer results)

@endDate: End date and time of the event.

@description: A description of the event (up to 500 characters recommended).

@image: URL of an image representing the event.

@url: URL of the event’s page.

@organizer: The organization hosting the event.

@offers: Ticket information including price, currency, availability, and purchase URL.

@eventStatus: EventScheduled, EventCancelled, EventPostponed, or EventMovedOnline.

@eventAttendanceMode: InPerson, Online, or MixedEventAttendanceMode.

Method 1: Adding Event Schema Manually (JSON-LD)

JSON-LD (JavaScript Object Notation for Linked Data) is Google’s preferred format for structured data. You add it as a script block in your page’s HTML. Here’s a complete example:

{
“@context”: “https://schema.org”,
“@type”: “Event”,
“name”: “WordPress Plugin Development Workshop 2026”,
“startDate”: “2026-06-15T09:00:00+05:30”,
“endDate”: “2026-06-15T17:00:00+05:30”,
“eventAttendanceMode”: “https://schema.org/OfflineEventAttendanceMode”,
“eventStatus”: “https://schema.org/EventScheduled”,
“location”: {
“@type”: “Place”,
“name”: “Tech Innovation Hub”,
“address”: {
“@type”: “PostalAddress”,
“streetAddress”: “123 Tech Street”,
“addressLocality”: “Mumbai”,
“addressCountry”: “IN”
}
},
“description”: “A full-day hands-on workshop on building custom WordPress plugins.”,
“organizer”: {
“@type”: “Organization”,
“name”: “Xylus Themes”,
“url”: “https://xylusthemes.com”
},
“offers”: {
“@type”: “Offer”,
“url”: “https://xylusthemes.com/events/wp-workshop/”,
“price”: “0”,
“priceCurrency”: “INR”,
“availability”: “https://schema.org/InStock”,
“validFrom”: “2026-05-01T00:00:00”
},
“image”: “https://xylusthemes.com/wp-content/uploads/event-workshop-2026.jpg”
}

How to Add This to WordPress Manually

  1. Open your event page in the WordPress editor (Gutenberg or Classic).
  2. In Gutenberg: Add a ‘Custom HTML’ block at the bottom of the page. In Classic Editor: Switch to Text/HTML view.
  3. Wrap the JSON-LD in a <script> tag: <script type=’application/ld+json’> … </script>
  4. Paste the complete JSON-LD code inside the script tags.
  5. Update/Publish the page.
  6. Test it using the Google Rich Results Test tool.

💡 Tip: Use the Google Rich Results Test (search.google.com/test/rich-results) to validate your schema before publishing. It shows exactly how Google sees your structured data and highlights any errors.

Method 2: Using the Event Schema Plugin (Recommended)

Manually adding JSON-LD to every event page is time-consuming and error-prone. The Event Schema plugin by Xylus Themes automates this process — generating valid, Google-compliant event schema for every event page without you touching a single line of code.

Installing Event Schema Plugin

  1. Go to your WordPress admin → Plugins → Add New Plugin.
  2. Search for ‘Event Schema’ in the plugin search box.
  3. Find ‘Event Schema — Structured Data for Events’ by Xylus Themes and click Install Now.
  4. Click Activate after installation.
  5. You’ll now see ‘Event Schema’ in your WordPress admin sidebar.

Configuring Event Schema for Your Events

Set up the plugin defaults

Navigate to Event Schema → Settings. Configure default organizer details (name, URL, logo) that will apply to all events.

Add schema to an event page

Open any post or page that describes an event. Scroll down to find the ‘Event Schema’ meta box below the editor.

Fill in event details

Enter the event name, start/end date and time, location (venue name, address), and ticket/registration URL.

Set attendance mode

Specify whether the event is In-Person, Online, or Hybrid.

Add ticket information

Enter ticket price, currency, availability status, and purchase URL for rich results in ticket carousels.

Save the page

Update/Publish the page. The plugin automatically generates and injects the correct JSON-LD schema.

Validate

Use the Google Rich Results Test to confirm the schema is rendering correctly.

Testing and Validating Your Event Schema

After adding event schema, always validate it using these tools:

Google Rich Results Test (search.google.com/test/rich-results): Enter your page URL. It shows whether your event qualifies for rich results and highlights any property errors or warnings.

Schema.org Validator (validator.schema.org): More detailed validation against the full Schema.org specification. Good for catching subtle property errors.

Google Search Console (Rich Results Report): Once your pages are indexed, Google Search Console shows which pages have valid event schema and any errors detected during crawling.

Common Event Schema Errors and How to Fix Them

Error: Missing required ‘startDate’ property

Fix: Add the startDate in ISO 8601 format: YYYY-MM-DDTHH:MM:SS. Don’t forget the timezone offset.

Error: Location is not a valid Place object

Fix: The location must be a nested object with @type: ‘Place’, ‘VirtualLocation’, etc. A plain text address is not sufficient.

Error: Invalid date format

Fix: Use ISO 8601: 2026-06-15T09:00:00+05:30, not ’15th June 2026′ or ‘9:00 AM’.

Error: Event status not recognized

Fix: eventStatus must use the full Schema.org URL: ‘https://schema.org/EventScheduled’, not just ‘EventScheduled’.

Error: Ticket price is free but showing as error

Fix: For free events, set price to ‘0’ (string, not number) and priceCurrency to a valid ISO 4217 currency code.

Frequently Asked Questions

Does event schema guarantee rich results in Google?

No, Google doesn’t guarantee rich results even with valid schema. However, valid schema is required to be eligible for rich results. Google’s algorithms decide which pages to show as rich results based on relevance, quality, and other signals.

Does event schema work for virtual/online events?

Yes. For online events, use @type: ‘VirtualLocation’ for the location, and set eventAttendanceMode to ‘https://schema.org/OnlineEventAttendanceMode’. Include the URL where the event will take place.

Can I add schema to multiple events at once?

With the Event Schema plugin from Xylus Themes, each event page gets its own schema. For bulk events, you’d add schema to each page individually through the meta box in the editor. More advanced automation may require the Pro version or custom development.

What’s the difference between adding schema in Yoast SEO vs Event Schema plugin?

Yoast SEO handles general schema (Article, Website, Organization). For event-specific schema with all the required event properties (dates, location, tickets, status), a dedicated plugin like Event Schema provides a much more complete and correct implementation.

How quickly does Google pick up schema changes?

Google recrawls pages on its own schedule, which can take from a few days to a few weeks. You can speed this up by submitting the updated URL in Google Search Console under URL Inspection → Request Indexing.

Conclusion

Event schema markup is one of the highest-ROI structured data improvements you can make to a WordPress site that promotes events. A few minutes of setup can result in dramatically enhanced search result appearances — with dates, times, locations, and ticket links visible directly in Google without a user needing to click through.

The fastest way to get started is with the free Event Schema plugin by Xylus Themes, which automates the entire JSON-LD generation process and ensures your schema stays valid as Google updates its guidelines.

Recommended Reading from Xylus Themes

To further optimize your event management and automation strategy, check out our latest expert guides:

Published by Xylus Support

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    We strive to be the best and make awesome work

    Get a quote for your next project.