Skip to main content
Particularly LogoParticular.ly

Cron Parser

Cron Expression
Parse and explain cron expressions in plain English.
At 9:00 on day 1-5 of the week
Field Breakdown
minute
0At minute 0
hour
9At hour 9
day of month
*Every day of month
month
*Every month
day of week
1-5day of week 1 through 5
Common Examples
Cron Syntax
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, Sun=0 or 7)
│ │ │ │ │
* * * * *

* = any value

, = list separator (e.g., 1,3,5)

- = range (e.g., 1-5)

/ = step (e.g., */15 = every 15)

About the Cron Parser

The Cron Parser takes a cron expression and explains in plain English exactly when the schedule will run, removing the guesswork from one of the most error-prone parts of server administration. Cron syntax packs an entire recurring schedule into five (or sometimes six) space-separated fields — minute, hour, day of month, month, and day of week — and a single misplaced asterisk or slash can mean the difference between running once a day and running every minute.

The parser breaks each field down individually, interpreting wildcards (asterisk meaning every value), ranges (1-5 for Monday through Friday), lists (1,15 for the 1st and 15th), and step values (*/15 for every fifteen units). It then composes these into a readable sentence such as At 02:30 on every day-of-week from Monday through Friday. Many implementations also support the extended six-field format that adds a leading seconds field, plus shorthand macros like @daily, @hourly, and @reboot.

System administrators and developers use cron parsing to audit crontabs before deploying them, to document what an inherited schedule actually does, and to debug jobs that fire too often or never at all. It is especially valuable when configuring scheduled tasks in CI pipelines, Kubernetes CronJobs, or cloud function triggers, where an incorrect expression silently wastes compute or misses critical runs.

A useful tip is to remember the classic gotcha around the day-of-month and day-of-week fields: when both are restricted, most cron implementations treat them as an OR, so the job runs when either condition matches, not both. Always verify the next several run times the parser predicts rather than trusting your reading of the syntax. When working with epoch-based logs from those jobs, pair this with the Timestamp Converter to line up scheduled times with actual execution.

Frequently asked questions

What do the five fields in a cron expression mean?
From left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 mean Sunday).
What does an asterisk mean in cron?
An asterisk is a wildcard meaning every valid value for that field. For example, an asterisk in the minute field means the job runs every minute of the hour.
How do step values like */15 work?
A step value runs at fixed intervals within a field. */15 in the minute field means every 15 minutes (at 0, 15, 30, and 45), while */2 in the hour field means every other hour.
Why does my job run on the wrong day when I set both day-of-month and day-of-week?
When both fields are restricted (not wildcards), standard cron treats them as an OR condition, so the job runs whenever either field matches. To require both, you typically add a check inside the script itself.
What are macros like @daily and @reboot?
They are shorthand for common schedules. @daily equals 0 0 * * * (midnight every day), @hourly runs at the top of every hour, and @reboot runs once when the system starts.