1. Documentation
  2. Manage Status Page
  3. Maintenance
ReadmeGitHub
  • Introduction
  • Quickstart
  • CLI
  • Configuration
  • Identity
  • Branding
  • Themes
  • Monitors
  • Checks and scheduling
  • Metrics and badges
  • Incidents
  • Maintenance
  • Notifications
  • Subscribers
  • React Router
  • Next.js
  • Astro
  • SQLite
  • Cloudflare D1
  • PostgreSQL
  • Schema and migrations
  • Cloudflare
  • Vercel
  • Self-hosting
  • API overview
  • Status endpoints
  • Incident endpoints
  • Maintenance endpoints
  • Subscriber endpoints
  • Badges, feeds and metrics
  • Admin endpoints
  • The check run
  • Uptime and history
  • Automatic incidents
  • Notification delivery
  • Public subscriptions

Maintenance

Schedule maintenance windows, suppress alerts and publish upcoming work.

Schedule a maintenance window before planned work so visitors know when to expect disruption. While the window is in progress, checks still run, but alerts and automatic incident updates for affected monitors are suppressed. Maintenance windows are enabled by default.

heyo-status.config.ts
maintenance: { enabled: true },

Setting maintenance.enabled: false makes /maintenance and /admin/maintenance/* return 404. Windows no longer suppress alerts, and the snapshot contains no upcoming or in-progress maintenance.

Window fields and states

A window can be scheduled, in progress or completed. Its status follows the clock rather than a separate job you have to run.

ts
interface Maintenance {  id: string;  title: string;  description: string;  affectedMonitors: string[];  scheduledStart: Date;  scheduledEnd: Date;  status: "scheduled" | "in-progress" | "completed";  createdAt: Date;}

The status is derived from the clock: reading upcoming windows refreshes scheduled → in-progress → completed against the current time. scheduledEnd must be after scheduledStart.

Schedule a window

Create a window locally with the CLI, which talks directly to the database, or use the admin API. HTTP management requires adminToken in the config; load it from a private secret source.

heyo-status maintenance create --title "Database upgrade" --description "Read-only for about 30 minutes." --monitors "API,Dashboard" --start 2026-02-01T02:00:00Z --end 2026-02-01T03:00:00Zheyo-status maintenance list

What happens to alerts

While a window is in-progress, the monitors it names are excluded from monitor.down, monitor.recovered and ssl.expiring events, as well as automatic incident creation and reconciliation. They are still checked and results are stored, so uptime history shows what actually happened. An empty affectedMonitors array suppresses alerts for every monitor.

Completed windows are not published

The snapshot and GET /maintenance include only scheduled and in-progress windows; completed ones are omitted.

Related

  • Incidents
  • Maintenance endpoints
  • CLI commands
Incidents< PreviousNotificationsNext >

Powered by heyo

On this page

Window fields and statesSchedule a windowWhat happens to alerts