Cron Expression Parser

Turns a cron schedule into plain English and shows upcoming runs in the server's timezone. Common traps are named, and a whole crontab pastes at once.

Examples:

Cron runs jobs by the server clock, not yours. Pick the time zone the server lives in, and the runs will be shown in it. Nothing is sent anywhere: everything is calculated in your browser.

What the tool shows

The five cron fields become a plain sentence: "every 15 minutes from 09:00 to 18:59 on weekdays." Below that you get the next scheduled runs with the date, the day of the week, and a "in 3 days" label, the number of runs per year, and a list of pitfalls when there are any.

The tool understands macros like @daily, @weekly, month and weekday names, six-field expressions with seconds, and the L, W, and # symbols from Quartz and Spring. Paste a whole crontab and every line gets decoded, with MAILTO, PATH, and CRON_TZ variables taken into account.

Why schedules run when you did not plan them

Cron forgives a lot, and the schedule fires at moments nobody intended. Here are the cases we point out directly.

  • Both the day of month and the weekday are set. Cron joins them with an OR: 0 9 1-7 * 1 runs on the 1st through the 7th and on every Monday, not on the first Monday of the month.
  • Asterisk minutes with a fixed hour: * 3 * * * means 60 runs in a row from 03:00 to 03:59, not one run at 3 a.m.
  • A step that does not divide the hour evenly: */7 in minutes gives 0, 7, 14… 56, then 0 again, so one gap shrinks to four minutes instead of seven.
  • Day 31 never arrives in February, April, June, September, or November; February 30 never exists; February 29 comes once every four years.

The server time zone

Cron runs tasks by the clock of the machine it sits on, not the clock of the person reading it. Pick the server time zone and the runs appear in it: all Russian time zones, UTC, and neighboring countries.

In zones with daylight saving shifts, a schedule can land on an hour that does not exist that day, or on an hour that occurs twice. Such dates are flagged, because cron implementations disagree on how to handle them.

Command checks

When a line includes a command, the tool checks that too. The % sign cuts a command off in cron: date +%F will not work that way. Without output redirection, everything the command prints goes out as mail. Cron runs with a short PATH, so a command without its full path may not be found. And sudo inside a crontab hangs waiting for a password.

Rate this tool

Help us get better

Other tools