Skip to content

Schedules

A schedule is a named, reusable cadence: a cron expression and a timezone bound to a human-readable name. Once created, a schedule can be attached to any recurring operation — backup config, sync apply, or run commands — so the work runs automatically without manual intervention.

The key idea is that the cadence is defined once and referenced by name everywhere it’s used. If you decide to shift your nightly window from 02:00 to 03:00, you update the schedule in one place and every operation that references it picks up the change.

Terminal window
ndcli schedule create --name nightly-maintenance --cron "0 3 * * *" --timezone America/New_York
FlagRequiredDescription
--nameYesUnique name within the organization
--cronYesStandard 5-field cron expression
--timezoneYesIANA timezone name (e.g., America/New_York, Europe/Berlin, UTC)

The cron expression uses the standard 5-field format: minute hour day-of-month month day-of-week. A few examples:

ExpressionMeaning
0 2 * * *Every day at 02:00
0 4 * * 1Every Monday at 04:00
0 0 1 * *First day of every month at midnight
0 3 * * 0,6Every Saturday and Sunday at 03:00

In NDWeb, the Schedules page has a form with the same fields and a live cron-expression preview so you can verify the schedule before saving.

Terminal window
ndcli schedule list
╭──────────────────────┬────────────────┬──────────────────┬─────────╮
│ Name │ Cron │ Timezone │ Enabled │
├──────────────────────┼────────────────┼──────────────────┼─────────┤
│ nightly-maintenance │ 0 3 * * * │ America/New_York │ Yes │
│ monday-reboot │ 0 4 * * 1 │ America/Chicago │ Yes │
│ monthly-audit │ 0 0 1 * * │ UTC │ No │
╰──────────────────────┴────────────────┴──────────────────┴─────────╯
Terminal window
ndcli schedule describe nightly-maintenance

Disabling a schedule pauses all recurring tasks that reference it — nothing runs until you re-enable it. This is useful for maintenance periods or when you want to temporarily stop automation without deleting the configuration.

Terminal window
ndcli schedule disable nightly-maintenance
ndcli schedule enable nightly-maintenance

In NDWeb, use the toggle on each schedule row.

Terminal window
ndcli schedule delete nightly-maintenance

A schedule can only be deleted if no recurring tasks reference it. Remove or reassign those tasks first (see Scheduled Tasks).

Schedules become useful when attached to commands. Pass --schedule <name> in place of (or in addition to) --at:

Terminal window
ndcli backup config set --schedule nightly-maintenance

The backup will run according to the schedule’s cron expression. See Backups for the full backup setup.

Terminal window
ndcli sync apply --ou branch-offices --schedule nightly-maintenance

This creates a recurring sync task. Every time the schedule fires, the filtered set of devices receives a sync. See Sync & Delivery for targeting options.

Terminal window
ndcli run restart --ou staging --schedule monday-reboot
ndcli run plugin-install --version 2.1.0 --org --schedule monthly-audit

Any ndcli run subcommand accepts --schedule. The operation runs against the target set defined at creation time — if you add devices to an OU after creating the recurring task, they are not automatically included. See Run Command for targeting details.

CommandDescription
ndcli schedule createCreate a new schedule
ndcli schedule listList all schedules in the organization
ndcli schedule describe <name>Show details for a single schedule
ndcli schedule enable <name>Enable a schedule
ndcli schedule disable <name>Disable a schedule (pauses all attached recurring tasks)
ndcli schedule delete <name>Delete a schedule (must have no attached tasks)

See also Scheduled Tasks for managing the recurring operations that use a schedule.