Content markup properties of live TV events

This section provides the details of the content markup properties for the BroadcastEvent entity type.

BroadcastEvent specification table

Property Expected Type Description
@context Text Required - Always set to ["http://schema.org", {"@language": "xx"}]
  • Replace xx with the entity's language code in BCP 47 format format, for example, "en".
@type Text Required - Always set to BroadcastEvent.
@id URL Required - The content's identifier in URI format; for example, https://example.com/1234abc.
@id must meet the following requirements:
  • Globally unique across your catalog
  • Static; The ID should be stable and not change over time (even if the url property of the show changes). It will be treated as an opaque string and does not have to be a working link.
  • In the form of Unified Resource Identifier (URI)
  • The domain used for the @id value must be owned by your organization.
Because an entity's url meets all the requirements as an identifier, we recommend you use an entity's url as @id. See the Identifier section for more details.
name Text Required - The title of the show or event.
description Text The description of the show or event. 300-character limist. Use an array to include the descriptions in multiple languages and lengths.
startDate Date Required - The start time of the event in ISO 8601 format with time zone.
endDate Date The end time of the event in ISO 8601 format with time zone.
publishedOn BroadcastService Required if applicable - Specify the BroadcastService entity that broadcasts this show or event.

If the content is broadcast on a TV channel, this property is required. If the content is not associated with any TV channel, do not provide this property.
publishedOn.@type Text Set to BroadcastService.
publishedOn.@id URL The @id of the BroadcastService entity that broadcasts this show or event.
workPerformed CreativeWork Required if applicable - Use this property when the content is one of the following entity types: Movie, TVSeries, TVSeason, and TVEpisode.

A BroadcastEvent entity must include exactly one of:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced set to true
  • offAir set to true
workPerformed.@type Text Set to Movie, TVSeries, TVSeason, or TVEpisode.
workPerformed.@id URL The @id of the content entity.
broadcastOfEvent Event, MusicEvent, or SportsEvent Required if applicable - Use this property if the content is a live event:
  • For a sports event, this property needs to refer to a SportsEvent entity.
  • For a music event, this property needs to refer to a MusicEvent entity.
  • For other event types, this property needs to refer to a generic Event entity.


A BroadcastEvent entity must include exactly one of:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced set to true
  • offAir set to true
broadcastOfEvent.@type Text Set to SportsEvent, MusicEvent, or Event.
broadcastOfEvent.@id URL The @id of the event entity. The event entity must exist in the feed and has a @id different from that of BroadcastEvent.
videoFormat Text The highest quality definition supported on this broadcast service; for example,
  • "SD" for standard-definition.
  • "HD" for high-definition.
  • "2K" for 2K resolution.
  • "4K" for 4K resolution.
  • "8K" for 8K resolution.
contentToBeAnnounced Boolean Required if applicable - Use this property if the content is unknown at the time of creation of the feed.

Set to true when the provider does not have up-to-date information on what will be broadcast, false otherwise.

A BroadcastEvent entity must include exactly one of:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced set to true
  • offAir set to true
offAir Boolean Required if applicable - Use this property if there is no planned content broadcast for the timeslot.

A BroadcastEvent entity must include exactly one of:
  • workPerformed
  • broadcastOfEvent
  • contentToBeAnnounced set to true
  • offAir set to true
isLiveBroadcast Boolean Set to true if this is a live event; for example, a sports event or a concert.
potentialAction WatchAction Required if applicable - If the content is not marked contentToBeAnnounced true or offAir true, but is broadcast as a live streaming event, use this property to provide the deep link of the event.

BroadcastEvent examples

A TV episode is broadcast on the television network Example TV (BroadcastService) between 9 pm and 9:30 pm on October 12th, 2019:

BroadcastEvent

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live/event/my_favorite_tv_series/new_episode",
  "name": "My Favorite TV Series - Season 6 - Episode 2 - Three Mice",
  "description": "Three mice leave the town and the trip turns into something more.",
  "startDate": "2019-10-12T21:00-08:00",
  "endDate": "2019-10-12T21:30-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": false,
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "workPerformed": {
    "@type": "TVEpisode",
    "@id": "http://example.com/tv_series/my_favorite_tv_series/s6/e2_three_mice"
  }
}

BroadcastService

