Cron Expression Explainer – Free Online Tool | Awesome Toolkit

Cron Expression Explainer

Parse any cron expression and get a plain-English explanation plus the next 5 scheduled run times.

By Marshkalk

How to use the Cron Explainer

  1. Type a cron expression in the field (5 space-separated fields) or click a preset.
  2. Click Explain to get a plain-English description and the next 5 scheduled run times.

Cron expression format

A standard cron expression has 5 space-separated fields:

FieldAllowed valuesSpecial characters
Minute0-59* , - /
Hour0-23* , - /
Day of month1-31* , - / ?
Month1-12* , - /
Day of week0-6 (0 = Sunday)* , - /

Special characters

  • *, matches every value in the field
  • */n, every n units (e.g. */5 in the minutes field = every 5 minutes)
  • a-b, a range (e.g. 1-5 in the day-of-week field = Monday to Friday)
  • a,b,c, a list of specific values (e.g. 0,6 in day-of-week = Sunday and Saturday)

Common cron expressions

ExpressionMeaning
* * * * *Every minute
0 * * * *Every hour, on the hour
0 0 * * *Daily at midnight
0 9 * * 1-5Weekdays at 9:00 AM
0 0 * * 0Every Sunday at midnight
0 0 1 * *First day of every month at midnight
*/15 * * * *Every 15 minutes
0 0 1 1 *Once a year (January 1st at midnight)

Where cron is used

Cron is the standard job scheduler on Unix/Linux systems (crontab -e to edit). It is also used in cloud environments: AWS EventBridge, GitHub Actions schedule trigger, GitLab CI pipelines, Kubernetes CronJobs, and many web hosting control panels (cPanel, Plesk). The syntax is the same across all these environments, with minor variations in some platforms that add a seconds field or use named days.

Platform differences and critical gotchas

Cron syntax is not fully standardised. These differences break jobs when moving between platforms:

PlatformFieldsDifferences from Linux cron
Linux crontab5 (min hour dom month dow)Reference implementation
GitHub Actions schedule5Runs in UTC only. Minimum interval: every 5 min. Jobs may be delayed under high load.
AWS EventBridge6 (min hour dom month dow year)Uses ? for "no value" on dom/dow (cannot specify both). Year field added.
Quartz Scheduler (Java)7 (sec min hour dom month dow year)Seconds field at position 1. Day-of-week numbering differs: 1=Sunday in Quartz.
Kubernetes CronJob5Standard Linux syntax. Timezone support added in Kubernetes 1.27 (spec.timeZone).

Timezone trap: Linux cron runs in the server's local timezone. 0 9 * * 1-5 means 9:00 AM server time, not the user's local time. If your server runs in UTC and your users are in CET (UTC+1), the job fires at 10:00 AM for them. Always set CRON_TZ in your crontab or use TZ=Europe/Paris cron to be explicit.

Day-of-month and day-of-week combined: On Linux, if both dom and dow are set (neither is *), the job runs when either condition is true (OR logic), not when both are true. 0 9 1 * 1 runs at 9:00 on both the 1st of the month AND every Monday.