Back to blog
Operations

Maintenance Windows Done Right: Planned Downtime Without the Alert Avalanche

Maintenance window configuration with a scheduled time range and paused alerting across several client monitors

A maintenance window is a scheduled time range in which your monitoring deliberately pauses alerting for selected monitors, so a deploy, a server restart, or a migration never triggers an alert avalanche and lands cleanly in your status history as maintenance instead of an outage. The difference from a blunt mute: the rest of your portfolio stays armed, the planned downtime never touches your uptime percentage or the SLA report your client sees, and nobody gets paged at 3 a.m. by your own maintenance.

Why planned maintenance needs its own tool

Planned maintenance is not an outage, yet naive monitoring treats it like one. The moment you deploy, migrate, or restart a server, the service drops offline for a beat, the check fails, and alerting fires: email, SMS, Slack, maybe a call up the escalation chain. The problem isn't the single alert. It's the pattern. Take alerts for every planned maintenance and you go numb, and eventually you miss the real outage. That's alert fatigue, and it costs you response time exactly when it matters.

The obvious workaround, muting the affected account or monitor for a bit, is worse than the problem. Manual muting means remembering to switch it back on. Forget that, and the monitor runs blind, so a genuine outage after the maintenance goes unnoticed. A maintenance window solves both sides: it pauses alerting only for the scheduled range and only for the intended targets, and it re-arms itself when the window ends.

What a maintenance window actually does

While a maintenance window is active, every covered monitor is treated as in maintenance. Two things happen at once: no alert fires, and if the customer has a status page, the service shows there as Maintenance rather than Degraded or Down. The checks keep running in the background, so you lose no data points, but they don't trigger escalation and don't drag down your availability percentage.

That's the decisive difference from muting. Muting only suppresses the notification; the failure still lands in the history as downtime. A maintenance window reclassifies the event: the same failed check counts as maintenance, not as an outage. The client who reviews their report at month end sees no mysterious dip in uptime, just a cleanly labelled, planned maintenance that you communicated up front.

How to set a maintenance window the right way

A maintenance window needs three things: a name, a start time, and an end time. The end time must be after the start time. On top of that comes at least one target, meaning the monitors the window should cover. Optionally you add a description that travels with the history, something like "Planned database schema migration."

The golden rule: set the window generously around the actual work. Build in a buffer for the run-up and for verification afterwards. A deploy you schedule for 30 minutes is better off with a 60-minute window, so an overrunning rollback doesn't fire an alert after all. And name it so that your future self, scanning the history, instantly understands what happened here.

The four ways to cover monitors

Uptimeify offers four mutually exclusive targeting modes, though multi-monitor and tag selection can be combined. Which one you pick depends on the scope of the work.

ModeWhen to use it
Single monitorA targeted change to exactly one service, like a single SSL swap.
Several monitorsA fixed list of related monitors on the same customer, like a website plus its ping check.
Entire customerA blanket window over all of a customer's monitors, for example during a host migration.
Dynamic by tagEvery monitor carrying a given tag, including ones tagged later. Ideal for "all production systems."

The tag approach is the strongest lever when you work at portfolio scale. A tag window is evaluated live on every incoming check result: the monitoring worker resolves the monitor's current tags and then decides which windows apply. Tag a new monitor after the window is created and it falls under coverage automatically, without editing the window at all. Remove the tag and it drops right back out.

Set recurring maintenance once

Plenty of maintenance follows a rhythm: the deploy every Monday night, the host's own maintenance slot on the first Sunday of the month. For those cases you configure a window as recurring instead of recreating it every week. You choose the frequency (daily, weekly, or monthly), an interval (every Nth period), and depending on the frequency either fixed days of the week or a day of the month. Optionally the recurrence stops on a fixed end date, for instance when a migration project has a deadline.

Maintenance windows in practice: three common scenarios

Where a window earns its keep shows up most clearly in concrete workflows. Three patterns that recur constantly in agency and MSP work:

For the nightly deploy you set a recurring weekly window over the affected website plus its response-time check. The deploy runs, the brief spike counts as maintenance, your on-call sleeps through it. For a customer's server migration you use customer mode and cover all of their monitors in one move, instead of grabbing each one individually. And for a coordinated infrastructure freeze across several customers, say during a data-center move, you set a tag window over every monitor tagged "Production," so even the systems your team spins up and tags mid-freeze are covered.

In all three cases the maintenance downtime stays cleanly separated from real incidents. Your uptime percentage keeps reflecting actual reliability, not your maintenance calendar.

The conversion angle: maintenance as proof of trust

For an agency, a maintenance window is more than an ops detail. It's part of the story you tell your client. A status page that labels planned maintenance clearly as such, instead of showing an unexplained dip, signals control. The client sees it: this isn't just reacting, this is planned, announced, and executed under control. That's the difference between "our site was down" and "our provider ran scheduled maintenance last night."

That closes the loop with two other building blocks. Maintenance windows are the planned complement to smart alerting, which on the unplanned side makes sure only real outages fire an alert. And they're what makes your status pages credible: a status display that distinguishes maintenance from outage is one your client trusts. Log planned downtime as an outage and you throw away exactly that proof of trust.

Frequently asked questions

Florian Zaskoku
Written by
Florian Zaskoku · Co-Founder

Co-Founder of Uptimeify, responsible for all of marketing. He bridges technical development and marketing strategy: from Java, PHP and Shopware plugins to steering digital growth strategies. A certified UX Manager (IHK) and digital-marketing advisor to three non-profit organizations.

More from the blog

A monitoring alert routed simultaneously to Slack, Microsoft Teams, and a webhook
Guides

Setting Up Monitoring Alerts in Slack, Teams & via Webhook

Setup per channel: Slack, Microsoft Teams, webhook, plus the webhook payload structure (JSON) for your own pipelines. With examples.

Florian Zaskoku11 min read
An escalation chain where an unacknowledged alert automatically moves to the next responsible person
Guides

Setting Up Escalation Policies & On-Call Routing for Small Teams

Escalation chains without PagerDuty complexity: how small agencies without a 24/7 NOC set up reliable on-call routing, step by step.

Florian Zaskoku11 min read
Overview of HTTP 5xx error codes 500, 502, 503 and 504 with cause and meaning
Guides

HTTP Error Codes Explained: 500, 502, 503, 504 and What They Mean for Your Clients

An error reference for the key HTTP 5xx codes: cause, fix, and how monitoring reports the error before your client calls.

Florian Zaskoku11 min read

Plan maintenance without burning your status history

Set windows over one monitor, one customer, or a whole tag, pause alerting, and keep every SLA report clean. All under your brand, hosted in the EU.