cronkit.org
Cron expressions, explained and converted — in your browser

Cron tools › Reference

Cron examples

69 schedules · 4 dialects each · every row re-checked run by run

Common cron schedules, ready to copy, each written for Linux crontab, Quartz, AWS EventBridge and Spring. Filter the list, then open any row in the parser to see its next runs in your time zone.

Every few minutes

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
Every minuteEvery minute. * * * * * 0 * * * * ? cron(* * * * ? *) 0 * * * * * Open
Every 2 minutesEvery 2 minutes. */2 * * * * 0 0/2 * * * ? cron(0/2 * * * ? *) 0 */2 * * * * Open
Every 5 minutesEvery 5 minutes. */5 * * * * 0 0/5 * * * ? cron(0/5 * * * ? *) 0 */5 * * * * Open
Every 10 minutesEvery 10 minutes. */10 * * * * 0 0/10 * * * ? cron(0/10 * * * ? *) 0 */10 * * * * Open
Every 15 minutesEvery 15 minutes. */15 * * * * 0 0/15 * * * ? cron(0/15 * * * ? *) 0 */15 * * * * Open
Every 20 minutesEvery 20 minutes. */20 * * * * 0 0/20 * * * ? cron(0/20 * * * ? *) 0 */20 * * * * Open
Every 30 minutesEvery 30 minutes. */30 * * * * 0 0/30 * * * ? cron(0/30 * * * ? *) 0 */30 * * * * Open
Every 5 minutes, offset to :02At minutes 2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52 and 57 past every hour. 2-59/5 * * * * 0 2/5 * * * ? cron(2/5 * * * ? *) 0 2/5 * * * * Open
At quarter past and quarter toAt minutes 15 and 45 past every hour. 15,45 * * * * 0 15,45 * * * ? cron(15,45 * * * ? *) 0 15,45 * * * * Open

Hourly and every few hours

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
Every hour, on the hourEvery hour, on the hour. 0 * * * * 0 0 * * * ? cron(0 * * * ? *) 0 0 * * * * Open
Every hour at :30Every hour at :30. 30 * * * * 0 30 * * * ? cron(30 * * * ? *) 0 30 * * * * Open
Every 2 hoursEvery 2 hours, on the hour (00:00, 02:00, 04:00, 06:00, …). 0 */2 * * * 0 0 0/2 * * ? cron(0 0/2 * * ? *) 0 0 */2 * * * Open
Every 3 hoursEvery 3 hours, on the hour (00:00, 03:00, 06:00, 09:00, …). 0 */3 * * * 0 0 0/3 * * ? cron(0 0/3 * * ? *) 0 0 */3 * * * Open
Every 4 hoursAt 00:00, 04:00, 08:00, 12:00, 16:00 and 20:00. 0 */4 * * * 0 0 0/4 * * ? cron(0 0/4 * * ? *) 0 0 */4 * * * Open
Every 6 hoursAt 00:00, 06:00, 12:00 and 18:00. 0 */6 * * * 0 0 0/6 * * ? cron(0 0/6 * * ? *) 0 0 */6 * * * Open
Every 8 hoursAt 00:00, 08:00 and 16:00. 0 */8 * * * 0 0 0/8 * * ? cron(0 0/8 * * ? *) 0 0 */8 * * * Open
Every 12 hoursAt 00:00 and 12:00. 0 */12 * * * 0 0 0/12 * * ? cron(0 0/12 * * ? *) 0 0 */12 * * * Open
Every odd hourAt minute 0 past hours 01:00, 03:00, 05:00, 07:00, 09:00, 11:00, 13:00, 15:00, 17:00, 19:00, 21:00 and 23:00. 0 1-23/2 * * * 0 0 1/2 * * ? cron(0 1/2 * * ? *) 0 0 1/2 * * * Open

