Daily
Get a reminder the day before you're on call
The afternoon before a shift, you get a note saying when your on-call starts and ends.
- Runs
- Daily
- Apps
- PagerDuty
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every day at 4pm, check PagerDuty and email me if I'm on call tomorrow, with the schedule name and the start and end times.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Being on call usually starts at a handoff time, and people forget. A schedule gets set weeks ahead, someone swaps a shift on Friday, and on Monday at nine the pager goes off while the engineer is on a plane or at a child's recital with their laptop at home. The missed page then escalates to the next person, and the incident gets slower to acknowledge.
Each day, PagerDuty is asked whether your user is on call tomorrow. If there is a shift on the schedule the day ahead, you get an email stating that you are about to be on call. If there is none, nothing is sent, so the message is a signal rather than a daily chore to read past.
It helps rotation members who also work other projects, contractors with irregular schedules and anyone whose swaps are agreed in a hurry.
What you get out of it
A reminder the day before
A shift that starts tomorrow gives time to charge the laptop, check VPN access and rearrange evening plans. One day is long enough to prepare and short enough that nobody forgets again.
Swaps are picked up automatically
The reminder reads the live on-call schedule, so a shift you agreed to take on Friday still triggers a reminder on Sunday. People trust the notice because it reflects the schedule as it stands.
Fewer missed first pages
Most missed pages come from not realizing the shift began. Being told the day before cuts those slips, which keeps acknowledgment times down and spares the next person on the policy an unnecessary escalation.
No message on days off
Because email is only sent when a shift exists, you are not trained to ignore a daily note. The one you do receive is meaningful, and it stays visible in your inbox.
Better work-life planning
Knowing about a week of on-call duty ahead of time lets you decline a weekend trip or ask for a swap early. Someone can cover your shift calmly rather than scrambling at the last minute.
How it works
What happens, step by step
Every afternoon ClickRuntime checks PagerDuty to see whether you are on call tomorrow.
If you are, you get an email with the schedule name and when your shift starts and ends.
If you aren't, nothing is sent.
Before it runs live
- Connect PagerDuty
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other PagerDuty steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify
PD = "https://api.pagerduty.com"
def pd(path, **params):
resp = http.get(f"{PD}{path}", params=params, headers={"Authorization": f"Token token={credentials.secret('PAGERDUTY_API_KEY')}",
"Accept": "application/json"})
resp.raise_for_status()
return resp.json()
MY_USER_ID = "PABC123"
@on_trigger
def run(event):
tomorrow = date.today() + timedelta(days=1)
shifts = pd("/oncalls", **{"user_ids[]": MY_USER_ID, "since": f"{tomorrow}T00:00:00Z", "until": f"{tomorrow}T23:59:59Z"})["oncalls"]
shifts = [s for s in shifts if s.get("schedule")]
if not shifts:
return {"on_call": False}
lines = [f"{s['schedule']['summary']}: {s['start']} to {s['end']}" for s in shifts]
notify.email_me("You're on call tomorrow", "\n".join(lines))
return {"on_call": True}FAQ
Common questions
Does it remind me about every on-call shift or only the first day?
Can I get reminders for the whole team?
Which PagerDuty access does it need?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a weekly incident report by service
Every Monday you see how many incidents each service had last week and how long they took to resolve on average.
See how it worksGet a morning list of incidents open over a day
Every morning you see the incidents still triggered or acknowledged after 24 hours, oldest first.
See how it worksGet an email when a PagerDuty incident changes
When an incident is triggered, acknowledged or resolved, you get the update with its service and urgency.
See how it worksKeep exploring
Set up “Get a reminder the day before you're on call” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.