The scheduling expression is a string comprised of 6 fields separated by white space, also called a ‘cron’ expression. Fields can contain any of the allowed values, along with various combinations of the allowed special characters for that field. The fields are as follows:
Field | Allowed values | Allowed characters | Mandatory |
---|---|---|---|
Seconds | 0-59 | , – * / | Yes |
Minutes | 0-59 | , – * / | Yes |
Hours | 0-23 | , – * / | Yes |
Day of month | 1-31 | , – * ? / L W | Yes |
Month | 1-12 or JAN-DEC | , – * / | Yes |
Day of week | 1-7 or SUN-SAT | , – * ? / L # | Yes |
Special characters
- * (asterisk): Used to select all values within a field. For example, “*” in the minute field means “every minute”.
- ? (question mark): Useful when you need to specify something in one of the two fields in which the characteris allowed, but not the other. For example, if I want my trigger to fire on a particular day of the month (say, the10th), but don’t care what day of the week that happens to be, I would put “10” in the day-of-month field, and“?” in the day-of-week field. See the examples below for clarification.
- – (dash): Used to specify ranges. For example, “10-12” in the hour field means “the hours 10, 11 and 12”.
- , (comma): Used to specify additional values. For example, “MON,WED,FRI” in the day-of-week field means“the days Monday, Wednesday and Friday”.
- / (slash): Used to specify increments. For example, “0/15” in the seconds field means “the seconds 0, 15, 30,and 45”. And “5/15” in the seconds field means “the seconds 5, 20, 35, and 50”.
- L: Has a different meaning in each of the two fields in which it is allowed. For example, the value “L” in the day-of-month field means “the last day of the month” – day 31 for January, day 28 for February on non-leap years. Infused in the day-of-week field by itself, it simply means “7” or “SAT”. But if used in the day-of-week field after another value, it means “the last xxx day of the month” – for example, “6L” means “the last Friday of the month”. You can also specify an offset from the last day of the month, such as “L-3” which would mean the third-to-last day of the calendar month. When using the ‘L’ option, it is important not to specify lists, or ranges of values, as you’ll get confusing/unexpected results.
- W: Used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify“15W” as the value for the day-of-month field, the meaning is: “the nearest weekday to the 15th of the month”.So if the 15th is a Saturday, the trigger will fire on Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. However, if you specify “1W” as the value for day-of-month, and the 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not ‘jump’ over the boundary of a month’s days. The “W” character can only be specified when the day-of-month is a single day, not a range or list of days.
- # (hash): Used to specify “the nth” XXX day of the month. For example, the value of “6#3” in the day-of-week field means “the third Friday of the month” (day 6 = Friday and “#3” = the 3rd one in the month). Other examples: “2#1” = the first Monday of the month and “4#5” = the fifth Wednesday of the month. Note that if you specify “#5” and there are not 5 of the given day-of-week in the month, then no firing will occur that month.
Examples
Expression | Meaning |
---|---|
0 0 12 * * ? | Fire at 12pm (noon) every day. |
0 15 10 * * ? | Fire at 10:15am every day. |
0 0/1 14 * * ? | Fire every minute starting at 2pm and ending at 2:59pm, every day. |
0 0/5 14 * * ? | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day. |
0 0/5 14,18 * * ? | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutesstarting at 6pm and ending at 6:55pm, every day. |
0 0-5 14 * * ? | Fire every minute starting at 2pm and ending at 2:05pm, every day. |
0 10,44 14 * 3 WED | Fire at 2:10pm and at 2:44pm every Wednesday in the month of March. |
0 15 10 * * MON-FRI | Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday. |
0 15 10 15 * ? | Fire at 10:15am on the 15th day of every month. |
0 15 10 L * ? | Fire at 10:15am on the last day of every month. |
0 15 10 L-2 * ? | Fire at 10:15am on the 2nd-to-last last day of every month. |
0 15 10 * * 6L | Fire at 10:15am on the last Friday of every month. |
0 15 10 * * 6#3 | Fire at 10:15am on the third Friday of every month. |
0 0 12 1/5 * ? | Fire at 12pm (noon) every 5 days every month, starting on the first day of the month. |
0 11 11 11 11 ? | Fire every November 11th at 11:11am. |