DevHelm CLI maintenance-windows commands — schedule, list, extend, and cancel alert-suppression windows
Schedule, extend, and cancel maintenance windows from the command line. Use these around deploys, migrations, and scheduled provider downtime so on-call doesn’t get paged for known-expected failures.Maintenance windows are an imperative state operation — they intentionally do not appear in devhelm.yml or the Terraform provider. Schedule them from your deploy script, an SDK, or an MCP-enabled agent.
devhelm maintenance-windows listdevhelm maintenance-windows list --status activedevhelm maintenance-windows list --status upcomingdevhelm maintenance-windows list --monitor <monitor-id>
Flag
Type
Description
--status
string
active (currently open) or upcoming (scheduled). Omit for both.
--monitor
UUID
Only windows attached to this monitor (org-wide windows excluded).
When the window opens. ISO 8601 with explicit timezone (UTC preferred).
--end
datetime
Yes
When the window closes. Must be strictly after --start.
--monitor
UUID list
—
Comma-separated monitor IDs. Omit for an org-wide window. Multiple IDs schedule one window per monitor (the API stores one monitor per window).
--reason
string
—
Human-readable description. Surfaces in the dashboard and audit log.
--repeat-rule
string
—
iCal RRULE for recurring windows (max 100 chars). Omit for one-time.
--no-suppress-alerts
boolean
—
Record the window for audit without silencing notifications. Default behaviour is to suppress.
Always quote ISO 8601 timestamps. Many shells treat the : characters as field separators in unquoted strings and will mangle the value before the CLI sees it.
The most common use is extending an in-flight window when a deploy runs longer than expected — call this with the new --end to keep alerts suppressed past the original deadline. Letting the window lapse and then opening a fresh one creates a notification gap.
The full create-deploy-cancel cycle, suitable for a deploy script:
set -euo pipefail# Open a 30-minute windowWINDOW=$(devhelm maintenance-windows create \ --start "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ --end "$(date -u -d '+30 minutes' +%Y-%m-%dT%H:%M:%SZ)" \ --reason "Deploy $(git rev-parse --short HEAD)" \ --monitor "$MONITOR_ID" \ -o json | jq -r '.id')# ... run your deploy ...# Close the window so alerting resumesdevhelm maintenance-windows cancel "$WINDOW" --yes
If the deploy fails partway, leave the window open so subsequent retries don’t page on-call — but make sure your script eventually cancels it (or reduce the --end budget) so it can’t accidentally suppress the next real outage.