Skip to main content
Team-based EPG creates one persistent channel per team. Each channel stays in your guide around the clock and gets populated with the team’s schedule — upcoming games, live events, and recent results.

How it works

Team channels are always on. Instead of appearing and disappearing with live streams, a team channel shows whatever is appropriate at any given moment:
  • Pregame filler in the hours before a game starts
  • Live event programme during the game itself
  • Postgame filler after the final whistle until midnight
  • Idle filler on days when no game is scheduled
The three-step workflow:
1

Import teams from the league cache

Browse sports and leagues, select the teams you want, and import them into Teamarr.
2

Assign a team template to each team

Templates control how titles, descriptions, and artwork are formatted. Each team needs one assigned.
3

Generate EPG

Teamarr fetches each team’s schedule and writes XMLTV programmes using the assigned template.

Importing teams

Go to Teams > Import to browse the league cache by sport.
1

Expand a sport

Click any sport in the list to see its leagues. The badge next to each sport shows how many leagues have cached teams.
2

Select a league

Click a league to reveal its available teams.
3

Choose teams

Select teams individually, or click Select All to grab the entire league at once.
4

Import

Click Import Selected. The teams appear in the Teams table immediately.
Leagues showing 0 teams haven’t had their cache refreshed yet. Use the cache refresh button in Settings > System to pull the latest team data from providers.

Managing teams

The Teams table lists all imported teams. Each row shows:
ColumnDescription
TeamTeam name with logo
LeagueLeague the team belongs to
TemplateAssigned template — click to change
ChannelDispatcharr channel ID if the channel has been synced
StatusActive (has upcoming games) or inactive

Assigning templates

Each team requires a team template before EPG can be generated for it. Click the template dropdown in any team’s row to assign one. To apply the same template to several teams at once, select multiple rows and use the bulk-assign action.
Team templates support .next and .last variable suffixes for referencing upcoming and previous games. This is what lets you write pregame content like “Next up: at ” and postgame content like ” the ”.

Schedule days

Configure how many days ahead to fetch each team’s schedule in Settings > Teams. Available options are 7, 14, 30, 60, or 90 days. The default is 30 days. More days ahead means more upcoming programmes in the EPG and more populated .next context for templates, but generation will take longer when you have many teams.

Team channels in Dispatcharr

When Dispatcharr integration is configured, Teamarr creates and manages a channel for each team automatically:

Channel names

Names use the channel name format defined in the assigned team template.

Channel logos

Logos are pulled from the team’s logo URL in the league cache.

Group and profiles

Channels are assigned to the channel group and profiles configured in Settings.

Channel numbers

Numbers follow the configured numbering mode — auto-sequential or manual.

Channel lifecycle

Team channels are persistent by design. Unlike event group channels that appear and disappear with live streams, a team channel is created once and stays in Dispatcharr indefinitely. On days with no game, the channel shows idle filler content rather than going blank. This means your guide always has something meaningful to display — a countdown to the next game, a recap of the last one, or a simple off-air slate — depending on how your template’s filler content is configured. If a team is removed from Teamarr, its channel can be cleaned up from Dispatcharr through the channel management workflow.

Build docs developers (and LLMs) love