Cron expressions

A cron expression defines the schedule to trigger an action. It is a string comprised of 6 or 7 fields separated by white space. Fields can contain any of the allowed values, along with various combinations of special characters for that field.

Cron fields

The fields are as follows:

Field Name Mandatory Allowed Values Special Characters

Seconds

YES

0-59

, - * /

Minutes

YES

0-59

, - * /

Hours

YES

0-23

, - * /

Day of month

YES

1-31

, - * ? / L W

Month

YES

1-12 or JAN-DEC

, - * /

Day of week

YES

1-7 or SUN-SAT

, - * ? / L #

Year

NO

empty, 1970-2099

, - * /

Day of week in Semarchy xDM cron expressions have a value range of 1-7 or SUN-SAT, and not 0-6.

Special characters

The Special Characters available in cron expressions are listed below:

  • * : All values within a field. For example, * in the Minutes field means "every minute".

  • ? : No specific value. For example, to run the 12th of the month, ignoring the day of the week, put "12" in the Day of month, and "?"" in the Day of week.

  • - : Used to specify ranges. For example, "9-12" in the hour field means "the hours 9, 10, 11 and 12".

  • , : Used to specify additional values. For example, "MON,WED,FRI" in the Day of week means "Mondays, Wednesdays, and Fridays".

  • / : Used to specify increments. For example, "0/15" in the seconds field means "the seconds 0, 15, 30, and 45". "5/15" in the seconds field means "the seconds 5, 20, 35, and 50". "1/3" in the Day of month field means "every 3 days starting on the first day of the month".

  • L: Last has different meaning in each of the two fields in which it is allowed. For example:

    • Day of month: the last day of the month

    • Day of week: "L" means Saturday. When used after a number x, it means "the last x day of the month" - for example "6L" means "the last Friday of the month".

  • W: Used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "25W" as the value for the Day of month field, the meaning is: "the nearest weekday to the 25th of the month".

  • #: Used to specify "the nth" XXX day of the month. For example, the value of "6#3" in the Day of the week field means "the third Friday of the month".

Semarchy xDM uses the Quartz Scheduler for cron triggers. The full cron syntax for the cron expression is available here.

Examples

Expression Schedule

0 0 12 * * ?

12pm (noon) every day

0 25 10 ? * *

10:25am every day

0 25 10 * * ?

10:25am every day

0 25 10 * * ? *

10:25am every day

0 25 10 * * ? 2005

10:25am every day during the year 2005

0 * 14 * * ?

Every minute starting at 2pm and ending at 2:59pm, every day

0 0/5 14 * * ?

Every 5 minutes starting at 2pm and ending at 2:55pm, every day

0 0/5 14,18 * * ?

Every 5 minutes starting at 2pm and ending at 2:55pm, AND every 5 minutes starting 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

2:10pm and at 2:44pm every Wednesday in the month of March.

0 25 10 ? * MON-FRI

10:25am every Monday, Tuesday, Wednesday, Thursday and Friday

0 25 10 25 * ?

10:25am on the 25th day of every month

0 25 10 L * ?

10:25am on the last day of every month

0 25 10 L-2 * ?

10:25am on the 2nd-to-last last day of every month

0 25 10 ? * 6L

10:25am on the last Friday of every month

0 25 10 ? * 6L 2002-2005

10:25am on every last Friday of every month during the years 2002, 2003, 2004 and 2005

0 25 10 ? * 6#3

10:25am on the third Friday of every month

0 0 12 1/5 * ?

12pm (noon) every 5 days every month, starting on the first day of the month.

0 11 11 11 11 ?

Every November 11th at 11:11am.