Cron Expression Builder.

Build, validate, and understand cron expressions for n8n, GitHub Actions, and Linux crontab.

Expression

VALID
* * * * *

Every minute

Paste / type expression

Minute

0–59

Hour

0–23

Day of Month

1–31

Month

1–12

Day of Week

0–6

Common Presets

Platform Notes

Linux crontab

Standard 5-field format. Supports L, W, # in some distros (Vixie cron). Run: crontab -e

GitHub Actions

Uses UTC. Expression goes in on.schedule[].cron. Minimum interval: 5 minutes. Syntax: uses standard 5-field.

n8n

Trigger node → Schedule. Accepts standard cron or visual builder. Timezone configurable per workflow. L may not be supported.

Cron syntax reference.

A cron expression reads left to right: minute, hour, day of month, month, day of week.

FieldAllowed rangeSpecial characters
Minute0–59* , - /
Hour0–23* , - /
Day of Month1–31* , - / L W
Month1–12* , - /
Day of Week0–6* , - / L #

Common cron patterns.

Click any expression in the builder above to apply it, or copy one from here.

ExpressionPatternWhat it does
* * * * *Every minuteRuns once per minute, all day
*/5 * * * *Every 5 minutesCommon for monitoring checks
*/15 * * * *Every 15 minutesQuarter-hourly polling
0 * * * *HourlyRuns at the start of every hour
0 0 * * *Daily at midnightCommon for nightly cleanup jobs
0 9 * * *Daily at 9amWeekday morning report
0 9 * * 1-5Weekdays at 9amMon–Fri business-hours trigger
0 12 * * 0,6Weekends at noonSat & Sun at 12:00
0 0 1 * *First of each monthMonthly billing or rollup
0 0 * * 0Every Sunday midnightWeekly reset or report
0 9,17 * * *Twice daily9am and 5pm every day
0 */6 * * *Every 6 hoursRuns at 0, 6, 12, 18

Capabilities

What You Get

Write the expression and read back what it actually does — before it silently runs at the wrong hour in production.

Plain-English Preview

Every expression is described in words as you build it.

Field-By-Field

Set minute, hour, day, month, and weekday without memorising the order.

Live Validation

Out-of-range and malformed fields are flagged immediately.

Pattern Library

Twelve common schedules ready to copy or apply.

Platform Ready

Output works for n8n, GitHub Actions, and Linux crontab alike.

Fully Offline

Parsing and validation happen entirely in your browser.

Related tools.

More free browser-based utilities, connected by category and use case.

All Tools

FAQ

Cron Expression Builder FAQ.

What is a cron expression?

A cron expression is a compact string of five space-separated fields that defines a recurring schedule for a job or task. The fields represent — in order — minute, hour, day of month, month, and day of week. Asterisks (*) mean 'every', slashes define step intervals (*/5 = every 5), and commas list multiple values.

How do I use a cron expression in n8n?

In n8n, add a Schedule Trigger node to your workflow. Select 'Cron Expression' as the trigger mode and paste your expression into the 'Expression' field. The workflow runs in the timezone configured in your n8n instance settings. Note that n8n may not support all extended specifiers like L (last day) depending on the version.

How do I use a cron expression in GitHub Actions?

In your workflow YAML, use the on.schedule key with a cron sub-key. Example: on: schedule: - cron: '0 9 * * 1-5'. GitHub Actions always runs cron schedules in UTC. The minimum interval GitHub Actions enforces is 5 minutes. Expressions with a step shorter than */5 on the minute field will be clamped.

What does */ mean in a cron expression?

The */ syntax is called a step value. It means 'every N units'. For example, */15 in the minute field means 'every 15 minutes' (i.e. at 0, 15, 30, 45). */6 in the hour field means 'every 6 hours' (0, 6, 12, 18). You can also combine a range with a step: 1-5/2 means every 2 units within the 1-to-5 range.

What is the difference between day-of-month and day-of-week?

Day-of-month (field 3) specifies a calendar date (1–31), while day-of-week (field 5) specifies a named day (0 = Sunday, 6 = Saturday). If both are set to non-asterisk values, most cron implementations fire when either condition is true, not both. To target a specific weekday on a specific date, you often need additional application logic.

Why is my scheduled GitHub Actions workflow not running?

Several reasons are common: the repository may have gone inactive (GitHub pauses schedules on repos with no activity for 60 days), the cron expression may be invalid, or the interval is shorter than 5 minutes. Workflows are also queued, so there can be delays of several minutes under high GitHub infrastructure load. Always validate your expression with a tool before committing.