Once or a few times a day

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
Every day at midnightAt 00:00. 0 0 * * * 0 0 0 * * ? cron(0 0 * * ? *) 0 0 0 * * * Open
Every day at 01:00At 01:00. 0 1 * * * 0 0 1 * * ? cron(0 1 * * ? *) 0 0 1 * * * Open
Every day at 02:30At 02:30. 30 2 * * * 0 30 2 * * ? cron(30 2 * * ? *) 0 30 2 * * * Open
Every day at 06:00At 06:00. 0 6 * * * 0 0 6 * * ? cron(0 6 * * ? *) 0 0 6 * * * Open
Every day at 09:00At 09:00. 0 9 * * * 0 0 9 * * ? cron(0 9 * * ? *) 0 0 9 * * * Open
Every day at noonAt 12:00. 0 12 * * * 0 0 12 * * ? cron(0 12 * * ? *) 0 0 12 * * * Open
Every day at 18:00At 18:00. 0 18 * * * 0 0 18 * * ? cron(0 18 * * ? *) 0 0 18 * * * Open
Every day at 23:59At 23:59. 59 23 * * * 0 59 23 * * ? cron(59 23 * * ? *) 0 59 23 * * * Open
Twice a day, 08:00 and 20:00At 08:00 and 20:00. 0 8,20 * * * 0 0 8,20 * * ? cron(0 8,20 * * ? *) 0 0 8,20 * * * Open
Three times a dayAt 06:00, 14:00 and 22:00. 0 6,14,22 * * * 0 0 6/8 * * ? cron(0 6/8 * * ? *) 0 0 6/8 * * * Open
Every other day (odd dates)At 00:00, on odd-numbered days (1st, 3rd … 31st). 0 0 */2 * * 0 0 0 */2 * ? cron(0 0 1/2 * ? *) 0 0 0 */2 * * Open

Weekdays, weekends and named days

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
Every weekday at 09:00At 09:00, on Monday through Friday. 0 9 * * 1-5 0 0 9 ? * MON-FRI cron(0 9 ? * MON-FRI *) 0 0 9 * * 1-5 Open
Every weekday at midnightAt 00:00, on Monday through Friday. 0 0 * * 1-5 0 0 0 ? * MON-FRI cron(0 0 ? * MON-FRI *) 0 0 0 * * 1-5 Open
Every weekday at 17:30At 17:30, on Monday through Friday. 30 17 * * 1-5 0 30 17 ? * MON-FRI cron(30 17 ? * MON-FRI *) 0 30 17 * * 1-5 Open
Weekends at 10:00At 10:00, on Saturday and Sunday. 0 10 * * 0,6 0 0 10 ? * SUN,SAT cron(0 10 ? * SUN,SAT *) 0 0 10 * * 0,6 Open
Every Monday at 09:00At 09:00, on Monday. 0 9 * * 1 0 0 9 ? * MON cron(0 9 ? * MON *) 0 0 9 * * 1 Open
Every Monday at midnightAt 00:00, on Monday. 0 0 * * 1 0 0 0 ? * MON cron(0 0 ? * MON *) 0 0 0 * * 1 Open
Every Friday at 17:00At 17:00, on Friday. 0 17 * * 5 0 0 17 ? * FRI cron(0 17 ? * FRI *) 0 0 17 * * 5 Open
Every Sunday at midnightAt 00:00, on Sunday. 0 0 * * 0 0 0 0 ? * SUN cron(0 0 ? * SUN *) 0 0 0 * * 0 Open
Monday, Wednesday and Friday at 18:00At 18:00, on Monday, Wednesday and Friday. 0 18 * * 1,3,5 0 0 18 ? * MON,WED,FRI cron(0 18 ? * MON,WED,FRI *) 0 0 18 * * 1,3,5 Open
Tuesday and Thursday at 07:30At 07:30, on Tuesday and Thursday. 30 7 * * 2,4 0 30 7 ? * TUE,THU cron(30 7 ? * TUE,THU *) 0 30 7 * * 2,4 Open
Every Saturday at 03:00At 03:00, on Saturday. 0 3 * * 6 0 0 3 ? * SAT cron(0 3 ? * SAT *) 0 0 3 * * 6 Open

Monthly, quarterly and yearly

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
First day of every monthAt 00:00, on the 1st of the month. 0 0 1 * * 0 0 0 1 * ? cron(0 0 1 * ? *) 0 0 0 1 * * Open
15th of every month at noonAt 12:00, on the 15th of the month. 0 12 15 * * 0 0 12 15 * ? cron(0 12 15 * ? *) 0 0 12 15 * * Open
1st and 15th at 09:00At 09:00, on the 1st and 15th of the month. 0 9 1,15 * * 0 0 9 1,15 * ? cron(0 9 1,15 * ? *) 0 0 9 1,15 * * Open
Every quarterAt 00:00, on the 1st of the month, every 3rd month (Jan, Apr, Jul and Oct). 0 0 1 */3 * 0 0 0 1 */3 ? cron(0 0 1 1/3 ? *) 0 0 0 1 */3 * Open
Every 6 monthsAt 00:00, on the 1st of the month, in January and July. 0 0 1 1,7 * 0 0 0 1 JAN,JUL ? cron(0 0 1 JAN,JUL ? *) 0 0 0 1 1,7 * Open
Once a year, January 1At 00:00, on January 1st. 0 0 1 1 * 0 0 0 1 JAN ? cron(0 0 1 JAN ? *) 0 0 0 1 1 * Open
Every December 25 at 09:00At 09:00, on December 25th. 0 9 25 12 * 0 0 9 25 DEC ? cron(0 9 25 DEC ? *) 0 0 9 25 12 * Open
Last day of the monthAt 00:00, on the last day of the month. no L or W — shell workaround 0 0 0 L * ? cron(0 0 L * ? *) 0 0 0 L * * Open
Last weekday of the monthAt 18:00, on the last weekday (Mon–Fri) of the month. no L or W — shell workaround 0 0 18 LW * ? cron(0 18 LW * ? *)⚠ not documented by AWS 0 0 18 LW * * Open

Business hours

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
Every 15 minutes, 09:00-17:00 on weekdaysEvery 15 minutes between 09:00 and 16:59, on Monday through Friday. */15 9-16 * * 1-5 0 0/15 9-16 ? * MON-FRI cron(0/15 9-16 ? * MON-FRI *) 0 */15 9-16 * * 1-5 Open
Every 30 minutes, 09:00-17:59 on weekdaysEvery 30 minutes between 09:00 and 17:59, on Monday through Friday. */30 9-17 * * 1-5 0 0/30 9-17 ? * MON-FRI cron(0/30 9-17 ? * MON-FRI *) 0 */30 9-17 * * 1-5 Open
Every hour from 09:00 to 17:00 on weekdaysEvery hour, on the hour, from 09:00 through 17:00, on Monday through Friday. 0 9-17 * * 1-5 0 0 9-17 ? * MON-FRI cron(0 9-17 ? * MON-FRI *) 0 0 9-17 * * 1-5 Open
Every 2 hours, 08:00-18:00 on weekdaysAt 08:00, 10:00, 12:00, 14:00, 16:00 and 18:00, on Monday through Friday. 0 8-18/2 * * 1-5 0 0 8-18/2 ? * MON-FRI cron(0 8-18/2 ? * MON-FRI *) 0 0 8-18/2 * * 1-5 Open
Every 5 minutes in office hoursEvery 5 minutes between 09:00 and 17:59, on Monday through Friday. */5 9-17 * * 1-5 0 0/5 9-17 ? * MON-FRI cron(0/5 9-17 ? * MON-FRI *) 0 */5 9-17 * * 1-5 Open
Weekdays at 09:00, 12:00 and 17:00At 09:00, 12:00 and 17:00, on Monday through Friday. 0 9,12,17 * * 1-5 0 0 9,12,17 ? * MON-FRI cron(0 9,12,17 ? * MON-FRI *) 0 0 9,12,17 * * 1-5 Open
Hourly outside office hours on weekdaysAt minute 0 past hours 00:00 through 08:00 and 18:00 through 23:00, on Monday through Friday. 0 0-8,18-23 * * 1-5 0 0 0-8,18-23 ? * MON-FRI cron(0 0-8,18-23 ? * MON-FRI *) 0 0 0-8,18-23 * * 1-5 Open
Every 10 minutes at weekendsEvery 10 minutes, on Saturday and Sunday. */10 * * * 0,6 0 0/10 * ? * SUN,SAT cron(0/10 * ? * SUN,SAT *) 0 */10 * * * 0,6 Open

Odd ones and traps

