What BroadcastEvent schema is
BroadcastEvent is a schema.org type that describes a live or recorded broadcast — most commonly a live stream. Combined with VideoObject, it tells Google that a specific page will host a live video at a specific time, making it eligible for Google's Live badge in search results.
It is also one of only two structured data types that make a URL eligible for priority submission via the Google Indexing API. For publishers who run regular live streams — news organisations, sports platforms, conference organisers, educators — implementing this schema correctly is a meaningful distribution advantage.
When a BroadcastEvent qualifies for the Indexing API
Not every BroadcastEvent implementation qualifies. The page must meet all of these conditions:
- The JSON-LD uses
VideoObjectas the root type - The
publicationproperty references a validBroadcastEventobject isLiveBroadcastis set totrue- Both
startDateandendDateare present in ISO 8601 format - The
startDateis in the future (or recent past) at the time of submission - The page is crawlable and not blocked by robots.txt or noindex
Warning
The complete JSON-LD template
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Product Launch Livestream — Acme Corp",
"description": "Join us live as we reveal our new product line.",
"thumbnailUrl": "https://example.com/thumbnails/launch-stream.jpg",
"uploadDate": "2026-06-01T09:00:00+00:00",
"duration": "PT2H",
"contentUrl": "https://example.com/live/launch-stream",
"embedUrl": "https://example.com/embed/launch-stream",
"publication": {
"@type": "BroadcastEvent",
"name": "Product Launch Livestream",
"isLiveBroadcast": true,
"startDate": "2026-06-01T09:00:00+00:00",
"endDate": "2026-06-01T11:00:00+00:00"
}
}
</script>Required and recommended fields
| Field | Level | Notes |
|---|---|---|
VideoObject.name | Required | Title of the video/stream |
VideoObject.description | Required | What viewers will see |
VideoObject.thumbnailUrl | Required | Must be crawlable and at least 696px wide |
VideoObject.uploadDate | Required | When the video was first published |
BroadcastEvent.isLiveBroadcast | Required | Must be true |
BroadcastEvent.startDate | Required | ISO 8601 with timezone |
BroadcastEvent.endDate | Recommended | Without it, eligibility may be inconsistent |
VideoObject.contentUrl | Recommended | Direct URL to the video file or stream |
Common implementation mistakes
- Using
BroadcastEventas the root type — It must be nested insideVideoObjectvia thepublicationproperty. A standaloneBroadcastEventdoes not qualify for Indexing API eligibility. - Static dates that do not update — If you reuse the same page for recurring streams, update
startDateandendDatebefore each event and resubmit. - Missing timezone in date fields —
2026-06-01T09:00:00is ambiguous. Always include a timezone offset:2026-06-01T09:00:00+00:00or2026-06-01T09:00:00Z. - Thumbnail not crawlable — If the thumbnail URL returns 404 or requires authentication, Google cannot verify the schema and may reject the rich result.
Validating and submitting
Before submitting via the Indexing API, validate with Google's Rich Results Test. Look specifically for the VideoObject detection — if the tool does not show a VideoObject result with BroadcastEvent properties, the submission will not receive priority treatment.
Tip