Cron Expression Parser

Explain a cron schedule in plain English and show the next times it will run.

One per line. Five fields, or a shorthand like @daily.

100 runs left today · sign up for more

About this tool

Paste a cron expression and get a plain description of it, plus the next several times it will actually fire.

The run times are the useful part, because cron has one rule that catches almost everyone: when you restrict *both* day-of-month and day-of-week, they are combined with OR, not AND. So `0 0 1 * 1` does not mean "the first of the month, if it is a Monday" — it means every Monday **and** every first of the month. No explanation makes that as obvious as seeing the dates.

Common questions

What do the five fields mean?

Minute, hour, day of month, month, day of week — in that order. An asterisk means every value. Both 0 and 7 mean Sunday in the day-of-week field.

Why does my job run more often than expected?

Almost certainly the day-of-month and day-of-week rule. If both are restricted, cron fires when *either* matches, not both. To get "the first Monday of the month" you need day-of-week in cron and a date check in the script itself.

What does */15 mean?

Every 15 steps through that field, starting at its lowest value. In the minute field that is :00, :15, :30 and :45. Note that */7 in the minute field does not divide evenly, so it skips at the top of each hour.

Which timezone does cron use?

The server's, which is why a job can appear to move by an hour twice a year. Set the timezone explicitly if the schedule matters, and consider that a daily job at 01:30 may run twice or not at all on the clock-change days.