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.
The Schedules page
Section titled “The Schedules page”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.
Schedule settings
Section titled “Schedule settings”| 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. |
Times and time zones
Section titled “Times and time zones”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.
Missed runs
Section titled “Missed runs”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}ismissed.
Clock changes
Section titled “Clock changes”When the clocks change for daylight saving time:
- Clocks go forward. A time inside the skipped hour, such as
02:30when 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.
React to a schedule
Section titled “React to a schedule”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.
Recipes
Section titled “Recipes”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!
A schedule of kind Times of the day, 20:00, day Fri. Its
trigger runs a macro that sends The giveaway starts now: type !join
and clears the raffle list.
A schedule of kind After going live, 5 minutes, no repeat. Its
trigger runs a macro that welcomes chat.
In a chat command macro, add the step When a schedule runs next
named giveaway, then Send chat message: Next giveaway at
{giveaway.next}. Or use {schedule.<name>.next} directly in any text.
Use a schedule in a macro
Section titled “Use a schedule in a macro”Show it in any text
Section titled “Show it in any text”| 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.
Schedule actions
Section titled “Schedule actions”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.
Check a schedule in a condition
Section titled “Check a schedule in a condition”An If step can check the live values Schedule enabled and Minutes until a schedule runs. See Conditions.
Schedules in overlays
Section titled “Schedules in overlays”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.
Free plan
Section titled “Free plan”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.