Event Schema Generator

Generate Schema.org Event JSON-LD - physical, virtual, or mixed events with attendance mode, offers, organizer, performer. Free, offline, client-side, instant, secure.

Generate Event JSON-LD for Schema.org and Google rich results. Supports physical, virtual (VirtualLocation), and mixed events with the right eventAttendanceMode, offers, organizer, and performer.

Basic Information

Location

Additional Details

tag. Drop it in the or anywhere in

How to Use Event Schema Generator

  1. Fill in the required fields. Event Name, Start date/time, Event Status, and the location bits - Venue Name for physical events, Online URL for virtual ones (Mixed needs both). All four required fields are marked with an asterisk.
  2. Pick the event type. Physical produces a Place location and OfflineEventAttendanceMode. Virtual produces a VirtualLocation with the meeting URL and OnlineEventAttendanceMode. Mixed produces an array with both and MixedEventAttendanceMode - that's the form Google recommends for hybrid events.
  3. Add the optional fields. Description, end date, image URL, ticket pricing (price + currency + availability + ticket URL → Offer), organizer, performer. Empty fields are excluded from the output rather than emitted as empty strings.
  4. Click "Generate schema" (or press Ctrl/Cmd + Enter). The tool validates required fields, builds the JSON-LD, and shows it in the output panel along with a stats line - total characters, UTF-8 byte size, and top-level property count.
  5. Copy or download the JSON. Paste into your page wrapped in <script type="application/ld+json">…</script> tags. Place it in <head> or anywhere in <body> - either works.
  6. Validate. Run the output through Google's Rich Results Test or the Schema.org validator before publishing. They'll catch any context-specific issues we can't predict.

Frequently Asked Questions

What is Event schema and why do I need it?

Event schema is Schema.org structured data that describes an event to search engines and assistants. With it, Google can show your event as a rich result – name, date, venue, ticket availability appear directly in search and on the Google “Events” tab. Without it your event is just a regular blue link. The cost to add it is one <script> tag.

What fields are required for valid Event schema?

Per Google’s structured-data documentation: name, startDate, location, and eventStatus. For virtual events the location must be a VirtualLocation with a url. For physical events it must be a Place with a name (and ideally a PostalAddress). Other fields (description, image, offers, performer) improve rich-result eligibility but aren’t required.

How does the tool handle online or hybrid events?

Pick “Virtual” in the Event type dropdown – the venue fields hide and an Online URL field appears. The output uses {"@type":"VirtualLocation","url":"…"} and sets eventAttendanceMode to OnlineEventAttendanceMode. Pick “Mixed” for hybrid events; the output uses both a Place and a VirtualLocation in an array, plus MixedEventAttendanceMode. That’s what Google recommends in its 2020+ structured-data guidance for hybrid events.

How do I add the generated schema to my website?

Copy the JSON and embed it in a <script type="application/ld+json">…</script> tag. Drop it in the <head> or anywhere in <body> – both are valid. One script tag per event. If you serve from a CMS that injects structured data through a plugin, hand the JSON to the plugin’s input field instead.

What timezone does the date/time use?

The browser’s <input type="datetime-local"> has no timezone – it’s whatever the user typed. The tool interprets it as the visitor’s local timezone (via new Date(value)) and converts to UTC for the JSON output (via .toISOString()). Schema.org accepts either UTC or an explicit offset; UTC is unambiguous. If your event is in a different timezone from your visitors, set the input to local-of-the-event time and the resulting UTC will be correct.

Can I use this for recurring events?

The tool produces one Event entry per generation. For recurring events the right answer per Google’s docs is “one Event entry per occurrence” – generate one per date and embed them all. The more advanced EventSeries / eventSchedule markup isn’t included; build that by hand if you need it.

What’s the country code format?

Schema.org’s addressCountry accepts either a Country object or a string. ISO 3166-1 alpha-2 (e.g. US, GB, DE) is recommended – it’s machine-readable. Free text like United States works too but is harder for crawlers to disambiguate.

Is my data secure?

Yes. The page loads three static files (HTML, CSS, JS) and then runs entirely in your browser. Form values never leave the device – no fetch, no XHR, no analytics, no cookies. You can disconnect from the internet after the page loads and the tool still works.

Is this tool free?

Yes – free, unlimited, no signup, no watermark. Use the generated schema anywhere. Attribution to is appreciated but not required.