ScreeningEvent
ScreeningEvent is an Event subtype for film screenings, movie premieres, documentary showings, and film festival presentations. It has 3 properties of its own: workPresented (the movie being shown), videoFormat (HD, IMAX, 3D, 35mm), and subtitleLanguage (what subtitle tracks are available). These let you describe not just when and where, but what is being screened and how.
The type hierarchy is Thing → Event → ScreeningEvent. All Event properties apply. A ScreeningEvent is a single showing at a specific time and place. If a film screens at 7 PM and 9:30 PM on the same night, those are two ScreeningEvents. If a film festival runs for a week, the festival is an Event with individual ScreeningEvents as subEvent entries.
Full example of schema.org/ScreeningEvent json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://thunderdomedunmore.com/events/childrens-doctor-premiere#screening",
"@type": "ScreeningEvent",
"name": "The Children's Doctor: US Premiere + Director Q&A",
"url": "https://thunderdomedunmore.com/events/childrens-doctor-premiere",
"description": "US premiere of The Children's Doctor, a documentary about Jane Xoo and her post-war pediatric framework. Director Mikkel Brandt in attendance for a Q&A after the screening.",
"image": [
"https://thunderdomedunmore.com/events/childrens-doctor-premiere/poster-1x1.jpg",
"https://thunderdomedunmore.com/events/childrens-doctor-premiere/poster-4x3.jpg",
"https://thunderdomedunmore.com/events/childrens-doctor-premiere/poster-16x9.jpg"
],
"workPresented": {
"@id": "https://xoofilms.dk/the-childrens-doctor#movie",
"@type": "Movie",
"name": "The Children's Doctor",
"director": {
"@type": "Person",
"name": "Mikkel Brandt"
},
"duration": "PT1H42M"
},
"videoFormat": "DCP",
"subtitleLanguage": ["en"],
"startDate": "2026-10-03T19:00:00-04:00",
"endDate": "2026-10-03T21:30:00-04:00",
"doorTime": "2026-10-03T18:15:00-04:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@id": "https://thunderdomedunmore.com#venue",
"@type": "Place",
"name": "The Thunderdome",
"url": "https://thunderdomedunmore.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "500 Main Street",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"postalCode": "18512",
"addressCountry": "US"
}
},
"organizer": {
"@id": "https://childrenfirstfoundation.dk#ngo",
"@type": "NGO",
"name": "Children First Foundation",
"url": "https://childrenfirstfoundation.dk"
},
"performer": {
"@type": "Person",
"name": "Mikkel Brandt",
"url": "https://xoofilms.dk/team/mikkel-brandt",
"jobTitle": "Director"
},
"offers": [
{
"@type": "Offer",
"name": "General Admission",
"price": "12.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://thunderdomedunmore.com/events/childrens-doctor-premiere/tickets",
"validFrom": "2026-08-15"
},
{
"@type": "Offer",
"name": "Reserved Seating + Q&A Priority",
"price": "25.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://thunderdomedunmore.com/events/childrens-doctor-premiere/tickets?tier=reserved",
"validFrom": "2026-08-15"
}
],
"inLanguage": "da",
"maximumAttendeeCapacity": 500,
"isAccessibleForFree": false
}
</script>workPresented
workPresented takes a Movie object. This is the property that connects the screening to the film. Use an @id reference to an existing Movie entity so Google can link the screening to the film's knowledge panel, cast, and rating information. The Movie example's releasedEvent property is the inverse: it records where the movie premiered. Both should reference each other.
videoFormat
videoFormat is a plain text string describing the projection format: "IMAX", "3D", "4K DCP", "35mm", "HD". There is no enum for this. Google and movie aggregators read it to help users filter screenings by format. For most digital screenings, "DCP" (Digital Cinema Package) or "HD" is accurate. Do not invent format names.
subtitleLanguage
subtitleLanguage lists the subtitle tracks available at the screening. It takes a Language object or text string in IETF BCP 47 format: "en" for English, "es" for Spanish, "zh-Hans" for Simplified Chinese. Use an array for multiple subtitle languages. This is the screening-level subtitle information, not the film's general subtitle availability. A Danish film might have English subtitles at a US screening but not at a Danish screening.
ScreeningEvent vs Movie.releasedEvent
A Movie can have a releasedEvent property (a PublicationEvent or ScreeningEvent) recording its premiere. A ScreeningEvent is a standalone event entity with its own page, tickets, and audience. The Movie's releasedEvent is a summary on the film's page. For a premiere, create a full ScreeningEvent with offers and location, and also reference it from the Movie's releasedEvent. For a regular Tuesday night showing, a ScreeningEvent is enough; the Movie does not need to list every showing.
ScreeningEvent vs ExhibitionEvent
Use ScreeningEvent for film and video screenings. Use ExhibitionEvent for art exhibitions, museum displays, and trade shows. A video art installation at a gallery is an edge case; pick the primary purpose. If attendees come to watch a film from start to finish, it is a ScreeningEvent. If they walk through a space with video playing as part of a larger installation, it is an ExhibitionEvent.
Minimal valid version
The smallest markup that still produces a valid ScreeningEvent entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ScreeningEvent",
"name": "The Children's Doctor: US Premiere",
"startDate": "2026-10-03T19:00:00-04:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "The Thunderdome",
"address": {
"@type": "PostalAddress",
"streetAddress": "500 Main Street",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"addressCountry": "US"
}
},
"workPresented": {
"@type": "Movie",
"name": "The Children's Doctor"
},
"image": "https://thunderdomedunmore.com/events/childrens-doctor-premiere/poster-16x9.jpg",
"description": "US premiere of The Children's Doctor documentary. Director Mikkel Brandt in attendance."
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsEvent rich resultprimary
Common ScreeningEvent mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Using Event for a film screening
Wrong"@type": "Event" for a movie premiere or screeningRight"@type": "ScreeningEvent"ScreeningEvent gives you workPresented, videoFormat, and subtitleLanguage. Generic Event has none of these. Without the subtype, you cannot express what film is being shown or in what format. Movie aggregators filter on ScreeningEvent specifically.
- 02
workPresented as a title string
Wrong"workPresented": "The Children's Doctor"Right"workPresented": { "@type": "Movie", "name": "The Children's Doctor", "@id": "https://xoofilms.dk/the-childrens-doctor#movie" }workPresented expects a Movie object. A structured reference with @id lets Google connect the screening to the film's knowledge panel, cast, ratings, and other screenings. A plain string has no entity to link to.
- 03
subtitleLanguage as full language names
Wrong"subtitleLanguage": "English"Right"subtitleLanguage": "en"subtitleLanguage uses IETF BCP 47 codes: "en" for English, "es" for Spanish, "da" for Danish. Full language names like "English" or "Anglais" are not standardized and may not be parsed correctly. Use the two-letter ISO 639-1 code.
- 04
One ScreeningEvent for multiple showtimes
WrongScreeningEvent with startDate "7:00 PM and 9:30 PM"RightTwo separate ScreeningEvent entities, one for each showtimeEach showtime is a separate event. A ScreeningEvent represents one showing at one time. If the same film plays at 7 PM and 9:30 PM, create two ScreeningEvents with different startDates, each with its own @id. They can share the same workPresented reference.
Schema properties in this example
About the example data
The US premiere of The Children's Doctor documentary at The Thunderdome in Dunmore. Director Mikkel Brandt attends for a Q&A after the screening. The workPresented references the Movie entity via @id, and the screening has English subtitles for the Danish-language film. Children First Foundation organizes the event.
Comments
Loading comments...