Generate valid Event JSON-LD structured data for concerts, webinars, conferences, and workshops. Add dates, location, tickets, and organizer details, then copy the markup. Free, no sign-up required.
The public name of the event. This is required for valid Event markup.
How people attend. This controls which location fields you fill in below.
Keep this current. Update it to Cancelled or Rescheduled if plans change.
The act, speaker, or group appearing at the event.
Enter your event name above and your JSON-LD will build here automatically.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled"
}
</script><head> section of the event page (or your event template).Structured data tells search engines what your event is. These free widgets make the page better for attendees.
Add a countdown timer to your event page so visitors feel the clock ticking. Urgency turns browsers into registrations.
Show your full schedule in a clean calendar so people can see every session at a glance and plan their day.
Let attendees message you in one tap for questions about tickets, timing, or the venue. Fast answers mean more sign-ups.
Show off the venue, past events, or speakers in a swipeable gallery. Great visuals sell the experience before it starts.
Other free tools to help you optimize and grow.
Generate Organization, WebSite, and LocalBusiness JSON-LD structured data for your whole site.
Use Tool →Generate Article, BlogPosting, and NewsArticle JSON-LD structured data for your posts.
Use Tool →Generate valid FAQ Page JSON-LD structured data to earn FAQ rich results.
Use Tool →Generate title, description, and social meta tags for any page in seconds.
Use Tool →Create Open Graph and Twitter Card tags so your links look great when shared.
Use Tool →How It Works
No account needed, no sign-up, completely free. Fill in your event details, and valid JSON-LD structured data builds live, ready to copy into your page.
Add the event name, description, start and end times, and a high-resolution image. Pick how people attend: in-person, online, or a mix of both.
Fill in the venue address or the online joining link, add a ticket price and link if you sell them, and name the performer and organizer. Everything you type builds the markup live, with no empty fields left in.
Copy the generated JSON-LD, paste it into the head of your event page, and confirm it with the Google Rich Results Test. No sign-up, completely free.
The Basics
Search engines read your event page, but structured data tells them exactly what they are looking at: the name, when it happens, where, and how to attend.
The idea
Your event details → schema.org vocabulary → JSON-LD in your <head>
Result: search engines understand your event as data, not just text
Event schema is structured data that describes a single event using the shared schema.org vocabulary. Instead of hoping Google infers the date, venue, and price from your HTML, you state them explicitly in a format built for machines to read.
The recommended format is JSON-LD: a small block of JSON placed in the head of the page. It lives separately from your visible content, so it is easy to add without touching your design. This generator handles in-person, online, and hybrid events, so you can describe how people actually attend.
Structured data does not guarantee rankings or rich results, but it makes your event unambiguous to search engines and to the AI assistants that increasingly summarize the web. Clear data means your event is easier to represent, and surface, correctly.
Attendance Modes
Every event has an attendance mode. It decides which location details you provide and how search engines describe attending. Here is what each one means.
| Mode | What it does | When to use | Role |
|---|---|---|---|
| In-person | The event happens at a physical venue. You provide the venue name and postal address. | Concerts, conferences, workshops, and meetups at a real location. | Offline |
| Online | The event is virtual. You provide the URL where people join, and location becomes a VirtualLocation. | Webinars, livestreams, and virtual summits. | Online |
| Mixed | The event runs both in-person and online at once. You can provide both a venue and a joining URL. | Hybrid conferences and events with an in-room and a streaming audience. | Mixed |
Based on schema.org event attendance modes supported by Google Search, 2026.
What It Can Unlock
Structured data makes your event eligible for search features and helps machines understand it. Eligibility is never guaranteed, but the groundwork matters.
Valid Event markup makes your event eligible for enhanced listings that show the date, location, and name directly in search results.
Structured event data can surface your event in Google event features and the event pack, where people go looking for things to do.
Explicit start and end times and a marked-up address remove any guesswork about when and where your event happens.
Adding an Offer lets search engines show pricing and a link to buy or register, so people can act without extra clicks.
Naming the performer and organizer connects your event to the people behind it and helps searchers recognize who is involved.
Structured event data makes your details easier for AI answer engines to read, attribute, and summarize accurately.
Avoid These
Structured data helps only when it is accurate and valid. Steer clear of these common errors.
Google shows upcoming events. Mark up events with a real future start date, and remove or update markup once an event has passed.
Use real future datesA start time in the wrong zone sends people to a livestream or venue at the wrong hour. Enter the local time of the event carefully.
Get the time zone rightOnly add Event schema to genuine, scheduled events. Marking up a page that is not really an event violates Google guidelines.
Mark up real events onlyIf an event is cancelled or postponed, change the eventStatus. Leaving it as Scheduled misleads people and search engines.
Keep the status currentFor in-person events, include the venue and full address. For online events, include the joining URL. A location people cannot act on is a dead end.
Give a usable locationAlways run your markup through the Rich Results Test and Schema.org Validator. A single syntax slip can invalidate the whole block.
Validate before you shipGet More From It
Practical ways to make your schema work harder. All CommonNinja widgets mentioned are free to start.
Event schema belongs in the head of the specific event page, not your homepage. If you run many events, add it to your event template so each one gets its own markup.
The start date is what makes your event eligible for event experiences in search. Set it as early as you can, even before other details are final.
Schema tells search engines about your event; a countdown timer tells your visitors the clock is ticking. Pair the two to turn interest into registrations.
Try the Countdown widget →When plans change, update eventStatus to Cancelled, Postponed, or Rescheduled. It protects your credibility and keeps search results accurate.
If you sell tickets, include an Offer with a price and a working URL. It lets search engines show pricing and sends people straight to checkout.
Re-run the Rich Results Test whenever you edit your markup or change the event details. It catches errors before Google does.
Glossary
A quick reference for the properties behind event markup.
| Field | Definition | Example | When It Matters |
|---|---|---|---|
| name | The public name of the event. This is required and should match the title shown on the page. | Summer Launch Webinar | Every event you mark up |
| startDate | When the event begins, in ISO 8601 format with the local date and time. This drives event eligibility in search. | 2026-09-01T19:00 | Every event you mark up |
| eventAttendanceMode | Whether the event is in-person, online, or both. It tells search engines how people can attend. | OfflineEventAttendanceMode | Online, in-person, and hybrid events |
| eventStatus | The current state of the event: scheduled, cancelled, postponed, or rescheduled. Keep it up to date as plans change. | EventScheduled | Any event whose plans might change |
| location | Where the event happens: a Place with an address for in-person events, or a VirtualLocation with a URL for online events. | Place or VirtualLocation | Every event you mark up |
| offers | Ticket details, including price, currency, and a link to buy or register. Optional but useful for ticketed events. | Offer + price + URL | Ticketed and paid events |
From the Blog
Go deeper on promoting events and making your content easier for search engines to understand.
In this article, we are going to explain how to create an Event website. ...
Read article →In this article, we are going to discuss SEO, explain why it’s important to the success of a website, and suggest ways t...
Read article →In this article, we will look at some important SEO factors to consider when building a website, for the purpose of incr...
Read article →In this article, we are going to discuss the useEvent() hook in React, and explain how to use it. ...
Read article →n this article, we explain what WordPress registration and WordPress registration spam are and provide you with eight me...
Read article →In this article, we examine the use of tournament brackets in marketing, focusing on their appeal and strategies for max...
Read article →