From 19c8b9f3bb078d5e97aab22daf1ab304b85ee9f2 Mon Sep 17 00:00:00 2001 From: manel Date: Mon, 27 Jul 2026 22:06:17 +0200 Subject: [PATCH 1/6] docs: clarify maintenance uptime calculation --- communicate/status-pages/maintenance-windows.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/communicate/status-pages/maintenance-windows.mdx b/communicate/status-pages/maintenance-windows.mdx index 7efff4d0..d6764c00 100644 --- a/communicate/status-pages/maintenance-windows.mdx +++ b/communicate/status-pages/maintenance-windows.mdx @@ -106,4 +106,4 @@ Turn on **Don't open incidents** in the status page visibility settings. While t This option applies only to the services covered by the maintenance on the pages it is shown on. A service that also appears on another page, where it is not under maintenance, can still get an automatic incident there. -Maintenance periods are also excluded from your status page **uptime**, so planned maintenance does not count as downtime against your services. +Incident downtime that overlaps a published maintenance period is excluded from your status page **uptime**. If you turn off **Show affected services**, overlapping incident downtime still counts against uptime. From 778c1453a9d28358be533c5fdd21007b4b59ab6c Mon Sep 17 00:00:00 2001 From: manel Date: Thu, 30 Jul 2026 18:17:21 +0200 Subject: [PATCH 2/6] docs: document maintenance window timezones and daylight saving behavior --- communicate/maintenance-windows/overview.mdx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/communicate/maintenance-windows/overview.mdx b/communicate/maintenance-windows/overview.mdx index 1a65f263..81f4de6f 100644 --- a/communicate/maintenance-windows/overview.mdx +++ b/communicate/maintenance-windows/overview.mdx @@ -25,7 +25,9 @@ After giving your window an appropriate name, the core options you have are: ![Maintenance window schedule](/images/maintenance-schedule-3.png) -Set the **start** date and time, then choose how long the window **lasts** by entering a duration in hours and minutes. Quick-duration presets (30m, 1h, 4h, 24h) and a **Now** shortcut are available. **All times are in UTC**. The builder shows the equivalent time in your local timezone underneath as a reference. +Set the **start** date and time, then choose how long the window **lasts** by entering a duration in hours and minutes. Quick-duration presets (30m, 1h, 4h, 24h) and a **Now** shortcut are available. + +Pick the **timezone** your times are entered in. The builder shows the equivalent **UTC** time underneath as a reference. Existing windows created before timezones were introduced stay on UTC, and their schedules are unchanged. #### Setting repeats @@ -38,6 +40,21 @@ If your maintenance window repeats at a certain cadence, toggle the **repeat** o > If you schedule a window on the 31st and add a **monthly repeat cycle**, your schedule will also activate on > the 30th of the relevant months and the 28th or 29th of February depending on the leap year. +#### Timezones and daylight saving + +A repeating window keeps the **local time you entered**. A window set to 2:00 AM in `Europe/Paris` runs at 2:00 AM local all year. Checkly shifts the underlying UTC time by an hour when daylight saving starts and ends, so you never have to reschedule it. + +Because of that shift, a repeating window in a named timezone must be **at least one hour shorter than its repeat interval**. A daily window can last up to 23 hours. Without that gap, the occurrence before a clock change would overlap the one after it. + + +Changing the timezone on a **repeating** window moves its future occurrences to the new zone. On a **one-time** window the timezone is only a label, and the window still starts at the same moment. + + +Clock changes create two start times that need special handling: + +- When clocks jump **forward**, a start time that does not exist that day moves forward by the length of the gap. In a zone where 2:00 AM becomes 3:00 AM, a window set to 2:30 AM starts at 3:30 AM. +- When clocks fall **back**, a start time that happens twice runs at the **first** of the two. + ### Check behavior Each maintenance window lets you configure how checks behave during the maintenance period. Toggle the behaviors you need: From f8104c3b6b6fd4b95e1ebf83ae160a64c4435e01 Mon Sep 17 00:00:00 2001 From: manel Date: Mon, 3 Aug 2026 11:34:09 +0200 Subject: [PATCH 3/6] docs: document hiding affected services on status page maintenance --- communicate/status-pages/maintenance-windows.mdx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/communicate/status-pages/maintenance-windows.mdx b/communicate/status-pages/maintenance-windows.mdx index d6764c00..fa77a93a 100644 --- a/communicate/status-pages/maintenance-windows.mdx +++ b/communicate/status-pages/maintenance-windows.mdx @@ -34,6 +34,7 @@ In the **Status page visibility** section, turn on the toggle. This is the maste - **Show on**: select one or more status pages the maintenance should appear on. - **Services affected**: choose **All services on this page**, or pick **Specific services**. With "All services", services you add to the page later are automatically covered. +- **Show affected services**: on by default. Turn it off to publish the window without naming the services it covers. See [Hiding affected services](#hiding-affected-services). @@ -64,6 +65,16 @@ Once a window is visible, it appears on your status page in several places depen ![Public maintenance detail page showing the status, severity, affected services, and update timeline](/images/docs/images/status-pages/status-pages-maintenance-detail-1.png) +## Hiding affected services + +Sometimes you want to announce planned work without revealing which parts of your system it touches. Turn **Show affected services** off in the **Status page visibility** section to do that. The window still appears on your status page as a general event, with its name, schedule, severity, and updates. + +With the setting off: + +- The maintenance card and its detail page list no services, and no service on the page is marked as under maintenance. +- Subscriber notifications leave out the affected services. +- Incident downtime that overlaps the maintenance counts as regular downtime in your status page uptime. + ## Posting updates to your status page A maintenance moves through a [lifecycle of statuses](/communicate/maintenance-windows/overview#maintenance-lifecycle-and-updates) (Scheduled, In progress, Verifying, Completed, Cancelled) and carries a timeline of **updates**. On a status-page window, those statuses and updates are exactly what your visitors see, and each update can notify subscribers. @@ -106,4 +117,4 @@ Turn on **Don't open incidents** in the status page visibility settings. While t This option applies only to the services covered by the maintenance on the pages it is shown on. A service that also appears on another page, where it is not under maintenance, can still get an automatic incident there. -Incident downtime that overlaps a published maintenance period is excluded from your status page **uptime**. If you turn off **Show affected services**, overlapping incident downtime still counts against uptime. +Incident downtime that overlaps a published maintenance period is excluded from your status page **uptime**. Windows with [**Show affected services**](#hiding-affected-services) turned off are the exception: their overlapping downtime still counts. From 5492a4deb97e3d5711315365b0954f14742f8957 Mon Sep 17 00:00:00 2001 From: manel Date: Mon, 3 Aug 2026 13:00:42 +0200 Subject: [PATCH 4/6] docs: simplify the daylight saving and hidden-services wording --- communicate/maintenance-windows/overview.mdx | 8 +++----- communicate/status-pages/maintenance-windows.mdx | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/communicate/maintenance-windows/overview.mdx b/communicate/maintenance-windows/overview.mdx index 81f4de6f..6f1a3447 100644 --- a/communicate/maintenance-windows/overview.mdx +++ b/communicate/maintenance-windows/overview.mdx @@ -44,16 +44,14 @@ If your maintenance window repeats at a certain cadence, toggle the **repeat** o A repeating window keeps the **local time you entered**. A window set to 2:00 AM in `Europe/Paris` runs at 2:00 AM local all year. Checkly shifts the underlying UTC time by an hour when daylight saving starts and ends, so you never have to reschedule it. -Because of that shift, a repeating window in a named timezone must be **at least one hour shorter than its repeat interval**. A daily window can last up to 23 hours. Without that gap, the occurrence before a clock change would overlap the one after it. - Changing the timezone on a **repeating** window moves its future occurrences to the new zone. On a **one-time** window the timezone is only a label, and the window still starts at the same moment. -Clock changes create two start times that need special handling: +A clock change can skip over your start time or hit it twice. Either way the window still runs exactly once: -- When clocks jump **forward**, a start time that does not exist that day moves forward by the length of the gap. In a zone where 2:00 AM becomes 3:00 AM, a window set to 2:30 AM starts at 3:30 AM. -- When clocks fall **back**, a start time that happens twice runs at the **first** of the two. +- When clocks jump **forward**, an hour is skipped. A window scheduled inside the skipped hour shifts forward by the same amount: where 2:00 AM becomes 3:00 AM, a 2:30 AM window starts at 3:30 AM. +- When clocks fall **back**, an hour repeats. A window scheduled inside the repeated hour runs at the **first** of its two possible start times. ### Check behavior diff --git a/communicate/status-pages/maintenance-windows.mdx b/communicate/status-pages/maintenance-windows.mdx index fa77a93a..14321c23 100644 --- a/communicate/status-pages/maintenance-windows.mdx +++ b/communicate/status-pages/maintenance-windows.mdx @@ -67,7 +67,7 @@ Once a window is visible, it appears on your status page in several places depen ## Hiding affected services -Sometimes you want to announce planned work without revealing which parts of your system it touches. Turn **Show affected services** off in the **Status page visibility** section to do that. The window still appears on your status page as a general event, with its name, schedule, severity, and updates. +To announce planned work without revealing which parts of your system it touches, turn **Show affected services** off in the **Status page visibility** section. The window still appears on your status page as a general event, with its name, schedule, severity, and updates. With the setting off: From b53bbd979142386b2ce03c49857cfec725effc17 Mon Sep 17 00:00:00 2001 From: manel Date: Mon, 3 Aug 2026 13:22:07 +0200 Subject: [PATCH 5/6] docs: drop the timezone-change note, the builder already shows it --- communicate/maintenance-windows/overview.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/communicate/maintenance-windows/overview.mdx b/communicate/maintenance-windows/overview.mdx index 6f1a3447..cbcfd8f5 100644 --- a/communicate/maintenance-windows/overview.mdx +++ b/communicate/maintenance-windows/overview.mdx @@ -44,10 +44,6 @@ If your maintenance window repeats at a certain cadence, toggle the **repeat** o A repeating window keeps the **local time you entered**. A window set to 2:00 AM in `Europe/Paris` runs at 2:00 AM local all year. Checkly shifts the underlying UTC time by an hour when daylight saving starts and ends, so you never have to reschedule it. - -Changing the timezone on a **repeating** window moves its future occurrences to the new zone. On a **one-time** window the timezone is only a label, and the window still starts at the same moment. - - A clock change can skip over your start time or hit it twice. Either way the window still runs exactly once: - When clocks jump **forward**, an hour is skipped. A window scheduled inside the skipped hour shifts forward by the same amount: where 2:00 AM becomes 3:00 AM, a 2:30 AM window starts at 3:30 AM. From b9eaab8d6ba105379173dcb8c762e49f945c3a4e Mon Sep 17 00:00:00 2001 From: manel Date: Mon, 3 Aug 2026 14:21:00 +0200 Subject: [PATCH 6/6] docs: fix the daylight saving example and add a fall-back example --- communicate/maintenance-windows/overview.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/communicate/maintenance-windows/overview.mdx b/communicate/maintenance-windows/overview.mdx index cbcfd8f5..4bc26814 100644 --- a/communicate/maintenance-windows/overview.mdx +++ b/communicate/maintenance-windows/overview.mdx @@ -42,12 +42,12 @@ If your maintenance window repeats at a certain cadence, toggle the **repeat** o #### Timezones and daylight saving -A repeating window keeps the **local time you entered**. A window set to 2:00 AM in `Europe/Paris` runs at 2:00 AM local all year. Checkly shifts the underlying UTC time by an hour when daylight saving starts and ends, so you never have to reschedule it. +A repeating window keeps the **local time you entered**. A window set to 4:00 AM in `Europe/Paris` runs at 4:00 AM local all year. We shift the underlying UTC time by an hour when daylight saving starts and ends, so you never have to reschedule it. -A clock change can skip over your start time or hit it twice. Either way the window still runs exactly once: +A clock change adds or removes an hour from the day. If your window starts inside that hour, we resolve it like this: -- When clocks jump **forward**, an hour is skipped. A window scheduled inside the skipped hour shifts forward by the same amount: where 2:00 AM becomes 3:00 AM, a 2:30 AM window starts at 3:30 AM. -- When clocks fall **back**, an hour repeats. A window scheduled inside the repeated hour runs at the **first** of its two possible start times. +- When clocks jump **forward**, that hour disappears: where 2:00 AM becomes 3:00 AM, a 2:30 AM window starts at 3:30 AM. +- When clocks fall **back**, that hour happens twice: where 3:00 AM becomes 2:00 AM, a 2:30 AM window runs at the **first** 2:30 AM, not the second. ### Check behavior