{
  "@context":"http://schema.org",
  "@type":"BroadcastService",
  "@id":"http://example.com/stations/example_tv",
  "name":"EXAMPLE-TV",
  "broadcastDisplayName":"ABCD",
  "callSign": "EXA-TV",
  "videoFormat":"SD",
  "broadcastTimezone":"America/Los_Angeles",
  "broadcastAffiliateOf":{
    "@type":"Organization",
    "@id":"http://example.com/networks/abcd-network"
  },
  "identifier": [
   {
     "@type": "PropertyValue",
     "propertyID": "TMS_ID",
     "value": "12258"
   },
   {
     "@type": "PropertyValue",
     "propertyID": "_PARTNER_ID_",
     "value": "exampletv-123456"
   }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/livestream",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform",
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.googleapis.com/GoogleVideoCast",
        "http://schema.org/AndroidTVPlatform"
      ]
    },
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "externalsubscription",
      "availabilityStarts": "2018-07-21T10:35:29Z",
      "availabilityEnds": "2019-10-21T10:35:29Z",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://example.com/subscription",
        "name": "ABCD",
        "sameAs": "http://example.com/subscription",
        "authenticator": {
          "@type": "Organization",
          "name": "TVE"
        }
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Example showing the use of contentToBeAnnounced property when the content to be broadcast on the television network Example TV (BroadcastService) between 9 pm and 9:30 pm on October 12th, 2019 is not known at the time of creation of the feed:

BroadcastEvent

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId",
  "name": "To Be Announced"
  "startDate": "2019-10-12T21:00-08:00",
  "endDate": "2019-10-12T21:30-08:00",
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "contentToBeAnnounced": true
}

BroadcastService

{
  "@context":"http://schema.org",
  "@type":"BroadcastService",
  "@id":"http://example.com/stations/example_tv",
  "name":"EXAMPLE-TV",
  "broadcastDisplayName":"ABCD",
  "callSign": "EXA-TV",
  "videoFormat":"SD",
  "broadcastTimezone":"America/Los_Angeles",
  "broadcastAffiliateOf":{
    "@type":"Organization",
    "@id":"http://example.com/networks/abcd-network"
  },
  "identifier": [
   {
     "@type": "PropertyValue",
     "propertyID": "TMS_ID",
     "value": "12258"
   },
   {
     "@type": "PropertyValue",
     "propertyID": "_PARTNER_ID_",
     "value": "exampletv-123456"
   }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/livestream",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform",
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.googleapis.com/GoogleVideoCast",
        "http://schema.org/AndroidTVPlatform"
      ]
    },
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "externalsubscription",
      "availabilityStarts": "2018-07-21T10:35:29Z",
      "availabilityEnds": "2019-10-21T10:35:29Z",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://example.com/subscription",
        "name": "ABCD",
        "sameAs": "http://example.com/subscription",
        "authenticator": {
          "@type": "Organization",
          "name": "TVE"
        }
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Television network Example TV(BroadcastService) Channel is off air between 12 pm and 8pm and broadcasts 1 show named My favorite show between 8 pm and 12pm:

BroadcastEvent

{
   "@context": ["http://schema.org", {"@language": "en"}],
   "@type": "BroadcastEvent",
   "@id": "http://example.com/randomUniqueEventId1",
   "name": “Off Air”,
   "startDate": "2019-10-12T00:00-08:00",
   "endDate": "2019-10-12T20:00-08:00",
   "publishedOn": {
       "@type": "BroadcastService",
       "@id": "http://example.com/stations/example_tv"
   },
   "offAir": true
},
{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/randomUniqueEventId2",
  "startDate": "2019-10-12T20:00-08:00",
  "endDate": "2019-10-13T00:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": false,
  "name": "My favorite show",
  "workPerformed": {
    ...
  },
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },

}

BroadcastService

{
  "@context":"http://schema.org",
  "@type":"BroadcastService",
  "@id":"http://example.com/stations/example_tv",
  "name":"EXAMPLE-TV",
  "broadcastDisplayName":"ABCD",
  "callSign": "EXA-TV",
  "videoFormat":"SD",
  "broadcastTimezone":"America/Los_Angeles",
  "broadcastAffiliateOf":{
    "@type":"Organization",
    "@id":"http://example.com/networks/abcd-network"
  },
  "identifier": [
   {
     "@type": "PropertyValue",
     "propertyID": "TMS_ID",
     "value": "12258"
   },
   {
     "@type": "PropertyValue",
     "propertyID": "_PARTNER_ID_",
     "value": "exampletv-123456"
   }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://example.com/livestream",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform",
        "http://schema.org/AndroidPlatform",
        "http://schema.org/IOSPlatform",
        "http://schema.googleapis.com/GoogleVideoCast",
        "http://schema.org/AndroidTVPlatform"
      ]
    },
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "externalsubscription",
      "availabilityStarts": "2018-07-21T10:35:29Z",
      "availabilityEnds": "2019-10-21T10:35:29Z",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://example.com/subscription",
        "name": "ABCD",
        "sameAs": "http://example.com/subscription",
        "authenticator": {
          "@type": "Organization",
          "name": "TVE"
        }
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Check out the following pages for the topics related to these properties: