Skip to content

[Feature Request] Scheduled Maintenance Windows for Status Pages #265

Description

@JoSoG89

Summary

Add the ability to schedule planned maintenance windows on status pages, showing upcoming and ongoing maintenance alongside the regular service status.

Use Case

When doing planned maintenance (server upgrades, DB migrations, network changes), operators need to inform users in advance and show the expected impact during the window. This is a standard feature in tools like UptimeKuma and Atlassian Statuspage.

Proposed Features

Backend / API

  • A MaintenanceWindow model (or extend StatusPageIncident with a type field):
    • title: short description (e.g., "Database upgrade")
    • message: detailed Markdown body explaining impact
    • startedAt / endedAt: scheduled start and end times
    • status: scheduled | active | completed
    • affectedMonitors: list of monitor IDs affected (show as "Under Maintenance" instead of "Down")
    • pageId: FK to MonitorStatusPage
  • CRUD API to create/list/update/delete maintenance windows
  • Auto-transition from scheduledactivecompleted based on time (or manual)

Frontend / UI

  • Admin panel: Monitor → Status Page → Edit → Maintenance tab
    • Create maintenance with title, description, start/end datetime picker, affected services picker
    • List of upcoming, active, and past maintenance
    • Ability to cancel or complete early
  • Status page display:
    • Upcoming: Show a banner like "🛠️ Scheduled maintenance on June 10, 2026 from 2:00 AM to 4:00 AM (UTC-7)"
    • Active: Show a prominent banner indicating ongoing maintenance, with affected services shown as "Under Maintenance" (yellow/blue badge instead of red/green)
    • Past: Show in an incident log as resolved/completed
  • Monitors affected by active maintenance should NOT trigger alerts/downtime notifications

Integration

  • Monitors under active maintenance should not count as downtime in uptime calculations
  • Alerts/notifications should be suppressed for monitors under maintenance

Why This Matters

This is critical for professional use cases (e.g., ERP systems, business SaaS) where planned maintenance needs to be communicated transparently to end users without triggering false alarms.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions