Skip to content

Scheduling

Backups can run on a fixed schedule using a standard cron expression, or triggered manually from the web UI at any time.

Setting a schedule

Go to Schedule in the navigation bar (or the Schedule step of the setup wizard).

Enter a five-field cron expression or pick a preset:

Preset Expression Description
Daily 02:00 0 2 * * * Every night at 02:00 UTC
Weekly Sun 03:00 0 3 * * 0 Sunday nights
Monthly 1st 04:00 0 4 1 * * First day of each month
Every 6 hours 0 */6 * * * Four runs per day

Check Enable automatic scheduling and click Save schedule. The next run time is shown immediately.

All times are UTC

The scheduler runs in UTC. If you are in a UTC+2 timezone and want a 02:00 local run, use 0 0 * * *.

Cron expression reference

┌───────── minute  (0–59)
│ ┌─────── hour    (0–23)
│ │ ┌───── day     (1–31)
│ │ │ ┌─── month   (1–12)
│ │ │ │ ┌─ weekday (0–6, Sun=0)
│ │ │ │ │
0 2 * * *

Special characters: * any, , list, - range, / step.

Use crontab.guru to check an expression before saving.

Triggering a manual run

Click Run now on either the Schedule page or the Progress page. The backup starts immediately in a background thread and you are redirected to the Progress view to watch it live.

Info

A manual run does not interfere with the cron schedule. If a scheduled run is due while a manual run is still in progress, the scheduled run will be skipped (misfire grace period: 5 minutes).

Disabling the schedule

On the Schedule page, uncheck Enable automatic scheduling and click Save schedule. The schedule configuration is preserved so you can re-enable it later without retyping the expression.

Click Remove to delete the schedule entirely.

Schedule persistence

The schedule is stored in DATA_ROOT/schedule.json and reloaded automatically when the server starts. Restarting Docker or the process does not lose the schedule.