LanceLabs Tools β€Ί Cron Expression Explainer

Cron Expression Explainer

Paste a crontab line. Get it in plain English, broken down field by field, with the next times it would actually run.


How a cron expression is built

A standard cron line is five fields separated by spaces:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ minute        (0–59)
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ hour          (0–23)
β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€ day of month  (1–31)
β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€ month         (1–12, or JAN–DEC)
β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€ day of week   (0–7, 0 & 7 = Sunday, or SUN–SAT)
β”‚ β”‚ β”‚ β”‚ β”‚
* * * * *

Each field accepts:

  • * β€” every value.
  • 5 β€” a single value.
  • 1,15,30 β€” a list.
  • 9-17 β€” a range (inclusive).
  • */15 β€” a step: every 15th value (0, 15, 30, 45 for minutes).
  • 0-30/5 β€” a step within a range.
  • Names: JAN…DEC for months, SUN…SAT for weekdays.

The day-of-month / day-of-week trap

This catches almost everyone. If both the day-of-month field and the day-of-week field are restricted (neither is *), cron runs the job when either one matches β€” not both. So 0 0 13 * 5 means "midnight on the 13th of the month, and also every Friday", not "Friday the 13th". If only one of the two is restricted, just that one has to match. This tool tells you when the rule is in play.

Common expressions

ExpressionMeaning
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour, on the hour
0 0 * * *Every day at midnight (same as @daily)
0 9 * * 1-59:00 AM, Monday–Friday
0 0 * * 0Midnight every Sunday (same as @weekly)
0 0 1 * *Midnight on the 1st of every month (same as @monthly)
30 2 * * 12:30 AM every Monday
0 */6 * * *Every 6 hours (00:00, 06:00, 12:00, 18:00)
0 8-18/2 * * *Every 2 hours from 8 AM to 6 PM

Shortcuts: @yearly/@annually = 0 0 1 1 *, @monthly = 0 0 1 * *, @weekly = 0 0 * * 0, @daily/@midnight = 0 0 * * *, @hourly = 0 * * * *.

Why don't the "next runs" match my server?

Cron runs in the timezone of the machine (or the CRON_TZ / TZ set for the job). This page computes the next runs in your browser's local timezone. If your server is on UTC and you're not, shift accordingly.

Does it support seconds, ?, L, W, #?

Not yet β€” those are extensions used by Quartz and some other schedulers, not standard Unix/Vixie cron. This tool covers the standard 5-field syntax plus the @ shortcuts. If you paste a 6-field (with seconds) expression it'll tell you.

Is anything sent to a server?

No β€” parsing and the next-run calculation happen entirely in your browser.

Liked these tools? Keep them ad-free.

No signups, no popups, no "upgrade to export" β€” these tools are made and kept free because some folks support the work. If something here saved you a minute, a coffee helps me keep making more.

Buy me a coffee β€” ko-fi.com/lancelabs