Blog
Wild & Free Tools

Free Event Schema Markup Generator

Last updated: April 2026 8 min read

Table of Contents

  1. What event schema does
  2. Required fields
  3. In-person vs virtual events
  4. Ticket and offer info
  5. Recurring events
  6. Event status changes
  7. Frequently Asked Questions

Event schema gets your concerts, workshops, classes, conferences, and webinars into Google's event search results — with the date, venue, price, and ticket link showing right in the snippet. Without it, your event page is invisible to anyone using Google to find things to do. Our free generator builds Event JSON-LD with every field Google's event rich results support.

What Event Schema Does in Google Search

Event schema lets Google build event-specific search results: a card with the event name, date, time, venue, and a "Buy tickets" or "Register" link. These cards appear in regular search, in the dedicated Events search vertical, in Google Maps when users tap on a venue, and in the Google Discover feed for users in your area.

For event organizers, this is huge. Searches like "concerts in Austin this weekend" or "yoga classes near me" surface event-rich-result cards almost exclusively. If you don't have Event schema, you're not in those results.

Event schema also feeds Google Knowledge Graph and AI assistants — if someone asks Gemini or ChatGPT "what's happening in Brooklyn tonight," the AI pulls from sites with structured event data.

Required and Recommended Event Fields

Required:

Recommended:

The eventStatus field became important during the pandemic and remains so — Google uses it to show "Cancelled" or "Online only" badges on event cards. Always include it.

In-Person, Virtual, or Both

Set eventAttendanceMode based on the event format:

For online events, the URL in VirtualLocation should be the registration or stream landing page — not your homepage. Google uses this for the "Register" link in the event card.

Sell Custom Apparel — We Handle Printing & Free Shipping

Ticket Pricing, Availability, and the Offers Block

The offers block is where you tell Google about ticket pricing. It's an Offer object with these fields:

If you have multiple ticket tiers (VIP, general admission, early bird), use an array of Offer objects. The generator handles both single and multi-tier pricing.

For free events, set price to "0" and include the offers block anyway — Google still uses it for the "Free" badge in the card.

Recurring Events: One Schema Per Date

Google's documentation is explicit on this: don't use one Event with a recurring rule. Instead, create one Event entry per occurrence. So if you run a yoga class every Tuesday for 12 weeks, you should have 12 Event entries — each with its own startDate.

The cleanest pattern: create an event listing page (e.g., yoursite.com/events/tuesday-yoga/), then dynamically render the next 8-12 occurrences as separate Event JSON-LD blocks on that page. As each event passes, it falls off the list and a new one is added. Google indexes them as upcoming events.

This is more work than a recurrence rule, but it's the only pattern Google supports. The good news: each event becomes its own potential rich result entry, so you get more visibility, not less.

Updating Event Status When Things Change

If an event gets cancelled, postponed, or moved online, update the eventStatus field immediately. Don't delete the page — Google will show stale info to anyone who searches in the meantime. Update the status, save, and Google will pick it up on the next crawl (typically within hours for popular pages).

Status values:

Google shows status badges directly on the event card. Updating quickly is essential for trust — sites that consistently show inaccurate event info get demoted in the events vertical.

Try It Free — No Signup Required

Runs 100% in your browser. No data is collected, stored, or sent anywhere.

Open Free Schema Markup Generator

Frequently Asked Questions

Does Event schema work for online webinars?

Yes. Set eventAttendanceMode to OnlineEventAttendanceMode and use VirtualLocation instead of Place. The URL inside VirtualLocation should be your registration or stream page. Google indexes online events alongside in-person ones.

Should I use one Event entry for a recurring class?

No. Google requires one Event per occurrence. If you run a class every Tuesday, create separate Event entries for each Tuesday's instance, each with its own startDate. Recurrence rules are not supported.

How do I include multiple ticket tiers in Event schema?

Use an array of Offer objects in the offers field. Each Offer has its own price, priceCurrency, name (like "VIP" or "General Admission"), and availability. Google can show multiple price tiers in the rich result.

What time format does startDate use?

ISO 8601 with timezone. Example: 2026-04-15T19:00:00-05:00 for 7pm Central Time on April 15, 2026. Always include the timezone offset — without it, Google may show the wrong time to users in different time zones.

Can I add Event schema to multiple events on one page?

Yes. Use an array of Event entries inside one script block, or use multiple separate script blocks. Both work. Google parses all Event entries on a page. This is the recommended pattern for an "upcoming events" listing page.

Does Event schema affect Google Maps listings?

Indirectly. Google can pull events from Event schema and show them in Maps under your venue listing — particularly if you also have a Google Business Profile and the schema is on a page Google trusts. Adding Event schema is a prerequisite, not a guarantee.

Launch Your Own Clothing Brand — No Inventory, No Risk