WoluTools
← About this tool

developer · Browser tool

Crontab Expression Builder

Paste a cron line to read it in plain English with its next run times, or pick the fields from dropdowns and take the expression away.

Runs in your browserNothing is uploadedHow it works
Free toolNo account · no job limitFree, unlimitedRuns offline once the page has loaded.

Cron expression

Steps (*/5), ranges (1-5), lists (1,3,5) and names (JAN, MON) are understood.

Build it from dropdowns

Changing a dropdown rewrites the expression above. Typing an expression that a dropdown cannot show is kept as a custom entry.

Reading

Next run times

What the five fields mean

A crontab line is minute, hour, day of month, month, day of week, then the command. Each field is a set of allowed values, and the job runs on any minute where every field matches. Minutes run 0 to 59, hours 0 to 23, days of month 1 to 31, months 1 to 12, and days of week 0 to 7 with both 0 and 7 meaning Sunday.

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

When both day fields are restricted, cron does not require both to match — it runs when either does. So 0 0 13 * FRI fires on the thirteenth of every month and on every Friday, which is rarely what people expect. Leave one of the two as * unless you actually want the union. The preview below follows this rule, and the reading says so when it applies.

Why the preview time zone matters

The times below are worked out in your local zone, because that is the clock your browser has. A cron daemon uses the time zone of the machine it runs on, or whatever CRON_TZ and TZ are set to in the crontab. If your laptop is in Berlin and the server is on UTC, an expression that reads as 09:00 here fires at 11:00 local server time in summer. Check the server's zone before trusting a schedule.

Daylight saving adds its own edge cases. On the spring-forward day a job scheduled inside the skipped hour may not run at all; on the autumn day a job in the repeated hour may run twice, depending on the cron implementation. The preview uses your browser's own date handling and so follows your zone's rules, but implementations differ and it cannot promise what a particular daemon will do.

Extensions this page does not cover

Only the standard five-field syntax is handled. It does not accept the seconds field some schedulers add, the shorthand macros @daily and @reboot, or Quartz operators such as L, W and #. Those are rejected with a message rather than guessed at.