Cron Expression Generator

Build a cron expression field by field, then check it in the parser.

Cron expressionGenerated
  1. 0 9 * * 1-5
Runs locally in your browser

About the Cron Expression Generator

Writing a cron expression from scratch means remembering the field order and the syntax for ranges and steps. This generator gives you one field for each part, minute, hour, day of month, month and day of week, and assembles them into the expression. Use * for every value, a number, a range like 1-5, a list like 0,30, or a step like */15.

The permitted ranges are fixed by cron itself: minute 0-59, hour 0-23, day of month 1-31, month 1-12, and day of week 0-6 with Sunday as 0, although 7 is also accepted as Sunday by most daemons. Names such as MON and JAN are allowed in the last two fields.

The rule that catches people out is how the two day fields combine. When day of month and day of week are both restricted, cron runs the job whenever either one matches, not when both do, so 0 0 13 * 5 fires on the 13th of every month and again on every Friday. To mean the 13th only when it happens to fall on a Friday, leave day of week as * and test the weekday inside the script itself.

The result is a standard five-field expression for crontab, Kubernetes, GitHub Actions and most schedulers; a weekly database dump at 03:15 on Sunday is minute 15, hour 3, day of week 0 and the rest *. Paste it into the Cron Parser to read it back in plain English and see the next run times, which is the easiest way to confirm it is right.

How to use

  1. Fill each field: * for any, a number, a range, a list or a step.
  2. Copy the generated expression.
  3. Verify it in the Cron Parser.

Common questions

How do I run something every 15 minutes?
Set minute to */15 and the rest to *.
How do I run on weekdays at 9am?
Minute 0, hour 9, day of week 1-5, the rest *.
Does it validate the values?
It assembles the expression. Paste it into the Cron Parser to validate and see the schedule.