TFT

CRON Expression Cheat Sheet & Quick Reference

Find the CRON expression you need fast. Browse our cheat sheet with common patterns, syntax rules, and examples. A quick reference for developers and system administrators.

CRON Expression Cheat Sheet & Reference
Quick reference for common CRON patterns and syntax rules
Syntax Rules & Special Characters
Understanding CRON special characters
CharacterNameDescriptionExample
*AsteriskAny value - matches all possible values* * * * * = every minute
,CommaValue list separator - specifies multiple values0,15,30,45 * * * * = every 15 minutes
-HyphenRange of values - specifies a range0 9-17 * * * = 9 AM to 5 PM
/SlashStep values - specifies increments*/5 * * * * = every 5 minutes
?Question MarkNo specific value (alternative to *)0 0 ? * * = daily at midnight
LL CharacterLast day of month or last weekday0 0 L * * = last day of month
WW CharacterNearest weekday to specified day0 0 15W * * = nearest weekday to 15th
#HashNth occurrence of weekday0 0 * * 1#2 = 2nd Monday
Field Reference
CRON expression format: minute hour day-of-month month day-of-week

Minute

0-59

Minute of the hour

Hour

0-23

Hour of the day

Day of Month

1-31

Day of the month

Month

1-12

Month of the year

Day of Week

0-6

Day of the week (0=Sun)

Common CRON Patterns
Click any pattern to copy

Basic Patterns

* * * * *

Every minute

Frequent tasks, testing

*/5 * * * *

Every 5 minutes

Regular polling, monitoring

*/10 * * * *

Every 10 minutes

Periodic checks

*/15 * * * *

Every 15 minutes

Quarter-hour tasks

*/30 * * * *

Every 30 minutes

Half-hourly tasks

0 * * * *

Every hour

Hourly reports, syncs

0 */2 * * *

Every 2 hours

Bi-hourly tasks

0 */4 * * *

Every 4 hours

Regular intervals

0 */6 * * *

Every 6 hours

Four times daily

0 */12 * * *

Every 12 hours

Twice daily

Daily Patterns

0 0 * * *

Daily at midnight

Daily resets, backups

0 6 * * *

Daily at 6 AM

Morning tasks

0 9 * * *

Daily at 9 AM

Business start

0 12 * * *

Daily at noon

Midday tasks

0 18 * * *

Daily at 6 PM

End of day

0 23 * * *

Daily at 11 PM

Night tasks

Weekly Patterns

0 0 * * 0

Weekly on Sunday

Weekly maintenance

0 0 * * 1

Weekly on Monday

Start of week

0 9 * * 1

Monday at 9 AM

Weekly meetings

0 0 * * 5

Weekly on Friday

End of week

0 0 * * 6

Weekly on Saturday

Weekend tasks

Weekdays Patterns

0 9 * * 1-5

Weekdays at 9 AM

Business hours

0 17 * * 1-5

Weekdays at 5 PM

End of workday

0 */2 9-17 * * 1-5

Every 2h, 9AM-5PM, weekdays

Business hours polling

Monthly Patterns

0 0 1 * *

Monthly on 1st

Monthly reports

0 0 15 * *

Monthly on 15th

Mid-month tasks

0 0 1,15 * *

Twice monthly

Bi-monthly reports

0 0 L * *

Last day of month

Month-end processing

Quarterly Patterns

0 0 1 1,4,7,10 *

Quarterly

Quarterly reports

Yearly Patterns

0 0 1 1 *

Yearly on Jan 1

Annual tasks

0 0 1 6 *

Yearly on Jun 1

Mid-year tasks

Quick Reference Table
FrequencyCRON ExpressionHuman Readable
Every minute* * * * *Every minute of every hour of every day
Every 5 minutes*/5 * * * *At minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
Every hour0 * * * *At minute 0 of every hour
Every day at midnight0 0 * * *At 00:00 (midnight) every day
Every day at 9 AM0 9 * * *At 09:00 every day
Every Monday at 9 AM0 9 * * 1At 09:00 on every Monday
Weekdays at 9 AM0 9 * * 1-5At 09:00 on Monday through Friday
First of every month0 0 1 * *At 00:00 on day 1 of every month
Every Sunday0 0 * * 0At 00:00 on every Sunday
Yearly on Jan 10 0 1 1 *At 00:00 on January 1st
Pro Tips
  • Use */N for regular intervals (e.g., */15 for every 15 minutes)
  • Combine ranges and lists: 0 9-12,14-17 * * 1-5 for business hours
  • Day of month and day of week are OR conditions - if both are specified, either can trigger
  • Test your expressions before deploying to production

How to Use This CRON Cheat Sheet

