Cron Explainer

Paste a cron expression to get a plain-English or Japanese description, a field-by-field breakdown and the next 5 to 50 run times in any time zone. Supports 5- and 6-field (seconds) expressions, macros such as @daily, L and #, and comes with presets for common schedules.

About this tool

What is the Cron Explainer?

Cron expressions describe recurring schedules, such as */15 9-17 * * 1-5 (every 15 minutes, between 09:00 and 17:59, Monday through Friday). The Cron Explainer turns an expression into a readable sentence, shows what each field means, and calculates when it will run next, so you can check a crontab line or a scheduler setting before deploying it.

How to use

  1. Type or paste an expression into Cron expression, or pick one from Presets.
  2. Read the sentence under Description. Switch between English and 日本語 with the toggle.
  3. Check Fields to see each field's raw value, its meaning and the values it expands to.
  4. Under Next run times, choose a Time zone and a Count (5, 10, 20 or 50). Each run shows its date and how long until it happens. Click the refresh button to recalculate from the current time.

Features

FeatureDescription
DescriptionHuman-readable description in English or Japanese (powered by cronstrue)
Next run timesThe next 5 to 50 run times in the time zone you choose, with the time remaining (powered by cron-parser)
Field breakdownEach field (minute, hour, day of month, month, day of week) with its meaning and expanded values
Seconds6-field expressions with a leading seconds field are supported
Macros@yearly, @annually, @monthly, @weekly, @daily, @midnight, @hourly
PresetsEvery minute, every hour, every day at 9:00, weekdays at 9:00, the 1st of every month, every 15 minutes, and more
Error displayInvalid expressions show what is wrong

Cron format

A standard expression has 5 fields separated by spaces: minute hour day-of-month month day-of-week. A 6-field expression adds a seconds field at the beginning.

FieldAllowed values
Second (optional, first)0-59
Minute0-59
Hour0-23
Day of month1-31, L
Month1-12 or JAN-DEC
Day of week0-7 or SUN-SAT (0 and 7 are Sunday), L, #
SyntaxMeaningExample
*Every value* * * * * every minute
,List0 9,18 * * * at 9:00 and 18:00
-Range0 9 * * 1-5 weekdays at 9:00
/Step*/15 * * * * every 15 minutes
LLast day of month, or last weekday of month0 0 L * *, 0 0 * * 5L
#Nth weekday of the month0 0 * * 1#2 second Monday

Day of month and day of week

When both the day-of-month and day-of-week fields are restricted (neither is *), standard cron runs the job when either matches (OR), not when both match. For example, 0 0 13 * 5 runs on the 13th of every month and on every Friday, not only on Friday the 13th. The tool shows a warning in this case, and the next run times follow the OR rule.

FAQ

Why do the run times differ from my server?

Cron runs in the server's time zone (or the zone set by the scheduler, such as CRON_TZ or a timeZone option). Set Time zone to the same zone to see the times your server will use. Run times include daylight saving time changes for the selected zone.

Does it support Quartz or Jenkins syntax?

Partly. A leading seconds field (6 fields) is supported, but a 7th year field and the Jenkins H (hash) syntax are not. @reboot is also rejected because it has no schedule.

Is the Japanese description accurate?

It is the Japanese translation provided by cronstrue. The meaning matches the English text, though the wording can be a little mechanical.

Is my expression sent anywhere?

No. Parsing, the description and the run time calculation all happen in your browser.