Cron Explainer

Decode any cron expression into plain English, preview the next 5 run times, and browse common schedules.

runs locally on your browser. Your data never leaves your device.

At 9:00 AM, Monday through Friday

0Minute0–59
9Hour0–23
*Day1–31
*Month1–12
1-5Weekday0–6
1
Wed, Sep 9, 2026, 09:00:00 AM
2
Thu, Sep 10, 2026, 09:00:00 AM
3
Fri, Sep 11, 2026, 09:00:00 AM
4
Mon, Sep 14, 2026, 09:00:00 AM
5
Tue, Sep 15, 2026, 09:00:00 AM

Common Use Cases

Decode an unfamiliar cron expression in a legacy codebase to understand when it runs
Verify that a backup or reporting job is scheduled at the right time before deploying
Design a new scheduled task and preview the next 5 run times to confirm the cadence
Learn cron syntax by browsing common presets and seeing their field breakdown

About Cron Explainer

Cron is a time-based job scheduler built into Unix-like operating systems. It runs commands or scripts automatically at specified times and intervals. A crontab (cron table) file contains a list of cron expressions, each defining exactly when a job should run, from once a year to every minute. Cron powers everything from nightly database backups and weekly report emails to hourly cache-clearing jobs and real-time health checks that run every minute.

A standard cron expression has five fields separated by spaces: 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 represent Sunday). Special characters add flexibility: `*` means "every", `/` means "every N" (so `*/15` in the minute field means every 15 minutes), `-` defines a range (`9-17` means 9am through 5pm), and `,` lists multiple values (`1,3,5` means Monday, Wednesday, Friday).

Reading cron expressions from memory is a skill that takes practice. `0 3 * * 1` (runs at 3am every Monday) looks cryptic until you memorise the field order. Even experienced developers look up "what does this cron do?" regularly. This tool decodes any cron expression into a plain English description ("Every Monday at 3:00 AM") and shows the next 5 scheduled run times in your local timezone, so you can immediately verify whether the schedule matches your intent.

A growing library of common pre-set expressions lets you start from a working template and adjust from there.

Frequently Asked Questions

What do the five fields in a cron expression represent?
In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–7, where 0 and 7 both mean Sunday). So '30 6 * * 1' means 'at minute 30 of hour 6, every day-of-month, every month, only on Monday', which means every Monday at 6:30 AM.
What is the difference between cron's day-of-month and day-of-week fields?
If both the day-of-month and day-of-week fields are restricted (neither is *), the job runs when EITHER condition is met (not both). So '0 0 1 * 1' runs at midnight on the 1st of each month AND every Monday at midnight, not only on Mondays that fall on the 1st. This OR behaviour surprises many developers who expect AND logic.
Does cron support seconds?
Standard Unix/POSIX cron does not support a seconds field, so the minimum resolution is one minute. Some extended cron implementations (like Quartz Scheduler in Java, or AWS EventBridge) add a 6th field for seconds. If you need sub-minute scheduling, check your specific cron implementation's documentation.
What timezone does cron use?
By default, cron runs in the system timezone of the server it's installed on. Many cloud platforms allow you to specify a timezone per job. If your server is in UTC but your business logic requires scheduling in a local timezone (e.g., 'run at 9am New York time'), you must account for daylight saving time transitions, which can shift your schedule by an hour twice a year.
What is the difference between @daily, @weekly, and @monthly?
@daily (or @midnight) is equivalent to '0 0 * * *' and runs once per day at midnight. @weekly runs once per week on Sunday at midnight ('0 0 * * 0'). @monthly runs at midnight on the 1st of every month ('0 0 1 * *'). @hourly runs at minute 0 of every hour. These shorthand strings are supported by most cron implementations.