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.