ScheduleUnix cronQuartzAWS EventBridgeSpringParser
First Monday of the monthAt 09:00, on the 1st Monday of the month. no # or L — shell workaround 0 0 9 ? * 2#1 cron(0 9 ? * MON#1 *) 0 0 9 * * 1#1 Open
Last Friday of the monthAt 17:00, on the last Friday of the month. no # or L — shell workaround 0 0 17 ? * 6L cron(0 17 ? * 6L *) 0 0 17 * * 5L Open
Weekday nearest the 15thAt 09:00, on the weekday nearest the 15th of the month. no L or W — shell workaround 0 0 9 15W * ? cron(0 9 15W * ? *) 0 0 9 15W * * Open
The 1st, and also every MondayAt 00:00, on the 1st of the month and on every Monday. 0 0 1 * 1 0 0 0 1 * ?0 0 0 ? * MON cron(0 0 1 * ? *)cron(0 0 ? * MON *) 0 0 0 1 * *0 0 0 * * 1 Open
Mondays that fall on an odd dateAt 00:00, on odd-numbered days (1st, 3rd … 31st), but only if it is a Monday. 0 0 */2 * 1 cannot restrict both day fields cannot restrict both day fields 0 0 0 */2 * 1 Open
Every 90 minutesAt minute 0 past hours 00:00, 03:00, 06:00, 09:00, 12:00, 15:00, 18:00 and 21:00. Plus: At minute 30 past hours 01:00, 04:00, 07:00, 10:00, 13:00, 16:00, 19:00 and 22:00. 0 0-21/3 * * *30 1-22/3 * * * 0 0 0/3 * * ?0 30 1/3 * * ? cron(0 0/3 * * ? *)cron(30 1/3 * * ? *) 0 0 */3 * * *0 30 1/3 * * * Open
Every 7 minutes (uneven)Every 7 minutes. */7 * * * * 0 0/7 * * * ? cron(0/7 * * * ? *)⚠ not documented by AWS 0 */7 * * * * Open
Every minute of the 09:00 hourEvery minute from 09:00 to 09:59. * 9 * * * 0 * 9 * * ? cron(* 9 * * ? *)⚠ not documented by AWS 0 * 9 * * * Open
At 04:05 on Sundays in AugustAt 04:05, on Sunday, in August. 5 4 * 8 0 0 5 4 ? AUG SUN cron(5 4 ? AUG SUN *) 0 5 4 * 8 0 Open
Leap day, February 29At 00:00, on February 29th. 0 0 29 2 * 0 0 0 29 FEB ? cron(0 0 29 FEB ? *)⚠ not documented by AWS 0 0 0 29 2 * Open
Every 30 secondsEvery 30 seconds. no seconds field 0/30 * * * * ? no seconds field */30 * * * * * Open
Once at bootOnce, when the cron daemon starts (usually at boot). @reboot no @reboot no @reboot no @reboot Open

How to use these cron examples

  1. Type part of what you need into Filter — "weekday", "15 minutes", "quarterly", "month end". Groups with no match are hidden.
  2. Copy the expression from the column for your scheduler: Unix for a Linux crontab, Kubernetes, GitHub Actions and most libraries; Quartz, AWS or Spring for those.
  3. Where a cell holds two expressions, that dialect needs two schedules to say the same thing — add both.
  4. Click Open to load the row into the parser and check the next runs in your own time zone before you deploy it.

Reading the four columns

To write a schedule that is not here, describe it to text to cron or click it together in the cron generator. To turn one into code for your library, use cron to code.

FAQ

How do I know these conversions are right?

Each Quartz, AWS and Spring cell was converted with cronkit's engine and is re-checked when this page loads: it is parsed with that dialect's rules and must give the same next 60 runs as the Unix (or Quartz) cell. The line above the tables reports the result.

Why does "every 90 minutes" need two lines?

A step such as */90 cannot exceed its field, and steps restart every hour, so no single line keeps a 90-minute rhythm. Two lines — on the hour every three hours from 00:00, and at :30 every three hours from 01:30 — cover all sixteen runs a day.

Is "every other day" really every 48 hours?

No. */2 in the day-of-month field means the odd dates 1, 3, 5 … 31, restarting each month, so after the 31st the next run is the 1st — the next day.

Why is AWS's LW flagged?

AWS documents L and W in the day-of-month field but does not document the combined LW. cronkit's engine accepts it the way Quartz does; test it in the AWS console before relying on it.