Pre-Meeting Agenda Injector
Fifteen minutes before a meeting starts, it writes a full HTML agenda directly into the Outlook invite.
Use case
Meetings start with five minutes of 'so, where did we leave off?'. This flow removes that entirely: open tasks and the previous meeting's history are composed into an agenda and injected into the calendar event body, so every attendee opens the invite and sees exactly what matters.
Who uses it
Meeting chairs, project managers and delivery teams with recurring syncs.
Real scenario
At 09:45 the flow fires for the 10:00 project sync. It reads six open Planner tasks and last week's decisions from SharePoint, builds an HTML table, and updates the event body. Attendees joining at 10:00 already have the agenda in front of them.
Time saved
Before
~30 min manual prep per meeting
After
0 min — the agenda writes itself
Time saved
~30 min per meeting
How it works
An Outlook 'When an upcoming event is starting soon' trigger fires 15 minutes ahead. Get items pulls open tasks and the latest MeetingHistory record from SharePoint, an Apply to each builds HTML rows into a string variable, Compose assembles the final agenda, and Update event (V4) writes it into the invite body.
Step-by-step build
- 1
Create a Scheduled/Automated cloud flow with the Office 365 Outlook trigger 'When an upcoming event is starting soon (V3)'. Set Look-ahead time to 15 minutes and choose the calendar.
- 2
Add Variables → Initialize variable 'AgendaRows', type String, empty value. Keep it at top level, directly after the trigger.
- 3
Add SharePoint → Get items on the OpenTasks list with a Filter Query of Status ne 'Completed' and Top Count 20.
- 4
Add SharePoint → Get items on MeetingHistory, Order By MeetingDate desc, Top Count 1, to retrieve the previous meeting context.
- 5
Add Apply to each over the OpenTasks value, and inside it Append to string variable 'AgendaRows' with an HTML <tr> containing Title, Owner and DueDate.
- 6
After the loop add Data Operation → Compose named 'AgendaHTML' that wraps AgendaRows in a styled <table>, preceded by an <h3> with the meeting subject and a recap paragraph from MeetingHistory.
- 7
Add Office 365 Outlook → Update event (V4). Pass the trigger event Id, keep Subject, Start and End identical to the trigger values, set Body to the AgendaHTML output and Body content type to HTML.
- 8
Test with a real calendar event 20 minutes in the future and check the invite body updates without duplicating the event.
Copilot prompt
Paste this into Power Automate Copilot to scaffold the flow.
Create an automated cloud flow that triggers 15 minutes before an upcoming Outlook event starts. Initialize a string variable AgendaRows, get open items from the SharePoint list 'OpenTasks' where Status is not Completed, get the most recent item from 'MeetingHistory', append an HTML table row per task to AgendaRows, compose a styled HTML agenda, and update the Outlook event with Update event V4 setting the body to that HTML.
Screenshots
Captures are added as each step is published.
Official documentation
Explore more flows
Meeting History Extractor
Captures the meeting transcript and stores it in SharePoint as the shared memory every other flow reads.
View module LiveTask Extraction from Transcript
Turns pipe-delimited transcript lines into assigned Planner tasks with real Azure AD owners.
View module LiveDaily Activity Log Email
Every weekday at 18:20 Rome time it logs the day's Planner activity and drafts the team lead's summary email.
View module LiveWeekly Status Report
Builds done / overdue / in-progress tables, posts them to Teams and archives a CSV in SharePoint.
View module LiveDeadline Urgency Monitor
A daily 08:00 Teams digest that colour-codes every approaching deadline — and stays silent at weekends.
View module LiveColumn Name Monitor
Hourly SharePoint schema watchdog that catches renamed columns before they silently break every flow.
View module