Paste a standard five-field cron expression and get a plain-English description plus the next five UTC run times. Ranges, lists, steps and wildcards are all supported, so you can confirm a schedule before it goes near production.

How to use it

  • Enter the five fields in order: minute, hour, day of month, month, day of week.
  • Read the English description to confirm it matches your intent.
  • Check the next five run times, which are calculated in UTC.

Reading the five fields

Minute accepts 0-59, hour 0-23, day of month 1-31, month 1-12 and day of week 0-6 with Sunday as zero. Four operators combine them. An asterisk means every value. A range such as 1-5 covers a contiguous span. A list such as 1,15,30 picks specific values. A step such as */15 selects every fifteenth value from the start of the range, so in the minute field it fires at 0, 15, 30 and 45. Steps combine with ranges, so 9-17/2 in the hour field runs every second hour during business hours.

Reading practice: 0 3 * * * is daily at 03:00. */5 * * * * is every five minutes. 0 0 1 * * is midnight on the first of each month. 30 2 * * 1 is 02:30 every Monday.

The day-of-month and day-of-week trap

The single most misread rule in cron is how the two day fields interact. When both day of month and day of week are restricted, cron treats them as a union rather than an intersection: the job runs if either matches. So 0 0 13 * 5 does not mean Friday the thirteenth; it means every thirteenth of the month and every Friday. To get a true intersection you need a guard inside the job itself. When one of the two fields is an asterisk the ambiguity disappears, which is why most well-behaved schedules leave one wildcarded.

Two further cautions. Cron has no concept of overlap, so if a job runs longer than its interval a second copy starts anyway unless you add locking. And schedules that use local time can fire twice or not at all across a daylight-saving transition, which is why the run times here are computed in UTC. The expression is parsed entirely in your browser and never sent to a server.

Frequently asked questions

Why does my job appear to run at the wrong hour?

The daemon uses the timezone of the host or container, not yours. A schedule written in local time drifts against UTC twice a year. Run infrastructure schedules in UTC and convert only when displaying them.

What is the difference between */15 and 0,15,30,45?

In the minute field, nothing; both fire at the same four instants. Steps differ from lists when applied to a restricted range, where the step counts from the range start rather than from zero.

Does this connect to my scheduler?

No. It parses the text you type and calculates the times locally. It has no access to any server and never transmits the expression.

Related tools: Unix Timestamp Converter, Regex Tester, JSON Formatter.