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.

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.

Related tools