@cindex cron
@anchor{CronExpr}
This is copy-pasted documentation from
@code{github.com/gorhill/cronexpr} library used there.

@multitable @columnfractions .2 .1 .2 .5
@headitem Field name @tab Mandatory? @tab Allowed values @tab Allowed special characters

@item Seconds      @tab No  @tab 0-59            @tab @verb{|* / , -|}
@item Minutes      @tab Yes @tab 0-59            @tab @verb{|* / , -|}
@item Hours        @tab Yes @tab 0-23            @tab @verb{|* / , -|}
@item Day of month @tab Yes @tab 1-31            @tab @verb{|* / , - L W|}
@item Month        @tab Yes @tab 1-12 or JAN-DEC @tab @verb{|* / , -|}
@item Day of week  @tab Yes @tab 0-6 or SUN-SAT  @tab @verb{|* / , - L #|}
@item Year         @tab No  @tab 1970-2099       @tab @verb{|* / , -|}

@end multitable

@table @asis

@item Asterisk (@verb{|*|})

The asterisk indicates that the cron expression matches for all values
of the field. E.g., using an asterisk in the 4th field (month) indicates
every month.

@item Slash (@verb{|/|})

Slashes describe increments of ranges. For example @verb{|3-59/15|} in
the minute field indicate the third minute of the hour and every 15
minutes thereafter. The form @verb{|*/...|} is equivalent to the form
"first-last/@dots{}", that is, an increment over the largest possible range
of the field.

@item Comma (@verb{|,|})

Commas are used to separate items of a list. For example, using
@verb{|MON,WED,FRI|} in the 5th field (day of week) means Mondays,
Wednesdays and Fridays.

@item Hyphen (@verb{|-|})

Hyphens define ranges. For example, 2000-2010 indicates every year
between 2000 and 2010 AD, inclusive.

@item L

@verb{|L|} stands for "last". When used in the day-of-week field, it
allows you to specify constructs such as "the last Friday" (@verb{|5L|})
of a given month. In the day-of-month field, it specifies the last day
of the month.

@item W

The @verb{|W|} character is allowed for the day-of-month field. This
character is used to specify the business day (Monday-Friday) nearest
the given day. As an example, if you were to specify @verb{|15W|} as the
value for the day-of-month field, the meaning is: "the nearest business
day to the 15th of the month."

So, if the 15th is a Saturday, the trigger fires on Friday the 14th. If
the 15th is a Sunday, the trigger fires on Monday the 16th. If the 15th
is a Tuesday, then it fires on Tuesday the 15th. However if you specify
@verb{|1W|} as the value for day-of-month, and the 1st is a Saturday,
the trigger fires on Monday the 3rd, as it does not 'jump' over the
boundary of a month's days.

The @verb{|W|} character can be specified only when the day-of-month is
a single day, not a range or list of days.

The @verb{|W|} character can also be combined with @verb{|L|}, i.e.
@verb{|LW|} to mean "the last business day of the month."

@item Hash (@verb{|#|})

@verb{|#|} is allowed for the day-of-week field, and must be followed by
a number between one and five. It allows you to specify constructs such
as "the second Friday" of a given month.

@end table

Predefined cron expressions:

@multitable @columnfractions .1 .75 .15
@headitem Entry @tab Description @tab Equivalent to
@item @verb{|@annually|} @tab
    Run once a year at midnight in the morning of January 1 @tab
    @verb{|0 0 0 1 1 * *|}
@item @verb{|@yearly|} @tab
    Run once a year at midnight in the morning of January 1 @tab
    @verb{|0 0 0 1 1 * *|}
@item @verb{|@monthly|} @tab
    Run once a month at midnight in the morning of the first of the month @tab
    @verb{|0 0 0 1 * * *|}
@item @verb{|@weekly|} @tab
    Run once a week at midnight in the morning of Sunday @tab
    @verb{|0 0 0 * * 0 *|}
@item @verb{|@daily|} @tab
    Run once a day at midnight @tab
    @verb{|0 0 0 * * * *|}
@item @verb{|@hourly|} @tab
    Run once an hour at the beginning of the hour @tab
    @verb{|0 0 * * * * *|}
@end multitable

@itemize
@item
If only six fields are present, a @verb{|0|} second field is prepended,
that is, @verb{|* * * * * 2013|} internally become
@verb{|0 * * * * * 2013|}.
@item
If only five fields are present, a @verb{|0|} second field is prepended
and a wildcard year field is appended, that is, @verb{|* * * * Mon|}
internally become @verb{|0 * * * * Mon *|}.
@item
Domain for day-of-week field is [0-7] instead of [0-6], 7 being Sunday
(like 0). This to comply with @url{https://linux.die.net/man/5/crontab}.
@end itemize
