Fields

The schema.org type; more specific types help search engines.
The title of the event – not the venue, prices or promotions.
A short description that matches the visible text.
Absolute, crawlable image URLs. Google recommends 16:9, 4:3 and 1:1 versions of at least 50,000 pixels.

Dates

Date and time.
Offset added to the dates. Without it Google assumes the time zone of Googlebot.
Keep the original date when an event is postponed or cancelled.

Location

At a venue, online, or both.
Not the event title.
Address required
Two-letter ISO 3166-1 code, e.g. US, DE.

Tickets

Tickets recommended

One row per ticket type.

    Performers and organizer

    Performers recommended
      Organizer recommended
      The schema.org type; more specific types help search engines.
      The title of the event – not the venue, prices or promotions.
      The canonical URL of the page.

      JSON-LD

      Checking… ·

      Files never leave your browserHow?

      Event markup for venues, livestreams and hybrid events

      This event schema generator writes Event JSON-LD for in-person, online or hybrid events. Set dates with a time zone, the venue or stream link, status and tickets, and copy the validated script block.

      Last updated:

      How it works

      1. Name, type and dates

        Choose MusicEvent, BusinessEvent, Festival, SportsEvent and others; set start and end with the local time zone offset.

      2. Where it happens

        At a venue (Place with address), online (VirtualLocation with URL) or both – the attendance mode is written to match.

      3. Tickets and people

        One offer per ticket type, performers and the organizer; then copy the block and check the Event result.

      Features

      • Hybrid events done right

        Mixed attendance writes two locations, a Place and a VirtualLocation, and the validator warns when the mode and the location disagree.

      • Event status

        Scheduled, cancelled, postponed, rescheduled or moved online. Rescheduled events get a previous start date field; the original start date always stays.

      • Several ticket types

        Price, currency, availability (in stock, sold out, pre-order), sale start and ticket URL for each offer.

      • Time zones

        Pick the offset of the venue; without it Google assumes the time zone of Googlebot and may show the wrong time.

      Limits & privacy

      Imported JSON-LD or HTML can be up to 1 MB. One time zone is used for all dates of the event; recurring series (eventSchedule) are not part of the form.

      Online events: the stream URL is written as a VirtualLocation. Google’s current documentation describes physical locations in detail; online-only events are valid schema.org but may not get the same display.

      Validation uses the schema.org vocabulary (© schema.org sponsors, CC BY-SA 3.0, see licenses). Event details stay in your browser – see the privacy page.

      FAQ

      What does Google require for an event?

      name, startDate and location. A venue needs a Place with an address; recommended are description, endDate, eventStatus, image, offers, organizer and performer.

      What should I do when an event is cancelled?

      Keep the page and the markup, keep the original dates and location, and change eventStatus to EventCancelled. Removing the start date makes the event unrecognisable.

      How do I mark up a postponed event without a new date?

      Use EventPostponed and keep the old startDate until the new date is known; then switch to EventRescheduled with the new dates.

      Can I list events on a page that sells tickets for many events?

      Each event should have its own page with its own markup. Summary pages that only link to events are not eligible.

      Should the event name include the venue or price?

      No. Google asks for the event title only; the venue goes into location.name and the price into offers.

      Related tools