SchemaValid
ENDE

Event Schema Generator

Create valid Event JSON-LD structured data for your events — in-person, online or hybrid, with date, location, status and ticket price, ready for Google rich results. Instant, in your browser, free.

Try an example

Basic details


Time & status


Location


Tickets (optional)

JSON-LD code

Fill in the required fields (name, start date, and a venue or online URL) to generate the JSON-LD code.

Why use Event schema?

Event structured data lets Google understand the key facts about your event — its name, date and time, location, attendance mode and ticket price — and show them directly in search results and the Google event experience. When a user searches for concerts, conferences, workshops or webinars, eligible events can appear as rich results with the date and venue right in the listing, and even in a dedicated events carousel. That prominence makes your listing far more visible and clickable than a plain blue link, and it works for free: there is no paid placement, just valid markup on an indexable event page.

Marking up online vs. in-person events correctly

The eventAttendanceMode and location properties must match how the event actually takes place. For an in-person event, set the mode to offline and provide a physical Place with a name and address. For an online event, set the mode to online and provide a VirtualLocation with the URL where attendees join — never a physical address. Hybrid events use the mixed mode and should include both a physical Place and a VirtualLocation. This tool switches the location fields automatically based on the attendance mode you pick, so you always produce the location type Google expects. Getting this wrong is the most common reason event rich results fail to appear.

How to add the schema to your site

Copy the generated code and paste it into a script tag of type application/ld+json in the head section of the page describing that specific event — one event per page. The name, date and location in the markup must match what visitors see. Once the page is indexed, Google can use it for event rich results. A minimal example looks like this:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "SchemaValid Conf 2026",
  "startDate": "2026-09-15T09:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "Berlin Congress Center",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Berlin",
      "addressCountry": "DE"
    }
  }
}
</script>

Frequently asked questions

Which fields are required for Event schema?
Google needs at least an event name, a start date, and a location — either a physical venue or, for online events, a virtual URL. This tool enforces exactly that, and switches the location fields based on the attendance mode you choose.
How do I mark up an online event or webinar?
Set the attendance mode to Online. The tool then hides the physical address fields and asks for the URL where attendees join, which it outputs as a VirtualLocation. Do not use a physical address for an online-only event.
How do I handle a hybrid event?
Choose the Hybrid mode. You can then provide both a physical venue and an online URL, and the tool outputs a location array containing both a Place and a VirtualLocation — exactly what Google expects for events people can attend either way.
What date format does the tool use?
It uses ISO 8601, for example 2026-09-15T09:00. Providing a start time (not just a date) is recommended. If your event spans multiple days or hours, add an end date and time as well.
Do cancelled or postponed events need special markup?
Yes. Set the status to Cancelled or Postponed instead of removing the page. Google uses eventStatus to update the listing, so keeping the marked-up page live with the correct status is better than deleting it.
What is Event schema markup?
Event schema markup is a JSON-LD snippet based on the schema.org Event type that describes a specific, dated happening — its name, timing, location and attendance mode — in a machine-readable way. It's an extra layer for search engines on top of the event page visitors already see.
Can I list several events on one page?
It's better not to. Google expects one Event per dedicated, indexable page, the same way it expects one job posting or one course per page. If you run a recurring series, create a separate page and Event entry for each date rather than bundling several occurrences into one page.
Do I need to remove the page once an event has happened?
No, but you shouldn't leave a past event's markup looking like it's still upcoming. Once the date has passed, either take the page down, mark the eventStatus appropriately if it changes (cancelled/postponed), or accept that Google will naturally stop showing an event whose date is in the past.
What's the difference between Event and LocalBusiness schema?
Event describes a specific occurrence with a start and (usually) end date — it happens once or on a defined schedule. LocalBusiness describes a permanent place or organization that's open on an ongoing basis. A concert has an Event; the venue that hosts it might separately have a LocalBusiness entry.
Can I combine Event schema with other schema types?
Yes. It's common to pair Event with an Organization entry for the organizer, or with BreadcrumbList for navigation — each as its own JSON-LD block on the same page. They don't conflict with each other.
How do I handle a recurring event, like a weekly meetup?
Create a separate Event entry — ideally on its own page — for each individual date rather than trying to express the whole series with a single start/end date range. A date range on one Event describes one continuous occurrence, not a series of repeated ones.
Does valid Event markup guarantee my listing gets a rich result?
No. Valid structured data makes your event eligible, but Google decides which listings actually get the enhanced display based on overall page quality and relevance. Keeping the markup accurate and matching what's visible on the page gives you the best chance.

Related tools