Cron Expression Builder

Your data never leaves your browser

Build and validate cron expressions. Get a plain-English description and preview the next 5 run times.

0

Minute

0–59

9

Hour

0–23

*

Day

1–31

*

Month

1–12

1-5

Weekday

0–6 (Sun=0)

Presets:

Human-readable

At 9:00 AM, every Monday, Tuesday, Wednesday, Thursday, and Friday

Field breakdown

Minute

0

0–59

Hour

9

0–23

Day

*

1–31

Month

*

1–12

Weekday

1-5

0–6 (Sun=0)

Ctrl+KResetSupports *, */n, a-b, a,b,c syntax. Named months (JAN–DEC) and weekdays (MON–SUN) supported.

Share this tool

Found it useful? Help a fellow developer discover it.

https://developertoolkit.dev/tools/cron-builder

Cron field reference

FieldPositionRangeSpecial valuesExample
Minute1st0–59*, */n, a-b, a,b*/15 → every 15 min
Hour2nd0–23*, */n, a-b, a,b9-17 → 9 AM to 5 PM
Day/Month3rd1–31*, */n, a-b, a,b1,15 → 1st and 15th
Month4th1–12*, JAN–DEC3,6,9,12 → quarterly
Day/Week5th0–6*, SUN–SAT (0=Sun)1-5 → Mon to Fri
OperatorMeaningExampleResult
*Any value* * * * *Every minute
,Value list0 9,17 * * *9 AM and 5 PM
-Range0 9-17 * * *Every hour 9 AM to 5 PM
/Step*/10 * * * *Every 10 minutes

What is a cron expression?

Cron is a Unix job scheduler that runs commands on a schedule defined by a 5-field expression: minute hour day-of-month month day-of-week. Cron jobs are used for backups, cache warming, report generation, health checks, and any task that needs to run on a repeating schedule. Most cloud platforms (AWS EventBridge, GCP Cloud Scheduler, GitHub Actions) support cron syntax directly.

Common cron schedule patterns

ExpressionDescription
* * * * *Every minute
0 * * * *Every hour, on the hour
0 9 * * *Every day at 9 AM
0 9 * * 1-5Every weekday at 9 AM
*/15 * * * *Every 15 minutes
0 9,17 * * *Every day at 9 AM and 5 PM
0 0 1 * *First day of every month at midnight
0 0 * * 0Every Sunday at midnight
0 0 * * 1Every Monday at midnight

Frequently Asked Questions

What does "*/5" mean in a cron field?

*/5 means "every 5 units." In the minute field it means every 5 minutes (0, 5, 10, 15, …, 55). In the hour field it means every 5 hours (0, 5, 10, 15, 20). The * means "start from the beginning of the range" and /5 means "step by 5."

If I set both day-of-month and day-of-week, which takes priority?

In standard Unix cron, if both are non-wildcard, the job runs when either condition is met (OR logic). So "0 0 1 * 1" means "midnight on the 1st of the month OR every Monday," not "only on Mondays that fall on the 1st." This is a common gotcha.

Does cron use local time or UTC?

Traditional Unix cron uses the local timezone of the server. Cloud schedulers vary: AWS EventBridge cron uses UTC, GCP Cloud Scheduler lets you specify a timezone, and GitHub Actions cron is always UTC. Check your platform's docs to avoid off-by-one hour bugs around daylight saving time.

Is there a 6-field cron syntax?

Yes. Some systems (AWS, Spring Batch, Quartz) add a seconds field as the first field, making it "second minute hour day month weekday." This tool uses the standard 5-field Unix format. If you see a 6-field expression failing, remove the leading seconds field.

How do I run a cron job every weekday at 9 AM?

Use the expression 0 9 * * 1-5. The fields are: 0 (minute), 9 (hour), * (any day of month), * (any month), 1-5 (Monday through Friday, where 1 = Monday and 5 = Friday). Paste this into the builder to confirm the next run times show weekdays only.

What is the difference between cron and a cloud task scheduler?

Cron is the Unix daemon that reads a crontab file and fires jobs at scheduled times. Platform schedulers like AWS EventBridge Scheduler, GCP Cloud Scheduler, and GitHub Actions scheduled workflows accept cron syntax but add features like timezone support, retry logic, and HTTP target invocations. The core 5-field cron syntax is the same across all of them.

Can I test a cron expression without deploying it?

Yes. Paste your expression into this tool to see the next 5 run times with a plain-English description. Verify the schedule visually before adding it to your crontab or cloud scheduler. This avoids common mistakes like accidentally running a job every minute instead of every hour.

Why did my cron job not run at the expected time?

Common causes: the cron daemon was not running, the server was in a different timezone than expected, the expression used a 6-field format on a platform that expects 5 fields, both day-of-month and day-of-week were non-wildcard (causing OR logic instead of AND), or the command path was not absolute. Use this tool to confirm the expression fires when expected.

Related Tools