Schedules
A schedule starts a published script or flow on its own — every five minutes, every weekday at 9:00, on the first of the month — with inputs you set once. The Schedules page lists them all, and its side panel reads any period back to you: what ran, what failed, what did not even start and why.
- Create a schedule with the What · When · If it fails · Review wizard
- Pick the right frequency, cron expression and timezone
- Decide what happens on overlap and on failure
- Read the overview: trend, rankings, busiest hours and reliability
How schedules run
The Waiso API checks for due schedules every 30 seconds. A due schedule becomes an ordinary run of its target’s published version — the same logs, output and Runs page row as a run you start by hand, marked Triggered by Schedule. Nobody has to be signed in. Publishing a fix changes what the next firing runs; editing the draft does not.
Every firing is recorded, whether it started a run or not. If the API was down when a schedule was due, it fires once when the API is back and then follows its timetable from there — missed slots are not replayed one by one. If no worker is free, the run waits in the queue like any other.
Create one with the wizard
- What should run?
Press New Schedule and pick a script or flow. Only published ones can run on their own — others are marked Not published. If it takes inputs, fill them: these values are sent on every run; a required one left empty holds the save (Fill in … to save.).
- When should it run?
Pick a frequency (next section), set the time and the Timezone, and read Next runs: in the preview before going on.
- If something goes wrong
Optional — Skip it, or set Retry on failure, the overlap rule and Run on failure (see below).
- Review
Name it, keep Start now on (or off to create it paused) and press Create schedule. It appears as Active with its Next Run.
Each row’s menu has Edit (the same wizard, every step open), Pause / Resume and Delete. A paused schedule keeps every setting and shows no next run. Clicking a row opens its details: timezone, execution policy, on failure, and the recent runs with their result, time and duration.
Frequencies, cron and timezones
| Frequency | You set | Same as cron |
|---|---|---|
| Every N min | Run every 1–59 minutes (default 5) | */15 * * * * |
| Hourly | At minute — runs at 9:00, 10:00, 11:00… | 0 * * * * |
| Daily | At a time | 30 7 * * * |
| Weekly | On days + At | 0 9 * * 1-5 |
| Monthly | On day … of the month + At | 0 6 1 * * |
| Custom | A Cron expression | — |
# min hour day month weekday
*/10 8-18 * * 1-5 # every 10 minutes, 08:00–18:59, Monday to Friday
0 0 1 1,4,7,10 * # midnight on the first day of each quarter
30 23 * * 0 # Sundays at 23:30A cron expression has five fields and is read in the schedule’s timezone, never your browser’s. An invalid one is refused with Invalid expression — check syntax (min hour dom month dow), and Preview not available for custom cron — check the first runs on the list after saving. The timezone starts as your browser’s (or UTC); a schedule in America/Sao_Paulo at 09:00 runs at 09:00 there all year, whatever daylight-saving does elsewhere.
Overlap, retries and Run on failure
- If the previous run of this schedule is still active: Skip — wait for it to finish (the default) skips that firing and records why; Run in parallel starts it anyway.
- Retry on failure: a failed run is started again right away, up to that many times (at most 10). The review says If it fails, tries again 2×.
- Run on failure starts another script or flow when this schedule fails — a clean-up, a recovery job. For messages to people, use Alerts, which need no code.
- The item’s own Runs at the same time limit (Triggers tab) still applies: an extra scheduled run waits in the queue.
The overview panel
The panel on the right reads one period — Today, 7d, 30d, All time or Custom… — and every figure in it adds up to the same totals. It refreshes by itself as schedules fire (Live), at most every 30 seconds.
| Card | What it tells you |
|---|---|
| Trend | Runs per day in three series — succeeded, failed, didn’t start — and the failure rate against the previous period (Failures down 4 points vs the previous period). A blocked week never reads as 0% failed. |
| Runs most · Fails most | The busiest schedules, and the ones failing most — ranked by rate only with 5 or more finished runs. A row opens that schedule. |
| When it runs | Runs by weekday and by hour, in your own time: Busiest: Mon · 09:00 (your time). |
| Reliability | Firings that did not start, by reason, with the schedules behind each; Late (more than 1 min) with the typical and worst delay. |
| Next 24 h | How many firings are due and the busiest hour ahead. |
Why a firing did not start
| Reason | What to do |
|---|---|
| it has nothing to run | The target was deleted. Pick another target. |
| no published version | Publish the script or flow; the next firing starts. |
| its saved inputs don’t fit | The parameters changed. Edit the schedule’s inputs. |
| the previous run was still active | Expected with Skip; choose Run in parallel to let runs overlap. |
| it couldn’t be queued | Refused at queue time — often no credits. Run it by hand to see the error. |
| the project is frozen · the licence needs attention | Over the plan’s limits, or a self-hosted licence to install. |
Limits
- Your plan sets the shortest interval; the form says it beside the interval (Your plan runs schedules at most every 15 min., with See plans).
- Firings are kept 30 days (Counted since … — firings are kept 30 days); runs stay on the Runs page. Deleting a schedule keeps its past runs in the figures.
- Because due schedules are checked every 30 seconds, a run can start up to about half a minute after its time; only more than a minute counts as late.