Cron Expression Parser

Enter a cron expression to get a plain-English description of its schedule and the next times it will run.

Schedule—
Next runs (your local time)—
ExpressionMeaning
* * * * *Every minute
*/15 * * * *Every 15 minutes
0 9 * * 1-5At 09:00, Monday through Friday
30 2 * * SUNAt 02:30 on Sunday
0 0 1 * *At midnight on the first day of every month
0 */6 * * *Every six hours, on the hour
@dailyOnce a day at midnight (same as 0 0 * * *)

What does the cron expression parser do?

It describes a five-field cron schedule in plain English and lists the next five times it would fire, so you can check it before it goes into a crontab, a Kubernetes CronJob or a CI workflow. The fields are minute, hour, day of month, month and day of week, as documented in the crontab(5) manual page. The parser follows the rules of Vixie cron and its descendants such as cronie, which most Linux distributions ship.

This page concentrates on the tool. For the syntax itself — every operator, ready-made schedules and how other schedulers differ — read Cron syntax explained, with examples.

How to use it

  1. Type or paste an expression into Cron expression, for example */15 9-17 * * 1-5. Only the schedule goes here, not the command that follows it in a crontab line.
  2. Read Schedule, the plain-English description. It updates on every keystroke; there is no button to press.
  3. Check Next runs (your local time): the next five matching minutes after now, in your browser’s time zone.
  4. If parsing fails, a message above the results names the problem.

What the parser accepts

How the two day fields combine

When both day fields are restricted, cron runs on days matching either, and the description says “or”. Following Vixie cron, a day field starting with * counts as unrestricted even with a step, so */2 is combined with the other day field using “and”. The guide explains the rule in detail.

Verified examples

The descriptions are copied from the tool. The first runs were produced by the page with the clock set to Saturday 3 October 2026, 11:00 London time.

ExpressionSchedule (as shown)First runs listed
*/15 9-17 * * 1-5At every 15th minute past hour 9 through 17 on Monday through Friday.Mon 5 Oct 09:00, 09:15, 09:30
0 0 13 * 5At 00:00 on day-of-month 13 or on Friday.Fri 9 Oct, Tue 13 Oct, Fri 16 Oct
0 0 */2 * 1At 00:00 on every 2nd day-of-month and on Monday.Mon 5 Oct, Mon 19 Oct, Mon 9 Nov
0 0 1 */3 *At 00:00 on day-of-month 1 in every 3rd month.1 Jan 2027, 1 Apr 2027, 1 Jul 2027
* 2 * * *At every minute past hour 2.Sun 4 Oct 02:00, 02:01, 02:02 (a slip for 0 2 * * *)
0 0 29 2 *At 00:00 on day-of-month 29 in February.Tue 29 Feb 2028, Sun 29 Feb 2032 (only two in the window)

Common problems and fixes

Message or symptomCauseFix
“A cron expression needs exactly 5 fields … found 6.”A crontab line with its command was pasted, or the expression has a Quartz seconds field or an AWS year field.Keep only the five schedule fields.
“"L" is not a valid day-of-month value.”L, W and # are Quartz and AWS extensions.Use a range and a check in the command; see the guide.
“The minute value 60 is out of range (0–59).”Minutes run 0–59, hours 0–23, days 1–31, months 1–12.Write 0, not 60, for the top of the hour, and 0, not 24, for midnight.
“The range "FRI-MON" runs backwards.”Ranges cannot wrap around the end of the week or year.Use a list: FRI-SAT,SUN-MON or 5,6,0,1.
“Never — this date does not occur”The day and month can never coincide, such as 30 February.Check the day-of-month and month fields.
Run times are hours away from the server’sThe list uses your browser’s time zone; the cron daemon uses its own, often UTC.Convert with the Unix Timestamp Converter, or set your schedule in the server’s zone.

Clock changes

Run times are worked out in your local calendar. A time that falls in the hour skipped when clocks go forward is listed at the shifted time: in London, 30 1 28 3 * shows 02:30 on 28 March 2027. During the repeated hour in autumn, each time is listed once. What your cron daemon actually does at those moments depends on its implementation.

Frequently asked questions

Can I paste a line straight from my crontab?

Only the first five fields. The command (and, in /etc/crontab, the user name) would be counted as extra fields, and variable lines such as CRON_TZ=UTC are not understood.

Will it check my Quartz, Spring or AWS EventBridge expression?

Not directly. Those formats add a seconds or year field and number weekdays 1–7 from Sunday. Convert to five-field Unix syntax first, minding the weekday numbers, then check it here.

Why does 0 0 */2 * 1 skip some Mondays?

Because */2 starts with an asterisk, Vixie cron treats the day-of-month field as unrestricted and requires both fields to match: Mondays that fall on an odd date. Schedulers that do not follow this rule would run on every Monday plus every odd date, so avoid mixing steps with a weekday when portability matters.

How far ahead does it search for run times?

About eight years, day by day. That is enough to find leap days, so 0 0 29 2 * lists the two 29 Februarys in that window rather than five dates.

Does a GitHub Actions or Kubernetes schedule run at the times shown?

Only if your browser is in the same time zone as the scheduler. GitHub Actions schedules run in UTC, and a Kubernetes CronJob uses its timeZone setting or the controller’s zone, so compare the list with that zone in mind.

Is my expression sent anywhere?

No. Parsing and the run-time calculation happen in your browser, and nothing you type is uploaded.

Guides

Related tools