Cron Expression

From AgileApps Support Wiki

A Cron expression is a syntax used to specify a repeating sequence of time. A Cron expression comprises of six mandatory fields and one optional field. All expressions are separated by a space. The fields are described in the following table:


Field name

Allowed values

Allowed special characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L #
Year (optional) empty, 1970-2199 , - * /

The asterisk (*) character specifies all values. For example, * in the minute field implies every minute.

The question mark (?) character specifies the day-of-month field and day-of-week field. You can select only one field at a time.

The hyphen (-) character specifies the range. For example, 10-12 in the hour field implies the hours 10, 11 and 12.

The comma (,) character specifies additional values. For example, MON, WED, FRI in the day-of-week field implies the days Monday, Wednesday, and Friday.

The slash mark (/) character specifies increments. A value before / character is the initial value. A value after / character is the value which specifies intervals. The Cron expression will not trigger when the interval value exceeds Allowed values. For example, 5/15 in the second’s field implies the seconds 5, 20, 35, and 50. The value after 50 is 65 and the Cron expression does not trigger 65 as it is beyond the allowed values.

Notepad.png

Note: The asterisk (*) character before slash mark (/) implies that the starting value is 0.

The L character specifies the last day of the month or last day of the week. For example, the value L in the day-of-month field specifies the last day of the month. If the L character is used in the day-of-week field, it is Saturday. If the L character is used in the day-of-week field after another value, it implies that it is the last day of the month. For example, 6L means the last Friday of the month. You can also specify an offset value from the last day of the month. For example, L-3 specifies the third last day of the calendar month.

Notepad.png

Note: Do not use L to specify lists or range of values.

The W character specifies the nearest weekday to the given day in the day-of-month field. For example, 15W specifies the nearest weekday to the 15th of the month. If 15th is a Saturday, the specified action will trigger on Friday, 14th. If 15th is a Sunday, the specified action will trigger on Monday, 16th. If 15th is a Tuesday, then the action triggers on Tuesday, 15th. However, if you specify 1W as the value in the day-of-month field, and 1st is a Saturday, the action triggers on Monday, 3rd, as the action does not jump to the previous month.

Notepad.png

Note: Do not use W to specify lists or range of values.

The L and W character combination specifies the last weekday of the month.

The # character specifies the weekday in the day-of-week field. Value before # character is the weekday. Value after # character is the week number in a given month. For example, 6#3 in the day-of-week field specifies third Friday of the month. If the week number exceeds the number of weeks in a given month, the Cron expression does not trigger, for example 4#6. Multiple # expressions are not allowed.

Notepad.png

Note: The legal characters and the names of months and days of the week are not case sensitive.

Example - 10 * 13 1,14 * ? *
Seconds = 10 (10 second)
Minutes = * (all)
Hours = 13 (1 pm)
Day of Month = 1,14 (First and fourteenth one-based)
Month = * (all)
Day of Week = ? (don't care)
Year (optional) = * (all)
Learn more: Quartz scheduler cron format
Class CronExpression