Skip to content

Cron Expression Parser

Paste a cron expression to see the next scheduled run times, a plain-English description of the schedule, and a field-by-field breakdown. Supports standard 5-field Unix cron and 6-field (with seconds).

What is a cron expression?

If you have ever seen something like 0 9 * * 1-5 in a configuration file or a deployment script, that is a cron expression — a compact notation for “run this task at 9 AM on weekdays.” The name comes from the Unix cron daemon, a background service that has been scheduling recurring tasks on Unix and Linux systems since the 1970s.

The expression is a string of five (or six) space-separated fields. Reading left to right, they describe when the job should fire: minute → hour → day of month → month → day of week. A asterisk (*) in a field means “every” — so * * * * * fires every single minute. More complex schedules use ranges (1-5), steps (*/15), and lists (0,30).

Today cron syntax appears everywhere: Kubernetes CronJobs, GitHub Actions schedules, AWS EventBridge, Airflow DAGs, Jenkins pipelines, and almost every cloud platform’s scheduler. Knowing how to read and write a cron expression is a fundamental skill for any developer who works with infrastructure or automation.

One catch: “9 AM” means nothing without a timezone. Most schedulers run in UTC or the host server’s local zone, not yours — use the Timezone Converter to check what a scheduler’s 9 AM actually is where you are, and the DST Transitions page to see if a clock change will shift that run time.

Field reference

#FieldRangeExamples
1Minute0–590, */15, 30
2Hour0–230, 9, 8-17
3Day of month1–311, L, */2
4Month1–121, JAN, */3
5Day of week0–61-5, MON, 5L
6*Second0–590, */10

* Field 6 (second) is optional. When present it appears first; when omitted the expression starts at minute.

Common expressions

ExpressionMeaning
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour on the hour
0 0 * * *Every day at midnight
0 9 * * 1-5Weekdays at 9:00 AM
0 9,17 * * 1-5Weekdays at 9 AM and 5 PM
0 0 1 * *First day of every month at midnight
0 0 * * 0Every Sunday at midnight
0 0 1 1 *Every year on January 1 at midnight
*/15 8-17 * * 1-5Every 15 min, 8 AM–5 PM, weekdays

Frequently asked questions

What is a cron expression?

A cron expression is a string of five (or six) fields separated by spaces that defines when a scheduled job should run. The standard five fields are minute, hour, day-of-month, month, and day-of-week. For example, '0 9 * * 1-5' means 'at 9:00 AM, Monday through Friday'. Cron originated in Unix systems in the 1970s and is still the most common way to schedule recurring tasks in servers, CI pipelines, cloud functions, and databases.

What do the special characters mean?

* means 'every possible value'. , separates a list (e.g. 1,3,5). - defines a range (e.g. 1-5 for Monday through Friday). / sets a step (*/5 means every 5 units). L means 'last' (last day of month, or last weekday). # means 'nth weekday' (1#2 = first Monday). ? means 'any' — same as * but used in Quartz/Java schedulers when day-of-month and day-of-week would conflict.

What is the difference between 5-field and 6-field cron?

Standard Unix cron uses 5 fields: minute hour day-of-month month day-of-week. Many systems add a sixth 'seconds' field at the beginning, making it: second minute hour day-of-month month day-of-week. AWS CloudWatch Events, Quartz Scheduler (Java/Spring), and many cloud platforms use the 6-field form. This tool detects which format you are using based on field count.

What are the @ shorthand expressions?

@yearly (or @annually) runs once a year at midnight on January 1. @monthly runs at midnight on the first of each month. @weekly runs at midnight every Sunday. @daily (or @midnight) runs at midnight every day. @hourly runs at the start of every hour. These shorthands are supported by most cron implementations.

Why do the next run times look off by an hour?

Daylight Saving Time (DST) can shift the displayed time by one hour when a cron job is scheduled around a DST transition. A job set to run at 2:30 AM may be skipped or run twice depending on whether the clock springs forward or falls back. Use the timezone selector to view runs in the exact timezone your scheduler operates in — and check the DST Transitions page to see when clock changes occur.

How do I run a job every 15 minutes during business hours?

Use: */15 8-17 * * 1-5 — this runs every 15 minutes (0, 15, 30, 45) during hours 8 through 17 (8 AM to 5:45 PM), Monday through Friday. Note that */15 in the minute field starts from :00 — it will fire at :00, :15, :30, and :45 of each matching hour.

What does L mean in a cron expression?

L stands for 'last'. In the day-of-month field, L means the last day of the month — useful for jobs that should run on the 28th, 29th, 30th, or 31st depending on the month. In the day-of-week field, 5L means the last Friday of the month. L is a Quartz scheduler extension and is not supported by all cron implementations.

Can I use this to validate a cron expression before deploying?

Yes — if the expression is invalid, the parser shows an error immediately with a description of what is wrong. The next-run list lets you confirm the schedule looks exactly as expected before you push to production. Always test with a real timestamp near a DST transition if your job is time-sensitive.

Related tools

Smart paste

Paste any timestamp or date, or search for a tool