Building Cron Expressions

Cron expressions give you precise control over when a workflow runs. The Workflow Scheduler accepts standard 5-field cron syntax and includes a visual builder to help you construct expressions without writing them from scratch.

Cron Expression Syntax

A cron expression has five space-separated fields:

┌───────── minute (0–59)
│ ┌───────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌───────── month (1–12)
│ │ │ │ ┌───────── day of week (0–7, where 0 and 7 are both Sunday)
│ │ │ │ │
* * * * *

Special characters:

  • * — any value (wildcard)
  • */N — every N units (e.g., */15 in the minutes field = every 15 minutes)
  • N-M — a range (e.g., 1-5 in the day-of-week field = Monday through Friday)
  • N,M — a list of values (e.g., 6,18 in the hour field = 6am and 6pm)

Common Cron Patterns

  • 0 0 * * * — Daily at midnight
  • 0 2 * * * — Daily at 2:00am
  • 0 6 * * 1-5 — Weekdays (Mon–Fri) at 6:00am
  • 0 2 * * 1 — Every Monday at 2:00am
  • 0 12 1 * * — First of each month at noon
  • */30 * * * * — Every 30 minutes
  • */15 9-17 * * 1-5 — Every 15 minutes during business hours (9am–5pm, weekdays)
  • 0 6,18 * * * — Twice daily at 6am and 6pm
  • 0 0 1,15 * * — 1st and 15th of each month at midnight

Using the Visual Cron Builder

When you select the Cron schedule type, the form displays a visual builder alongside the expression input. The builder lets you choose a frequency category (hourly, daily, weekly, monthly, or custom) and fills in the expression for you.

Visual cron builder with frequency selector, time picker, and expression preview

You can also type directly into the expression field if you already know the pattern you want. The builder updates its frequency selectors to reflect what you type, and vice versa.

Previewing Next Occurrences

After entering a cron expression — whether through the builder or by typing — the form shows the next 5 scheduled execution times. This preview updates live as you type, so you can immediately see whether the expression produces the schedule you intended.

Next occurrences preview showing five upcoming run timestamps based on the cron expression

For example, entering 0 2 * * 1-5 might show:

  • Monday, 2:00am
  • Tuesday, 2:00am
  • Wednesday, 2:00am
  • Thursday, 2:00am
  • Friday, 2:00am

If the next occurrence is unexpectedly far in the future — or repeats more often than intended — adjust the expression before saving.

All cron times are evaluated in the server's local timezone. If your server runs in UTC and you want runs at a specific local time, account for the timezone offset in your cron expression.

Testing Before You Save

For complex expressions, test them at crontab.guru (an external cron expression validator) before entering them in the scheduler. Paste the expression there to see a human-readable description and a list of upcoming runs.

Expressions like */5 * * * * (every 5 minutes) can generate a high volume of executions on large projects. Make sure each pipeline run can realistically complete within the interval, otherwise runs will queue up and consume server resources. Use step-level execution statistics to check how long your pipeline takes per run.

See Viewing Next Occurrences for more on the schedule preview feature.