Reference

Cron special characters.

Standard Unix cron supports * , - /. Quartz adds ? L W #. Macros like @daily work on most systems but not AWS or GitHub Actions. This is the quick reference.

The complete table

CharNameMeaningExample
*AsteriskAny value* * * * * = every minute
,CommaList of values0,15,30,45 * * * * = every 15 min
-HyphenRange9-17 in hour = 9 AM through 5 PM
/SlashStep*/5 in minute = every 5 minutes
?Question markNo specific value (Quartz/AWS)0 9 ? * MON-FRI
LLast (Quartz/AWS)Last day of month or last weekday0 0 0 L * ?
WWeekday (Quartz/AWS)Nearest weekday to a date0 0 0 15W * ?
#Hash (Quartz/AWS)Nth weekday of month0 0 0 ? * 2#1 = 1st Monday
HHash (Jenkins-only)Random offset per jobH */5 * * * *
@MacroShorthand expression@daily = 0 0 * * *

Platform support

Platform* , - /?L W #H@macros
Unix cron (Vixie)
Quartz
AWS EventBridge
Spring @Scheduled✓ (limited)
Kubernetes CronJob
GitHub Actions
Azure Functions (NCRONTAB)
Jenkins

Combining characters within a field

You can mix multiple special characters in the same field:

0-30/5        # Every 5 minutes from 0 to 30 (0, 5, 10, 15, 20, 25, 30)
1,15,30       # Minutes 1, 15, and 30
1-5,15,30     # Minutes 1-5, plus 15 and 30
9-17/2        # Every 2 hours from 9 AM to 5 PM (9, 11, 13, 15, 17)

Macros reference

MacroExpands toMeaning
@yearly / @annually0 0 1 1 *Once a year, Jan 1 midnight
@monthly0 0 1 * *1st of every month, midnight
@weekly0 0 * * 0Sunday midnight
@daily / @midnight0 0 * * *Every day at midnight
@hourly0 * * * *Top of every hour
@reboot(no expansion)Once at system startup
Related

Continue reading.