Schedules
A job runs on its own schedule — a cron expression and a timezone — and on the schedules of its presets. A job without any schedule runs only when someone clicks Run.
Cron in Nomaflow
A schedule has five fields:
┌──── minute (0-59)
│ ┌── hour (0-23)
│ │ ┌── day of month (1-31)
│ │ │ ┌── month (1-12)
│ │ │ │ ┌── day of week (mon-sun)
0 2 * * *
| Operator | Meaning | Example |
|---|---|---|
* | every value | * * * * * — every minute |
, | a list | 0 6,12,18 * * * — at 06:00, 12:00 and 18:00 |
- | a range | 0 9 * * mon-fri — weekdays at 09:00 |
/ | a step | */10 * * * * — every 10 minutes |
The scheduler numbers the days of the week from 0 = Monday to 6 = Sunday — not like Unix cron, where 0 is Sunday. 0 9 * * 1 runs on Tuesday. Write mon, tue… sun (mon-fri, sat,sun): the names leave no doubt, and the preview under the field confirms the days.
When both the day of the month and the day of the week are set, both must match: 0 9 15 * mon runs on a 15th that falls on a Monday.
| Need | Cron |
|---|---|
| Every 5 minutes | */5 * * * * |
| Every hour at :15 | 15 * * * * |
| Every day at 02:00 | 0 2 * * * |
| Weekdays at 09:00 | 0 9 * * mon-fri |
| Every Monday at 06:00 | 0 6 * * mon |
| The 1st of every month at 07:00 | 0 7 1 * * |
| Every quarter (1st of Jan, Apr, Jul, Oct) at 03:00 | 0 3 1 1,4,7,10 * |
In the job editor
The Schedule (cron) field of the job editor offers ready-made choices — Manual, Hourly, Daily, Weekly, Monthly — and a free cron. Under the field, Next runs lists the next five runs in the job's timezone; it is recomputed shortly after each change, and an invalid expression is reported there.
Timezone is an IANA name (Europe/Paris, America/New_York). The schedule is evaluated in that timezone, daylight saving time included: 0 2 * * * in Europe/Paris runs at 02:00 Paris time all year round.
The Schedule view
Operations → Schedule, in the Nomaflow menu, shows what runs when, day by day.
| Part | Content |
|---|---|
| Counters | The runs due in the next 24 hours, the active schedules, the schedules switched off, the jobs run by hand only. |
| Upcoming | Each active schedule at its next run — the job's own, and one per preset with a schedule (the preset's name next to the job) —, grouped by day: Today, Tomorrow, then the date. Each line shows the time, the job, the schedule in words (every day at 03:00, every Monday at 07:00) with the cron under it, when it comes, and the state of the last run. |
| Scheduled but switched off | Schedules that are set but disabled. |
| Run by hand only | The jobs without any schedule, folded; a click on one opens its editor. |
Schedules the page cannot put into words — lists of hours, several months — show their cron only.
Schedulable presets
A preset is a saved set of run parameters (parameters, step arguments, steps switched on or off, log level), created from the Run with parameters window with Save as preset. In the job editor, the Presets & schedules section gives each preset its own Schedule (cron) and Timezone, and a Schedule enabled checkbox.
The scheduler then runs the job on that schedule with the preset's parameters: one job, several schedules, different inputs — a nightly full load and an hourly incremental of the same ETL, for instance.
A preset's schedule is independent of the job's Enabled switch: an enabled preset runs even when the job's own schedule is off.
Clone creates a disabled copy without any schedule: the job's own cron and the presets' schedules are dropped, so the copy never fires alongside the original. Give it its schedules once it is ready.
Missed schedules
A run can fail to happen: the server was stopped at that time, or the previous run of the same job was still in progress. Nomaflow checks for such gaps and records each one as a run in state MISSED, with the expected time, in the run history and as the job's last run. A rule on the missed event can warn someone — see Notifications.
The Missed schedules panel of the Jobs page (next to the retention panel) shows the policy and the last check, and Check now runs a check at once.
| Setting | Default | Meaning |
|---|---|---|
| Check | on | Switches the check on or off. |
| Grace (min) | 10 | A run started within this delay after the expected time — a scheduled one, or a manual one — counts for it. |
| Check interval (min) | 5 | How often the check runs. |
| Look back (hours) | 24 | How far back a check looks, at most. A job that never ran is checked from the scheduler's start only. |
The policy is saved in jobs.toml under [meta.missed]. A missed time is recorded once: a restart does not report it again.
Pausing a schedule
| Option | Effect |
|---|---|
| The job's enabled / disabled pill on the Jobs page, or Pause on a dashboard's jobs card | The job's own schedule stops at once, without a reload. Run still works; preset schedules keep running unless switched off. |
| Manual in the Schedule field | The job's own schedule is removed. |
| Schedule enabled off on a preset | That preset's schedule stops. |
Tips
- Spread heavy jobs over the night (02:00, 02:30, 03:00) rather than starting them all at midnight.
- Prefer
15 * * * *to0 * * * *for hourly jobs: many other systems run on the hour. - Use a timezone name, never a fixed offset, so that daylight saving time is followed.
- Check the Next runs preview after every change: it is the quickest way to catch a wrong day.