Skip to main content
POST
Create a cluster power schedule

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

cluster_id
string<uuid>
required

Body

application/json

The shared create/update body. Exactly one of run_at (schedule_kind once) or cron_expression (schedule_kind cron) applies. Updates are full replaces: enabled must be sent, stop_mode must be restated for a stop schedule, and timezone for a cron schedule.

action
enum<string>
required
Available options:
stop,
start
schedule_kind
enum<string>
required
Available options:
once,
cron
stop_mode
enum<string>
default:delete_resources

Stop schedules only: delete_resources (the full teardown), scale_to_zero (park only the workers) or pause (power off and keep the servers; k3s on Hetzner, UpCloud and DigitalOcean, and AWS and Scaleway).

Available options:
delete_resources,
scale_to_zero,
pause
preserve_state
boolean
default:true

A delete_resources stop captures the cluster's state first on the providers that support it.

run_at
string<date-time>

RFC 3339 timestamp in the future; required for schedule_kind once.

cron_expression
string

Standard 5-field cron expression (or an @-descriptor) without an embedded timezone; required for schedule_kind cron.

timezone
string
default:UTC

IANA timezone name.

enabled
boolean
default:true

Required on update.

accept_node_local_data_loss
boolean
default:false

The caller's written acceptance that an enabled scale_to_zero stop deletes the data persistent volume claims keep on a worker's own disk, at every stop. Required for such a stop on a cluster whose inventory shows node-local claims (GET .../power-schedules/node-local-storage answers consent_required); without it the write is refused with 409 naming the claims. Never implied.

Response

The cluster's schedule listing after the create.

schedules
object[]
required