Dates
Location
Tickets
Performers and organizer
Checking… ·
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
Name, type and dates
Choose MusicEvent, BusinessEvent, Festival, SportsEvent and others; set start and end with the local time zone offset.
Where it happens
At a venue (Place with address), online (VirtualLocation with URL) or both – the attendance mode is written to match.
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.