Classic schedules are ErsatzTV’s original scheduling mode, modeled after traditional broadcast television programming. You build a linear list of schedule items, each specifying what content to play, how many items to play, and optionally at what time of day the slot should begin. ErsatzTV works through the list in order, looping back to the top when it reaches the end, and uses filler presets to fill any gaps between items. This approach is ideal for channels that need a predictable, repeating weekly grid with specific time anchors for prime-time or daily programs.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ErsatzTV/legacy/llms.txt
Use this file to discover all available pages before exploring further.
Schedule Settings
When you create or edit a classic schedule under Schedules in the UI, you configure the following top-level options:| Field | Description |
|---|---|
| Name | A human-readable label for the schedule (e.g., Weeknight Lineup). |
| Keep Multi-Part Episodes Together | When enabled, ErsatzTV will not split multi-episode groups across schedule items. |
| Treat Collections as Shows | When enabled, playback state advances per-show within a collection rather than treating the whole collection as a flat list. |
| Shuffle Schedule Items | Randomizes the order in which schedule items are processed each cycle, rather than working through them sequentially. |
| Random Start Point | Begins playout at a random position within the first schedule item’s collection rather than at the beginning. |
| Fixed Start Time Behavior | Controls how ErsatzTV handles fixed-time items when the previous item runs long. Strict skips content to honor the start time; Flexible allows the previous item to finish before moving on. |
Schedule Item Types
Each schedule item defines a single programming slot. Items share a common set of fields (content source, playback order, filler, watermarks, language preferences) but differ in how they determine how much content to play.| Item Type | Class | Behavior |
|---|---|---|
| One | ProgramScheduleItemOne | Plays exactly one item from the collection, then moves to the next schedule item. |
| Multiple | ProgramScheduleItemMultiple | Plays a configurable number of items. The count can be a static integer, the full size of the collection, the size of a playlist item, or the size of a multi-episode group. |
| Duration | ProgramScheduleItemDuration | Plays content from the collection until a specified duration has been filled. Configures a TailMode and the number of discard attempts when trimming is not used. |
| Flood | ProgramScheduleItemFlood | Plays as much content as possible from the collection until the next fixed-time item starts or the schedule loops. |
Multiple Mode Options
The Multiple item type exposes aMultipleMode that controls what “count” means:
- Count — a literal integer you supply (e.g., 3 episodes).
- CollectionSize — plays every item currently in the collection once.
- PlaylistItemSize — matches the size of the referenced playlist item.
- MultiEpisodeGroupSize — plays from the first single item through all linked multi-episode entries in the group.
Start Types
Each schedule item has aStartType that is derived automatically from whether a StartTime has been set:
- Fixed — the item is anchored to a specific wall-clock time (e.g.,
20:00). ErsatzTV will jump to this item at that time, potentially inserting offline time or filler beforehand. - Dynamic — no fixed time is assigned. The item begins immediately after the previous one finishes.
Fixed Start Time Behavior
When a Fixed item is defined, theFixedStartTimeBehavior controls what happens if the previous item is still running at the scheduled start time:
- Strict — ErsatzTV skips any remaining content in the previous item and starts the fixed slot on time.
- Flexible — ErsatzTV lets the previous item finish naturally before starting the fixed slot, which may push it slightly late.
Playback Orders
Every schedule item references a collection and aPlaybackOrder that controls how items are selected from that collection:
| Order | Description |
|---|---|
Chronological | Items are played in release-date order. |
SeasonEpisode | Episodes are ordered by season and episode number. |
Shuffle | Items are shuffled each time the enumerator is reset, producing a new random order. |
ShuffleInOrder | Items within groups are shuffled, but groups themselves maintain their original order. |
MultiEpisodeShuffle | Shuffles at the multi-episode group level so entire story arcs play together but in random sequence. |
Random | Selects a completely random item each time, with no memory of what was played previously. |
RandomRotation | Cycles through items in a random rotation that avoids repeating until all items have been played once. |
Marathon | Groups items for a marathon-style binge, optionally configuring group-by, shuffle, and batch size. |
Tail Mode
The Duration schedule item type includes aTailMode that determines what ErsatzTV does with any remaining time after the last content item fits within the target duration:
| Mode | Behavior |
|---|---|
None | No tail action — remaining time is left unhandled and the playout moves on. |
Offline | Remaining time is marked as offline — the channel shows a black screen or slate until the next item. |
Slate | Remaining time is filled with a configured slate image or video loop. |
Filler | Remaining time is filled using the Tail Filler preset configured on the schedule item. |
Filler Presets
Every schedule item can reference up to five filler presets to handle gaps and transitions:- Pre-Roll — content played before each main item (e.g., a channel bumper).
- Mid-Roll — content inserted at chapter markers within an item.
- Post-Roll — content played after each main item (e.g., an end card).
- Tail — content used to fill the remaining time in a Duration item (see Tail Mode above).
- Fallback — content played when the channel would otherwise go offline.
Alternate Schedules
A classic schedule supports alternate schedules viaProgramScheduleAlternate. An alternate schedule links a different ProgramSchedule to the playout for a specific date range, day-of-week pattern, or combination of days and months. When the current date matches the alternate’s rules, ErsatzTV uses that schedule instead of the primary one — useful for holiday programming, seasonal blocks, or special events.
Alternates are configured on the Playout rather than on the schedule itself, and multiple alternates can be stacked with a priority order.
Alternate schedules are configured on the playout’s Alternates tab, not inside the schedule definition. Each alternate specifies days of the week, days of the month, months of the year, and an optional hard date range with start and end dates.
Creating a Classic Schedule
Open the Schedules page
In the ErsatzTV sidebar, navigate to Schedules. Click Add Schedule to open the schedule creation form.
Name your schedule and set options
Enter a Name for your schedule. Configure the schedule-level options — whether to keep multi-part episodes together, treat collections as shows, shuffle items, and which fixed start time behavior to apply globally.
Add your first schedule item
Click Add Item inside the schedule editor. Choose an item type: One, Multiple, Duration, or Flood. Select your content source (Collection, Multi-Collection, Smart Collection, Show, Playlist, or Search Query) and set the Playback Order.
Configure timing
To create a fixed time slot, set a Start Time on the item (e.g.,
20:00). Leave it blank to make the item dynamic (starts immediately after the previous item). Optionally override the Fixed Start Time Behavior for this item.Attach filler presets (optional)
Expand the Filler section on the item to attach pre-roll, mid-roll, post-roll, tail, and fallback filler presets. These are created separately under Filler Presets and referenced here by name.
Repeat for remaining items
Continue adding items to build your full daily or weekly programming grid. Items play in listed order, cycling back to the top when the list is exhausted.
Tips and Best Practices
Anchor Prime Time
Use Fixed start times for your most important slots (e.g.,
20:00 for a prime-time movie) and Dynamic items for everything surrounding them. This keeps your grid readable while remaining flexible for variable-length content.Use Flood for Late Night
A Flood item at the end of your schedule list is an easy way to fill overnight hours with a collection until the morning block starts at a fixed time.
Season Episode Order
For scripted drama or anime series, the
SeasonEpisode playback order ensures episodes air in production order, correctly sorting S01E01 before S02E01 across the entire series.Holiday Alternates
Configure an alternate schedule with a December date range to automatically switch to holiday programming without changing the primary schedule.
