On a schedule
Get today's Outlook meetings by email
Each weekday morning you see every meeting for the day, with times, in one email.
- Runs
- On a schedule
- Apps
- Outlook Calendar
- AI
- Not needed
- Access
- read (Calendars.Read)
Send this to your assistant
Create a ClickRuntime automation: every weekday at 7am, email me today's meetings from my Outlook calendar with start time, title and location.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A consultant moves between client sites and video calls, and Outlook's day view is awkward on a phone: tiny blocks, truncated titles, and no sense of where she needs to be and when. She arrives at a call with the wrong dial-in because the invite she needed was buried under three others. On busy days, a missed first meeting sets off the problems that follow all day.
Each morning at a time you choose, your Outlook calendar for the day is read, and the meetings are formatted as a plain list: start time, end time, title, location or online meeting link, and who else is invited. The digest goes to you by email or to Slack, so it is the first thing you read.
It's handy for people who live in their inbox or in Slack and glance at the calendar only when it is almost too late.
What you get out of it
No more missed first meetings
A clear list with times at the top of your inbox makes it hard to forget the early call, or to be unaware that it moved to a different time. Even people who check their calendar often find that a single clear message is more reliable.
Links are at your fingertips
The video call link or room number is in the digest next to the time, so you do not dig through invites to find the right one. That saves precious minutes right before a call starts, when you are often hurrying.
Starting the day with context
Reading five lines about your day gives you a feel for how busy it will be and what to prepare. It sets expectations before the first call. Reading it takes less than a minute, yet it shapes how you plan your first hours.
Great on a phone
A plain text list is readable on a small screen, in a way that a crowded calendar grid is not. You can read it on the train, in the car park or in the lift.
Attendees are visible at a glance
Seeing who else is invited tells you whether a meeting is a quick one-to-one or a large group, and helps you decide how much to prepare. That helps when you decide which calls need preparation and which are simply routine check-ins.
How it works
What happens, step by step
Each weekday morning, ClickRuntime reads today's events from your Outlook calendar.
It lists them in time order with where each takes place.
You get one email with your day at a glance, like "14:00 Acme quarterly review @ Room 4B".
Before it runs live
- Connect Outlook Calendar
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 Outlook Calendar steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta
from clickruntime import on_trigger, credentials, http, notify
TZ = "Europe/London"
@on_trigger
def run(event):
start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
resp = http.get("https://graph.microsoft.com/v1.0/me/calendarView", params={
"startDateTime": start.isoformat(), "endDateTime": (start + timedelta(days=1)).isoformat(),
"$orderby": "start/dateTime", "$select": "subject,start,location", "$top": 100},
headers={"Authorization": f"Bearer {credentials.connection('microsoft', 'work')}",
"Prefer": f'outlook.timezone="{TZ}"'})
resp.raise_for_status()
events = resp.json()["value"]
lines = [f"{e['start']['dateTime'][11:16]} {e['subject']}"
+ (f" @ {e['location']['displayName']}" if e["location"].get("displayName") else "") for e in events]
notify.email_me(f"{len(events)} meetings today", "\n".join(lines) or "No meetings today.")
return {"meetings": len(events)}FAQ
Common questions
Does it include all-day events?
What if I have several calendars in Outlook?
Can it send the digest to Slack instead of email?
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 look-ahead of this week's Outlook events
One message each morning groups what's on today, tomorrow and later this week, so nothing sneaks up on you.
See how it worksGet a weekly summary of your Outlook calendar
Each Monday you see how many hours of meetings you have, which days are packed and where your free blocks are.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Get today's Outlook meetings by email” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.