Theater Event Schema Generator — Promote Plays and Musicals
Generate valid TheaterEvent JSON-LD with venue, cast, and ticketing details. Clarify performance times and improve discovery.
Why theater listings underperform
Pain points we solve
- Showtimes miss timezone offsets or end times, causing confusion.
- Venues are named in prose but not as a structured Place with address.
- Cast and crew are unlinked, reducing relevance for performer searches.
- Ticket info lacks price/currency/availability or a purchase URL.
How SwiftSchema helps
Solution
The TheaterEvent generator centers the fields that matter for eligibility: start/end dates with timezone, attendance mode, venue (`Place` or `VirtualLocation`), organizer, and ticket `Offer` details.
It encourages cast/crew via `performer`, adds language/context, and outputs copy-ready JSON-LD you can paste once per performance.
How it works
How it works
- Choose TheaterEvent in the generator below.
- Add performance name, description, start (and optional end) date/time with timezone.
- Provide venue details as a Place with address; add VirtualLocation for livestreams.
- List key cast/crew in `performer` and add ticket Offers with price, currency, availability, and URL.
- Copy JSON or Script, paste on the show page, and validate in the Rich Results Test.
Paste once per performance. Validate. Ship.
What is TheaterEvent structured data?
TheaterEvent is an Event subtype for stage performances—plays, musicals, opera, improv, or dance theater. It clarifies who is performing, when and where the show runs, how to attend (in-person or virtual), and how to buy tickets. Accurate markup helps search engines surface the right date, venue, and ticket info for audiences searching by show title, cast, or local theaters.
Essential properties to include
- name— production title; include season/year if relevant.
- startDate/endDate— ISO 8601 timestamps with timezone (e.g.,2026-03-15T19:30:00-05:00).
- location—Placewith venue name and PostalAddress; addVirtualLocationfor livestreams.
- eventAttendanceMode—Offline,Online, orMixedto reflect in-person vs hybrid shows.
- eventStatus— keep up-to-date (EventScheduled,EventCancelled,EventPostponed, etc.).
- performer— principal cast/crew as Person or Organization entries.
- organizer— producing theater company or presenter.
- offers— ticket options withprice,priceCurrency,availability, and purchaseurl; include multiple offers for seating sections.
- image— poster or production stills (1200px+ recommended).
- description— synopsis and key highlights; align with on-page copy.
- inLanguage— include when performances are localized or multilingual.
Implementation tips
- Create one TheaterEvent per showtime; for long runs, keep each performance distinct to avoid ambiguous dates.
- Use EventSerieswhen you need to group a run while keeping individual performances linked.
- Keep URLs canonical and stable; if a performance is cancelled or rescheduled, update eventStatusand optionally addpreviousStartDate.
- Pair with BreadcrumbandOrganizationschema for the venue or company to strengthen entity understanding.
Required properties
namestartDatelocation.name
Recommended properties
descriptionimageendDateeventAttendanceModeeventStatuslocation.addressorganizer.nameperformer.nameoffers.priceoffers.priceCurrencyoffers.urloffers.availabilityinLanguage
{
"@context": "https://schema.org",
"@type": "TheaterEvent",
"name": "Hamlet",
"startDate": "2026-03-15T19:30:00-05:00",
"location": {
"@type": "Place",
"name": "Majestic Theatre"
}
}