Manage Runners Logo
Manage Runners
Documentation menu

Schedules

Pause and resume runners automatically on a weekly timetable to save server costs.

A schedule resumes a runner at a start time and pauses it at a stop time, on the days of the week you choose. A runner that only runs during working hours, for example, costs Hetzner server time only then. Pausing runners outside working hours can save up to 50% of server costs.

Schedules need a Pro or Enterprise plan for the runner’s organization. See Billing and plans.

Schedules are managed with the manage-runners CLI or the API. The dashboard does not show them yet.

How a schedule works

A schedule has:

Setting Description
Time zone An IANA time zone, for example Europe/Berlin. Start and stop times are in this zone, including daylight saving time.
Start time When the runner is resumed, as HH:MM.
Stop time or duration When the runner is paused: a time later on the same day, or a duration of 1 to 1440 minutes.
Days One or more of Mon, Tue, Wed, Thu, Fri, Sat, Sun.
Enabled Whether the schedule is applied. A disabled schedule is kept but does nothing.

Each runner has at most one schedule. Manage Runners checks schedules every minute:

  • During the window, from the start time until the stop time, a paused runner is resumed.
  • At the stop time, an active runner is paused.

Manage Runners records each start and stop it has applied and never applies a recorded one again. A start is recorded when the runner is resumed, or is found already active, during the window. A stop is recorded only when Manage Runners pauses an active runner. In practice:

  • If you pause a runner by hand during its window after the start was applied, it stays paused until the next start.
  • If a runner is already paused at the stop time, that stop is not recorded. If you then resume it by hand before the next start, it is paused again within a minute.
  • If you pause a runner during its window before the start was applied, it is resumed within a minute.

To override a schedule reliably, for example to keep a runner running one evening, disable the schedule first and enable it again afterwards.

A stop time must be later than the start time on the same day, so a window given by start and stop times cannot cross midnight.

Example

Run on weekdays from 07:00 to 19:00 Berlin time:

manage-runners schedule set --runner-id 812999368881481087 \
  --zone-id Europe/Berlin --start 07:00 --stop 19:00 \
  --day Mon --day Tue --day Wed --day Thu --day Fri --enabled

Use --duration-minutes 720 instead of --stop 19:00 to give the window a length. See Schedules with the CLI for reading, disabling and deleting schedules.

What happens to a schedule

  • Deleting a runner deletes its schedule.
  • Resuming by schedule creates a new server, like resuming by hand. See Pause and resume.
  • Disabling keeps the settings, so you can enable the schedule again later.