Cron Expression Generator

Build a cron expression, see what it means in plain English and check when it will next run.

Cron expression generator
Or build it field by field
Common schedules

Next 10 runs (your local time)

What this tool does

A cron expression is five fields - minute, hour, day of month, month and day of week - that say when a scheduled job runs. Type one, or build it field by field, and this tool explains it in plain English and shows the next ten run times. For example, 30 9 * * 1-5 means 09:30 every weekday.

Validates a five-field cron expression, including lists, ranges, steps, month and day names and macros like @daily.

Describes the schedule in a sentence and calculates the next ten run times in your local time.

How to use it

  1. Type a cron expression into the first box, or edit the five fields below it.
  2. Or press a preset such as "Every 5 minutes" or "Weekdays at 09:00".
  3. Read the plain-English description at the top right.
  4. Check the list of next run times against what you expect.
  5. Press Copy expression and paste it into your crontab or scheduler.

Why use this generator

Explains any five-field cron expression in plain English and lists the next ten times it will actually run. Cron syntax is compact and unforgiving: swapping two fields or misreading */5 gives a job that runs at the wrong time, or never. Seeing the next run times before you deploy catches that early.

Why we built it

We built the cron expression generator to explain any five-field expression in plain English and list the next ten run times. Convert times with the Unix timestamp converter and compare zones with the time zone converter.

Who this tool is for

  • Developers and sysadmins scheduling jobs
  • DevOps engineers checking an inherited crontab
  • Students learning cron

When to use it

  • Writing a crontab line, a CI schedule or a cloud scheduler rule.
  • Reading an expression someone else wrote and working out what it does.
  • Checking when a job will next fire, including month and weekday restrictions.
  • Learning cron syntax by trying expressions and seeing the result.

How it works

The five fields, in order, are minute (0-59), hour (0-23), day of month (1-31), month (1-12 or jan-dec) and day of week (0-7 or sun-sat, with 0 and 7 both meaning Sunday). An asterisk means every value, a comma separates a list, a hyphen is a range and a slash is a step: */15 means every 15th value and 1-10/3 means 1, 4, 7, 10.

Worked example: 0 9 * * 1-5 is minute 0 of hour 9 on every day of the month, every month, Monday to Friday - 09:00 on weekdays.

When both day of month and day of week are restricted, standard cron runs on days matching either one, not both. 0 0 13 * 5 fires on every 13th and every Friday.

What you give it, and what you get back

Input and output of Cron Expression Generator
ItemDetails
ExpressionFive space-separated fields, or a macro such as @hourly, @daily, @weekly, @monthly or @yearly.
Field editorThe same five fields in separate boxes; editing them rewrites the expression.
DescriptionA plain-English sentence describing when the job runs.
Next runsThe next ten run times in your browser's local time zone.

Issues you may run into

Common problems with Cron Expression Generator
What you seeWhy it happensWhat to do
"has 6 fields" errorSome schedulers use a leading seconds field or a trailing year field.Remove it - this tool covers the standard five-field format - and add it back in your scheduler.
Next run is at a different hour than expectedCron on a server uses the server's time zone, but this list uses your browser's.Convert between the two zones, or set the scheduler's time zone explicitly.
Job runs on more days than expectedDay of month and day of week are both restricted, so either one matches.Restrict only one of the two, or add the check inside the script.
No run time foundThe combination never occurs, such as 31 February.Adjust the day and month so a real date matches.

Assumptions and limitations

Frequently asked questions

What does */5 * * * * mean?

Every five minutes: the minute field is a step of 5 across 0-59, and every other field is every value.

How do I run a cron job every day at midnight?

Use 0 0 * * *, or the macro @daily. That is minute 0 of hour 0 on every day.

How do I run a job on weekdays only?

Put 1-5 in the day-of-week field, for example 0 9 * * 1-5 for 09:00 Monday to Friday.

What is the order of the cron fields?

Minute, hour, day of month, month, day of week - from smallest unit to largest, with the weekday last.

What time zone does cron use?

The time zone of the machine that runs it. The next-run list here uses your browser's time zone, so convert if the server is elsewhere.

Does this support seconds or Quartz expressions?

No. It handles the standard five-field format used by Unix cron and most schedulers; Quartz and Spring cron add fields and characters it does not accept.