Statuspage maintenance alerts in Slack, logged to Sheets

Every weekday morning your team gets a Slack heads-up about planned maintenance starting in the next 24 hours, plus a running log in Google Sheets.

Deterministic Code
StatuspageSlack BotGoogle SheetsOperationsEngineeringNotifications & AlertsDaily Digests
PromptCreate

Every weekday at 8am, check Statuspage for maintenance windows that are about to start, so nobody on the team gets surprised by planned downtime. Run this on a cron trigger, weekdays only, at 8am in our local timezone.

First, pull the planned maintenance from Statuspage using both the "Get a list of scheduled incidents" and the "Get a list of upcoming incidents" operations for our page id. These list endpoints are offset paginated with page and limit, where limit maxes out at 100, and they return bare JSON arrays with no cursor, so advance page until an empty array comes back. Statuspage allows only 1 request per second and returns HTTP 420 when that is exceeded, so space the calls out and retry after a pause if a 420 comes back. Merge the results from both operations and dedupe by incident id, since the same maintenance can appear in both lists.

Scheduled maintenances share the incident resource with realtime incidents, and they use the statuses scheduled, in_progress, verifying and completed. Filter to the ones whose scheduled_for timestamp falls between now and 24 hours from now, and keep only those still in the scheduled status, so completed or already running windows do not get announced as upcoming. Sort what remains by start time, earliest first.

Format each remaining window as one entry showing its name, its start and end time converted from UTC into our local timezone in a readable format such as "Tue 12 Aug, 2:00pm to 4:00pm", and the names of the components it affects. Post that formatted list into our engineering channel using the Slack Bot "Send a Message" action, with a short header line saying how many maintenance windows are starting in the next 24 hours. If the filtered list is empty, skip the Slack post entirely rather than sending an empty message.

Then append one row per maintenance window to a Google Sheets log using the "Append Values" action, so we keep a running record of planned downtime for audit and reporting. Use these columns in order: date the alert ran, maintenance name, start time in local timezone, end time in local timezone, affected components as a comma separated list, status, and the incident id. When no windows match the filter there is nothing to record, so skip the append on those days too and let the workflow finish without writing anything.

Make the Statuspage page id, the Slack channel, the Google Sheets spreadsheet id and tab name, the local timezone, and the 24 hour lead time all easy to change at the top of the workflow, since teams often want a longer lead time for customer facing changes or a shorter one for a last call reminder.

What does this prompt do?

  • Checks your status page every weekday morning for planned maintenance windows.
  • Keeps only the windows starting within the next 24 hours, then posts them to your engineering Slack channel with the name, start and end time in your local timezone, and the services each one affects.
  • Adds one row per maintenance window to a Google Sheets log, so you keep a running record of planned downtime for audit and reporting.
  • Skips the Slack post entirely when nothing is starting, so nobody gets an empty message to scroll past.

What do I need to use this?

  • A Statuspage account and the status page you want to keep an eye on.
  • A Slack workspace, and the engineering channel where the heads-up should land.
  • A Google account with a spreadsheet to use as your planned downtime log.
  • The timezone your team works in, so start and end times read correctly.

How can I customize it?

  • Change the lead time. Twenty four hours is a sensible default, but widen it to a week for changes that affect customers, or narrow it to an hour so the message lands as a last call before work begins.
  • Change when and where it runs. Send it every day instead of weekdays only, run it twice a day for morning and evening coverage, or point it at a different channel for each team.
  • Add a section for maintenance that is already underway, so the message covers both what is starting soon and what is happening right now.

FAQs

What happens if no maintenance is scheduled?
Nothing is posted. The workflow only sends a Slack message when there is at least one maintenance window starting in the next 24 hours, so your channel stays quiet on normal days and people keep paying attention when a message does show up.
Are the times shown in my team's timezone?
Yes. Status pages record maintenance times in a standard format, and the workflow converts each start and end time into the local timezone you choose, so nobody has to do the math during a morning standup.
Will it tell us which services are affected?
Yes. Each maintenance window lists the components it touches, and those come through in the Slack message so the team can tell at a glance whether it hits something they depend on.
Why log everything to a spreadsheet as well as Slack?
Slack messages get buried within a day or two. The spreadsheet gives you a durable record of every planned downtime window, which is what you actually need when someone asks for a maintenance history during an audit or a quarterly review.
Can we send it somewhere other than an engineering channel?
Yes. Any channel the bot can post to works, and many teams route it to a customer support or operations channel too, since those are the people who field questions when something goes offline.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task

Stop getting blindsided by planned downtime.

Set this up once and your team gets a morning heads-up before every maintenance window, with an audit log that writes itself.