Skip to content
Discord Download

Schedules

Run macros by the clock: at set times and weekdays, every few minutes, once, or a while after you go live.

A schedule runs things by the clock: remind chat to hydrate every 30 minutes, start a giveaway at 8 PM on Fridays, say hi 5 minutes after you go live. A schedule decides when; each time it comes up it fires the Schedule ran trigger, and a trigger on it picks the macro to run.

Schedules are built in; they need no connection, except that the ones that depend on whether you’re live need Twitch.

Open Schedules in the sidebar (under Automate). Each schedule is a card showing:

  • its label and a switch to turn it on or off;
  • a plain description of when it runs, and when it runs next;
  • chips for how many times it has run and when it last did, and a copy chip for {schedule.<name>.next};
  • buttons: Run now, Edit and Delete.

Run now fires the trigger at once, even when the schedule is turned off. Its next scheduled run doesn’t change.

Setting What it does
Name The schedule’s key, used in {schedule.<name>.next}. Lowercase letters, digits, - and _, up to 40 characters. It can’t change after you create the schedule; to rename it for display, change the label.
Label The name people see, such as Hydration reminder. It also names the run in the activity feed.
Description A note for yourself.
Turned on A schedule that’s off keeps its settings and doesn’t run.
When it runs One of the four kinds below.
Only when the stream is Any (the default), Live or Offline. A run that comes while the stream is in the other state is skipped, not delayed. A schedule that runs after going live can’t be limited to offline.

You can have up to 200 schedules.

Kind You set It runs
Times of the day Up to 48 times (24-hour, such as 20:00) and the days it applies to (every day when none are picked). At each of those times on those days.
Every few minutes The minutes between runs (1 to 1,440), the days, and optionally a From and Until window. Every N minutes, lined up with the clock: every 15 minutes runs at :00, :15, :30 and :45, counted from the start of the window (or from midnight with no window). The last run is at or before the end of the window. A window that ends before it starts crosses midnight and belongs to the day it starts on.
Once A date and time. Once, then it’s done.
After going live The minutes after the stream goes live (0 runs as soon as it does) and, optionally, Then every M minutes. After each time the stream goes live, counted from when Twitch reports it live, and every M minutes after while it stays live. With no repeat it runs once per stream. Needs Twitch connected.

All times are by the PC that runs CroStream, in its time zone. The editor shows the zone it’s using under When it runs. If you stream from a PC and run CroStream on another, the PC running CroStream is the one that counts.

Schedules never run in a burst to catch up.

  • A run that comes up while CroStream is closed is skipped.
  • If your PC was asleep, the schedule catches up with a run that is up to 10 minutes late; anything later is skipped, and the next run is worked out from now.
  • A Once schedule is the exception: if CroStream was closed at that time and starts within 10 minutes after it, the schedule still runs once, and {cause} is missed.

When the clocks change for daylight saving time:

  • Clocks go forward. A time inside the skipped hour, such as 02:30 when 02:00 jumps to 03:00, runs once, at the moment of the jump. A Once time in that hour does too.
  • Clocks go back. A time inside the repeated hour runs once, the first time the clock shows it, not twice.
  • Every few minutes schedules line up with the wall clock, so on the night the clocks go back the repeated hour doesn’t run again: there’s a one-hour gap in the runs that night. On the night they go forward, the runs in the skipped hour happen once, at the jump.
  • After going live counts elapsed time, so an hour after going live is always an hour.

Make a trigger with the event Schedule ran. Pick one schedule, or leave it empty to react to every schedule. The macro gets:

Variable Meaning
{name}, {label} The schedule’s name and label.
{fired_at} When it ran: local date and time.
{time} When it ran: local time.
{count} How many times the schedule has run, this time included.
{cause} schedule, missed, panel (the Run now button) or macro (a Run a schedule now step).

Runs are in the activity feed. Schedule created and Schedule deleted are events too. See the Events reference.

A schedule of kind Every few minutes, every 30, Only when the stream is Live. A trigger on Schedule ran for it runs a macro with Send chat message: Time for a sip of water!

Write You get
{schedule.<name>.next} The next run in words: 20:00 today, Fri 20:00 this week.
{schedule.<name>.next_in} Whole minutes until the next run.

Both are empty when the schedule has no next run: it’s turned off, it’s done (a Once that ran), or it’s waiting for the stream.

The Schedules group of the palette has nine actions:

Action What it does Outputs
Turn a schedule on Lets it run again. {next_at}, {next}, {next_in}
Turn a schedule off Stops it until it’s turned on. {next_at}, {next}, {next_in}
Run a schedule now Fires its trigger at once, even when it’s off. Its next run doesn’t change. {count}
When a schedule runs next Reads the next run, for a chat message. {next_at}, {next}, {next_in}
Read a schedule Reads its settings and next run. {label}, {enabled}, {kind}, {count}, {last_at}, {next_at}, {next}, {next_in}
Create a schedule Makes a schedule. If the name exists, it fails or keeps the existing one. {next_at}, {next}, {next_in}
Change a schedule Edits its settings. Fields left empty keep their value. {next_at}, {next}, {next_in}
Delete a schedule Removes it. {label}
List schedules Lists every schedule. {names}, {count}

Every setting accepts {variables}. Full details are in the Actions reference.

An If step can check the live values Schedule enabled and Minutes until a schedule runs. See Conditions.

Overlays and custom widgets read a schedule as the data key schedule.<name>, with whether it’s on and its next run. See Overlay data.

The free plan has 1 schedule. Subscribers to Haliebug13 on Twitch have unlimited schedules.

If you’re over the limit, for example after a subscription lapses, your schedules keep running and you can still turn them on and off and run them from the Schedules page. Editing their settings and adding schedules need a subscription. Deleting is always allowed.