A cron expression is a compact string that describes a recurring schedule. It tells a
scheduler when to run a job: "every day at midnight", "at 9 AM on weekdays",
"on the first Monday of each month". The name comes from the Unix cron
daemon, which has handled scheduled tasks on servers since the 1970s.
Cron expressions are used everywhere: CI/CD pipelines, database backup scripts,
serverless function triggers, data ingestion jobs, cache warmers. If you've ever
set up a GitHub Actions workflow with schedule, an AWS Lambda with an
EventBridge rule, or a Linux crontab, you've written a cron expression.
Standard Unix cron uses five fields separated by spaces:
minute hour day-of-month month day-of-week
Each field accepts a specific value or one of several operators:
15 in the minute field = at :15)1,3,5 in the day-of-week field = Mon, Wed, Fri)9-17 in the hour field = 9 AM through 5 PM)*/15 in the minute field = every 15 minutes)
So 0 9 * * 1-5 means "at 9:00 AM, Monday through Friday, every month,
every day-of-month." */30 * * * * means "every 30 minutes."
The Quartz scheduler (used in Java applications and many enterprise systems) extends
the standard format with two additional fields: seconds (prepended) and year (appended).
Quartz expressions have six or seven fields: seconds minute hour day-of-month month day-of-week [year].
Quartz also adds operators that Unix cron doesn't have: L (last day of
month, or last weekday), W (nearest weekday to a given day), #
(the nth weekday of a month, e.g. 2#3 = third Monday).
AWS EventBridge supports two scheduling forms: cron expressions and rate expressions.
The cron form looks like cron(minutes hours day-of-month month day-of-week year)
— always six fields, always includes year, always UTC. A key difference from standard
Unix cron: you cannot specify both day-of-month and day-of-week simultaneously; one
must be a ? (unspecified). EventBridge also uses a 1-based day-of-week
(Sunday = 1) instead of the 0-based convention used in some Unix systems.
Paste a cron expression and the tool explains it in plain English — what it schedules, how often, and when the next few executions will occur. The decoder identifies which dialect the expression uses and applies the right rules.
You can also build an expression using the visual form: choose the frequency and timing from dropdowns, and the tool generates the cron string for you. The builder shows the next execution times so you can verify the result before copying it into your pipeline.
The most frequent cron errors are: using both day-of-month and day-of-week in
AWS EventBridge (must use ? for one), confusing 0 and 7 for Sunday in
Unix cron (both are valid), specifying a time in local time when the scheduler expects
UTC, and using Quartz operators in a system that only supports standard Unix cron. The
tool flags these when it detects them.