Cron Expression Generator and Explainer

Paste a cron expression to see what it does in plain English, field by field, and when it runs next in the time zone you pick. Works with crontab, Kubernetes, GitHub Actions and Quartz. You can also build the expression from the schedule you want.

Format
Common examples

Type or paste an expression

Or pick one of the examples. The explanation and the next runs show up here.

Build an expression

Pick how often and at what time. The expression uses the format selected above.

Frequency
Days
0 9 * * 1-5At 09:00, Monday through Friday

What is a cron expression

It's a line of space-separated fields that says when a job runs. Linux crontab, Kubernetes CronJob and the GitHub Actions schedule use 5 fields. Quartz, a Java scheduler, adds seconds at the start and an optional year at the end.

The 5 fields of standard cron

The order is always minute, hour, day of month, month and day of week. 30 9 * * 1 means minute 30, hour 9, any day of the month, any month, Monday.

FieldValues
Minute0 to 59
Hour0 to 23
Day of month1 to 31
Month1 to 12 or JAN to DEC
Day of week0 to 6 or SUN to SAT (0 is Sunday)

Asterisk, comma, hyphen and slash

  • * accepts any value of the field.
  • A comma separates values: 0,30 in minutes runs at minutes 0 and 30.
  • A hyphen marks a range: 1-5 in day of week is Monday to Friday.
  • A slash sets the step: */15 in minutes runs every 15 minutes, and 9-17/2 in hours runs at 9, 11, 13, 15 and 17.

What changes in Quartz

The first field is seconds, and Sunday is 1 (Saturday is 7). One of the day fields must be ?, meaning no value. Quartz also accepts L for the last day of the month, LW for the last weekday, 15W for the weekday nearest the 15th, 6L for the last Friday and 6#3 for the third Friday of the month.

Time zones and daylight saving time

The expression doesn't carry a time zone. Crontab uses the server's zone, GitHub Actions uses UTC and Kubernetes uses the controller's zone unless spec.timeZone is set. To run at 9:00 in New York (UTC-4 in summer) on a UTC scheduler, the hour is 13. In zones with daylight saving time, a time may not exist on the day clocks spring forward, or happen twice when they fall back. The list of runs flags both cases.

Cron expression FAQ

What people ask when scheduling jobs in crontab, Kubernetes, GitHub Actions and Quartz.