This reference collects common CRON patterns organized by frequency and use case. Instead of building expressions from scratch, find a pattern close to what you need and copy it directly.

The syntax rules section explains what each special character does. Understanding these five characters lets you modify any pattern or build custom expressions: asterisk (*), comma (,), hyphen (-), slash (/), and question mark (?).

Quick reference for special characters:

*Any value - matches everything in that field
,Value separator - specifies multiple discrete values
-Range - specifies a continuous span of values
/Step - specifies increments within a range

Search filters patterns by CRON expression, description, use case, or category. Type "hourly" to see all hourly patterns, or "Monday" to find Monday-specific schedules.

When You'd Actually Use This

Quick lookup during incident response

At 2 AM debugging why a job didn't run, an on-call engineer searches "daily midnight" to confirm the expression should have triggered. The cheat sheet provides instant answers without digging through documentation.

Building a new scheduling configuration

A developer setting up automated tasks browses the "Daily Patterns" section, finds "0 9 * * *" for 9 AM execution, and copies it directly instead of calculating the fields manually.

Code review for CRON expressions

A reviewer sees "0 */6 * * *" in a pull request and wants to verify it's correct. They check the cheat sheet to confirm it means "every 6 hours" before approving the change.

Writing deployment documentation

A technical writer creates setup instructions that include recommended schedules. They reference the cheat sheet to ensure all example expressions are correct and follow best practices.

Learning CRON syntax by example

A junior developer studying scheduled tasks looks at patterns like "*/15 * * * *" and "0 0 1 * *" to understand how different combinations of special characters create different schedules.

Migrating schedules between systems

An ops team moves from Windows Task Scheduler to Linux CRON. They use the cheat sheet to find equivalent expressions for their existing schedules, ensuring nothing changes during the migration.

What to Know About CRON Patterns

Field order is fixed and easy to mix up.The order is: minute, hour, day-of-month, month, day-of-week. It's not intuitive—many people expect hour before minute or day before month. Remember: smallest unit to largest (mostly).

Step values start from the minimum, not zero."*/15" in minutes gives 0, 15, 30, 45. But "10-50/10" gives 10, 20, 30, 40, 50— it starts from the range start, not zero. This matters for off-peak scheduling.

Day fields use OR logic when both specified.If you set both day-of-month (15) and day-of-week (1), the job runs on the 15th of any month AND every Monday. Use "*" in one field if you want both conditions to be required.

Some patterns look similar but behave differently."0 * * * *" (every hour at :00) vs "0 */1 * * *" (also every hour at :00) vs "* * * * *" (every minute). The middle one is redundant—*/1 is the same as *.

Pro tip: When combining ranges and steps like "0-30/10", the step applies within the range. This gives 0, 10, 20, 30—not 0, 10, 20, 30, 40, 50. The range bounds the step.

Common Questions

What's the most common CRON expression?

"0 0 * * *" (daily at midnight) and "0 * * * *" (every hour) are extremely common. For development and testing, "* * * * *" (every minute) is frequently used despite being aggressive for production.

How do I schedule something every 2 hours?

Use "0 */2 * * *". This runs at minute 0 of every 2nd hour: 12 AM, 2 AM, 4 AM, 6 AM, 8 AM, 10 AM, noon, 2 PM, 4 PM, 6 PM, 8 PM, 10 PM. For every 2 hours during business hours only, use "0 */2 9-17 * * 1-5".

What does "0 0 L * *" mean?

The "L" stands for "last" and means the last day of the month. However, this is a non-standard extension supported by some CRON implementations like Quartz. Standard Unix CRON doesn't support "L"—you'd need to use "0 0 28-31 * *" and check the date in your script.

How do I run something every weekday at 9 AM?

Use "0 9 * * 1-5". This breaks down as: minute 0, hour 9 (9 AM), any day of month, any month, days 1-5 (Monday through Friday). It's one of the most common business scheduling patterns.

Can I combine multiple times in one expression?

Yes, use commas to list specific values. "0 9,14,17 * * *" runs at 9 AM, 2 PM, and 5 PM daily. "0 9 * * 1,3,5" runs at 9 AM on Monday, Wednesday, and Friday. You can combine this with ranges: "0 9-12,14-17 * * 1-5" for business hours.

What's the difference between daily and every 24 hours?

There's no practical difference in CRON—"0 0 * * *" runs once per day at midnight. CRON is calendar-based, not interval-based. There's no way to say "24 hours after the last run"—it's always tied to clock time.

How do I schedule quarterly tasks?

Use "0 0 1 1,4,7,10 *" which runs at midnight on January 1st, April 1st, July 1st, and October 1st—the first day of each quarter. For end-of-quarter, you'd need to handle the varying last dates in your script.