Skip to content

Scheduling and run order

Once the lineup is clean, you want it to stay clean without doing this by hand every week. This page covers what to run, how often, and (the part that bites people) what order to run things in so the plugins do not undo each other.

Run order matters

Stream-Mapparr and Event Channel Managarr will fight over channel visibility

Both toggle channels on and off, using different criteria.

  • Stream-Mapparr's Manage Channel Visibility disables every channel in the profile, then re-enables the ones that have at least one stream.
  • Event Channel Managarr hides channels that have no event on right now.

If Event Channel Managarr runs first and hides an empty PPV channel, and Stream-Mapparr then runs and sees that the channel does have a stream attached, it turns it straight back on.

Always run Stream-Mapparr before Event Channel Managarr. If you schedule both, leave enough of a gap that the first has finished before the second starts.

The safe daily order is:

flowchart LR
    A["M3U refresh"] --> B["Stream-Mapparr<br/>match, sort, visibility"]
    B --> C["EPG-Janitor<br/>heal EPG"]
    C --> D["Event Channel Managarr<br/>hide dead events"]

IPTV Checker sits outside the daily loop. It is slow, and Stream-Mapparr only needs its results to be reasonably fresh. If you want Stream-Mapparr to act on a scan the moment it finishes, see Running Stream-Mapparr after an IPTV Checker scan.

Suggested cadence

Plugin How often Notes
IPTV Checker Weekly, overnight A full scan of several thousand streams can take many hours. Window it so it is not running while people are watching.
Stream-Mapparr Daily, or after each M3U refresh Has a built-in scheduler, and can also trigger itself automatically on M3U refresh (see below).
EPG-Janitor As needed The only thing it can schedule is the EPG Freshness Watchdog, which refreshes EPG sources and never touches a channel's assignment. Auto-Match and Scan & Heal are manual.
Event Channel Managarr Every few hours Event channels turn over through the day. Also set Auto-rescan after M3U refresh, or Dispatcharr's Auto Channel Sync will un-hide everything on the next refresh.
Channel Mapparr Rarely Run it when you add a provider or your names drift. It has no scheduler.
Lineuparr Rarely Re-run when the provider's lineup changes.
Dustarr Weekly or monthly Optional. It changes nothing in Dispatcharr, so its schedule cannot collide with anything else here. See Dustarr.

Every plugin states its schedule differently

This catches everyone. There is no single scheduling format across the suite.

Plugin Format Example Time zone used
IPTV Checker cron 0 3 * * 0 Dispatcharr's global Time Zone
Stream-Mapparr HHMM, comma-separated 0400,1600 Dispatcharr's global Time Zone
Event Channel Managarr HHMM, comma-separated 0600,1200,1800 Dispatcharr's global Time Zone
EPG-Janitor (watchdog only, set as an interval in hours) 6 n/a
Dustarr (a fixed choice: off, daily, weekly or monthly, always at 03:00) Weekly Dispatcharr's global Time Zone
Channel Mapparr (no scheduler) n/a n/a

In IPTV Checker, several cron expressions are separated by a semicolon

A comma already means something inside a cron field, where it lists values, so 0 0,8,16 * * * is one expression meaning midnight, 8 AM and 4 PM. Two separate expressions are joined with a semicolon: 0 4 * * * ; 0 3 1 * *. Since 1.26.2481600 an expression that could never fire is refused rather than saved and silently ignored, and a valid one is described back to you in words.

IPTV Checker has no timezone setting of its own, and never had an on/off switch

Earlier versions of this guide listed Enable Scheduled Checks and a Scheduler Timezone on that plugin. Neither exists. A non-empty Scheduled Check Times field is what arms the schedule, the times follow Dispatcharr's global Time Zone (falling back to UTC if it cannot be read), and you have to click 💾 Save Schedule afterwards.

HHMM means HHMM

Stream-Mapparr and Event Channel Managarr accept 0400, not 04:00. A value with a colon is silently ignored. The schedule simply never fires, with no error to tell you why.

The per-plugin Timezone settings are gone

Stream-Mapparr and Event Channel Managarr both used to have their own Timezone field. They now follow Dispatcharr's global Time Zone (Settings → General). If that is unset, Event Channel Managarr falls back to UTC. Set the global time zone correctly and everything lines up.

Automating on M3U refresh instead of on a clock

The tidiest setup skips fixed times altogether and reacts to your M3U refresh, so work happens exactly when there is new data to process. Both settings need Dispatcharr v0.27+.

  • Stream-Mapparr → Auto-match after M3U refresh: runs Match & Assign as soon as a refresh completes.

    Warning

    Remember that Match & Assign replaces each matched channel's stream list. Turning this on means that runs unattended after every refresh. Only enable it once you are happy with what a manual run produces.

  • Event Channel Managarr → Auto-rescan after M3U refresh: re-hides event channels that Dispatcharr's Auto Channel Sync just un-hid.

Running Stream-Mapparr after an IPTV Checker scan

An IPTV Checker scan can run for many hours, so a fixed Stream-Mapparr time either sorts against stale results or has to be guessed well after the scan usually ends. Since Stream-Mapparr 1.26.2561754 and IPTV Checker 1.26.2561754, the two can hand off directly. Turn on both:

  • IPTV Checker → Trigger Stream-Mapparr After Scheduled Check
  • Stream-Mapparr → Run After IPTV Checker Scan

When a scheduled scan reaches the end of its channel list, IPTV Checker calls Stream-Mapparr, which runs its ticked scheduled steps at once. A scan that was cut short does not trigger it.

The fixed time still matters

From Stream-Mapparr 1.26.2571153, if a scan is still running at Stream-Mapparr's fixed time, the fixed-time run steps aside for the trigger, so the two never sort the same channels at once. On a day with no scan, the fixed time runs as usual.

Before you automate anything

Run each plugin by hand at least once, with Dry Run enabled where it exists, and read the danger callout on its page. Several of these actions delete things. See Which plugins do I need? for the short list. Automating a destructive action you have not watched run once is how people lose their lineup.