Skip to main content

Cron Expressions

This topic describes the supported cron expressions that you can use to schedule automatic application update checks and automatic backups in the KOTS Admin Console.

For more information, see Configuring Automatic Updates and Schedule Automatic Backups in Creating and Scheduling Backups.

Syntax

<minute> <hour> <day-of-month> <month> <day-of-week>

Fields

The following table lists the required cron fields and supported values:

Required FieldAllowed ValuesAllowed Special Characters
Minute0 through 59, - *
Hour0 through 23, - *
Day-of-month1 through 31, - * ? L W
Month1 through 12 or JAN through DEC, - *
Day-of-week1 through 7 or SUN through SAT, - * ? L

Special Characters

The following table describes the supported special characters:

Special CharacterDescription
Comma (,)Specifies a list or multiple values, which can be consecutive or not. For example, 1,2,4 in the Day-of-week field signifies every Monday, Tuesday, and Thursday.
Dash (-)Specifies a contiguous range. For example, 4-6 in the Month field signifies April through June.
Asterisk (*)Specifies that all of the values for the field are used. For example, using * in the Month field means that all of the months are included in the schedule.
Question mark (?) Specifies that one or another value can be used. For example, enter 5 for Day-of-the-month and ? for Day-of-the-week to check for updates on the 5th day of the month, regardless of which day of the week it is.
LSpecifies the last day of the month or week respectively for the Day-of-month or Day-of-week fields.
WSpecifies the "N-th" occurrence or given day in the month. For example, the second Friday of the month is specified as 6#2.

Predefined Schedules

You can use one of the following predefined schedule values instead of a cron expression:

Schedule ValueDescriptionEquivalent Cron Expression
@yearly (or @annually)Runs once a year, at midnight on January 1.0 0 1 1 *
@monthlyRuns once a month, at midnight on the first of the month.0 0 1 * *
@weeklyRun once a week, at midnight on Saturday.0 0 * * 0
@daily (or @midnight)Runs once a day, at midnight.0 0 * * *
@hourlyRuns once an hour, at the beginning of the hour.0 * * * *
@never

Disables the schedule completely. Only used by KOTS.

This value can be useful when you are calling the API directly or are editing the KOTS configuration manually.

0 * * * *
@default

Selects the default schedule option (every 4 hours). Begins when the Admin Console starts up.

This value can be useful when you are calling the API directly or are editing the KOTS configuration manually.

0 * * * *

Intervals

You can also schedule the job to operate at fixed intervals, starting at the time the job is added or when cron is run:

@every DURATION

Replace DURATION with a string that is accepted by time.ParseDuration, with the exception of seconds. Seconds are not supported by KOTS. For more information about duration strings, see time.ParseDuration in the Go Time documentation.

As with standard cron expressions, the interval does not include the job runtime. For example, if a job is scheduled to run every 10 minutes, and the job takes 4 minutes to run, there are 6 minutes of idle time between each run.

Examples

The following examples show valid cron expressions to schedule checking for updates:

  • At 11:30 AM every day:

    30 11 * * *
  • At 6:00 PM on the fourth Monday of every month:

    0 18 ? * 2#4
  • At midnight on the last day of every month:

    0 0 L * ?
  • After 1 hour and 45 minutes, and then every interval following that:

    @every 1h45m