Intermediate~15 min setupProductivity & CommunicationVerified April 2026
Google Calendar logo
Slack logo

How to Send Meeting Notes Reminders with Power Automate

Automatically DMs the meeting organizer in Slack 15 minutes after their Google Calendar meeting ends to remind them to share notes.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Microsoft 365 teams who already use Power Automate and want meeting accountability without switching platforms

Not ideal for

Teams needing real-time triggers or complex meeting analysis beyond basic organizer reminders

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A 25-person marketing agency runs this every 5 minutes to catch meetings that ended 15 minutes ago. Before automation, meeting notes sat in people's heads for days and project details got lost. Now organizers get pinged immediately after calls wrap up, and 80% share notes within an hour.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Power Automate

Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Microsoft 365 account with Power Automate license (included in most business plans)
Google Calendar access with read permissions for the calendars you want to monitor
Slack workspace admin approval to install the Power Automate app connector
Users must exist in both Microsoft tenant and Slack workspace with matching display names
Google Calendar API enabled in your Google Workspace (usually on by default)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Meeting Subject
Organizer Email
End Time
Display Name
Slack User ID
1 optional field▸ show
Meeting Location

Step-by-Step Setup

1

My flows > + New flow > Scheduled cloud flow

Create scheduled cloud flow

Go to make.powerautomate.com and click My flows in the left sidebar. Click + New flow, then Scheduled cloud flow. Name it 'Meeting Notes Reminder' and set it to run every 5 minutes. This frequency ensures you catch meetings within 20 minutes of ending.

  1. 1Click My flows in the left sidebar
  2. 2Click + New flow button
  3. 3Select Scheduled cloud flow
  4. 4Name: 'Meeting Notes Reminder'
  5. 5Set repeat every 5 minutes
What you should see: You should see the flow designer with a Recurrence trigger set to 5-minute intervals.
Common mistake — Don't set this to run every minute or you'll hit API limits quickly with Google Calendar.
2

Flow designer > + New step > Google Calendar > Get events (V3)

Add Google Calendar connector

Click + New step and search for 'Google Calendar'. Select 'Get events (V3)' action. This gives you more control over time filtering than the basic Get events action. You'll need to authenticate with a Google account that has access to the calendars you want to monitor.

  1. 1Click + New step
  2. 2Type 'Google Calendar' in the search box
  3. 3Select 'Get events (V3)' action
  4. 4Sign in to your Google account
  5. 5Allow Power Automate permissions
What you should see: The Google Calendar action appears with authentication completed and calendar dropdown populated.
Common mistake — Use Get events (V3) not the regular Get events - V3 has better time filtering options.
3

Google Calendar action > Parameters

Configure calendar time filter

Set Calendar Id to your primary calendar or specific team calendar. For Time Min, use this expression: addMinutes(utcNow(), -20). For Time Max, use: addMinutes(utcNow(), -15). This looks for events that ended between 15-20 minutes ago, giving you a 5-minute window each run.

  1. 1Select your calendar from Calendar Id dropdown
  2. 2Click Time Min field and switch to Expression tab
  3. 3Enter: addMinutes(utcNow(), -20)
  4. 4Click Time Max field and enter: addMinutes(utcNow(), -15)
  5. 5Set Max Results to 50
What you should see: Time filters show the expressions and calendar is selected. Test run should return recent meetings.
Common mistake — The 20-minute lookback prevents missing meetings if the flow runs slightly late.
Google Calendar
GO
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Slack
SL
notified
4

Flow designer > + New step > Control > Condition

Add condition to check for organizer

Click + New step and add a Condition control. This filters out meetings where the authenticated user isn't the organizer. Set the condition to check if the Organizer Email from Google Calendar equals your email address. This prevents sending reminders for meetings you didn't organize.

  1. 1Click + New step
  2. 2Search for 'Condition' and select it
  3. 3Click first value box
  4. 4Select 'Organizer Email' from dynamic content
  5. 5Set operator to 'is equal to'
  6. 6Enter your email in the second value box
What you should see: Condition box shows organizer email comparison with your email address.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
5

Condition > Yes branch > Apply to each

Add apply to each loop

In the Yes branch of the condition, add an Apply to each control. Select 'value' from the Google Calendar dynamic content. This handles multiple meetings that might have ended in your 5-minute window. Each meeting will get its own reminder.

  1. 1Click Add an action in the Yes branch
  2. 2Search for 'Apply to each'
  3. 3Select Apply to each control
  4. 4Click the select output box
  5. 5Choose 'value' from Google Calendar dynamic content
What you should see: Apply to each loop appears inside the Yes condition branch.
Common mistake — Make sure to select 'value' not individual fields, or the loop won't work correctly.
6

Apply to each > Add an action > Microsoft Graph > Get user profile (V1)

Get meeting organizer details

Inside the Apply to each loop, add a Microsoft Graph action called 'Get user profile (V1)'. Set the User ID or Principal Name to the Organizer Email from the current item. This gets the organizer's display name and other details needed for the Slack message.

  1. 1Click Add an action inside the Apply to each
  2. 2Search for 'Microsoft Graph'
  3. 3Select 'Get user profile (V1)'
  4. 4Set User ID to 'Organizer Email' from dynamic content
  5. 5Leave other fields at defaults
What you should see: Graph action shows with organizer email mapped to User ID field.
Common mistake — This only works for users in your Microsoft tenant. External organizers will cause this step to fail.
7

Apply to each > Add an action > Slack > Get user info

Add Slack user lookup

Add a Slack action called 'Get user info'. Set the User field to the Display Name from the Graph action. This finds the Slack user ID needed for direct messaging. Slack needs the internal user ID, not the display name, for DMs.

  1. 1Click Add an action after the Graph step
  2. 2Search for 'Slack' and authenticate if needed
  3. 3Select 'Get user info' action
  4. 4Set User field to 'Display Name' from Graph
  5. 5Leave other parameters empty
What you should see: Slack action shows connected with Display Name mapped to User field.
Common mistake — Users must have matching display names between Microsoft and Slack, or lookups will fail.
8

Apply to each > Add an action > Slack > Post message

Send direct message reminder

Add the 'Post message' Slack action. Set Channel to the User ID from the previous step. Create a message mentioning the meeting subject and asking for notes. Include the meeting subject and end time in your message for context.

  1. 1Add Slack 'Post message' action
  2. 2Set Channel to 'User ID' from Get user info
  3. 3Set Message to include meeting Subject from Google Calendar
  4. 4Add text like 'Please share notes from your meeting:'
  5. 5Include End Time for reference
What you should see: Slack message action shows with channel and message content configured.
Common mistake — Test with yourself first - wrong user lookups will send DMs to random people.
message template
🔔 New Record: {{summary}} {{description}}
start.dateTime: {{start.dateTime}}
end.dateTime: {{end.dateTime}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
9

Condition > Yes branch > Parallel branch > Compose

Add error handling

Go back to the main flow and add a parallel branch to the Yes condition. Add a 'Compose' action to log failed meetings. This catches cases where the Graph lookup or Slack user lookup fails, so you know which meetings didn't get reminders.

  1. 1Click the + icon next to Apply to each
  2. 2Select 'Add a parallel branch'
  3. 3Add a Compose action
  4. 4Set inputs to meeting Subject and Organizer Email
  5. 5Name it 'Failed Meeting Log'
What you should see: Parallel branch shows with Compose action for error logging.
10

Flow designer > Test > I'll perform the trigger action

Test and activate flow

Click Save, then Test in the top menu. Choose 'I'll perform the trigger action' and run the test. Check that it finds recent meetings and sends test messages. Once verified, turn on the flow and it will run every 5 minutes automatically.

  1. 1Click Save in the top right
  2. 2Click Test button
  3. 3Select 'I'll perform the trigger action'
  4. 4Click Test & Continue
  5. 5Wait for test results
  6. 6Turn flow On if successful
What you should see: Test shows green checkmarks for each step and you receive a Slack DM if you organized recent meetings.
Common mistake — Run a few manual tests before activating - you don't want to spam your team with buggy reminders.

Add this expression in the Slack message text field to make reminders more personal and include the exact time delay for accountability.

Copy this templateconcat(
▸ Show code
concat(
  'Hi ', 
  outputs('Get_user_profile_(V1)')?['body/displayName'], 

... expand to see full code

concat(
  'Hi ', 
  outputs('Get_user_profile_(V1)')?['body/displayName'], 
  '! Your meeting "', 
  items('Apply_to_each')?['summary'], 
  '" ended ', 
  div(sub(ticks(utcNow()), ticks(items('Apply_to_each')?['end/dateTime'])), 600000000), 
  ' minutes ago. Please share the notes when you get a chance! 📝'
)
Power Automate
▶ Test flow
executed
Google Calendar
Slack
Slack
🔔 notification
received

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use Microsoft Power Automate for this if your team already lives in the Microsoft ecosystem and you want meeting accountability without adding another tool. The Google Calendar connector handles complex time filtering well, and the Microsoft Graph integration makes user lookups reliable within your tenant. Skip Power Automate if you need real-time triggers - Make handles webhook-based notifications much better.

Cost

Real math: Each flow run processes maybe 5 meetings and uses about 8 actions per meeting (Calendar + Graph + Slack + controls). At 288 runs per day (every 5 minutes), you'll burn through 1,440 actions daily even with zero meetings. Add 10 meetings per day and you're at 2,240 actions daily. That's 67,000 actions monthly, well within the 40,000 action Premium plan at $15/month. Zapier would cost $50/month for the same volume.

Tradeoffs

Make handles this workflow better with real webhook triggers instead of polling every 5 minutes, and n8n gives you more flexibility with custom time calculations and user matching logic. Zapier's Google Calendar integration is more limited for time-based filtering. Pipedream excels at complex user lookup logic across different systems. But Power Automate wins if you're already paying for Microsoft 365 and want something that works reliably with your existing user directory.

You'll hit three main issues after setup: duplicate reminders when meetings appear in multiple flow runs (add meeting ID tracking), failed user lookups when display names don't match between systems (switch to email-based matching), and timeout errors on busy days with 20+ meetings in the time window (reduce the batch size or run more frequently). The Google Calendar API also has quirky behavior with all-day events and timezone handling that can throw off your time filters.

Ideas for what to build next

  • Add meeting notes templateSend a structured template with the reminder so organizers know what information to include in their notes.
  • Create digest versionBuild a weekly summary flow that lists all meetings from the past week that never got follow-up notes shared.
  • Connect to OneNoteAutomatically create a OneNote page for each meeting and include the link in your Slack reminder message.

Related guides

Was this guide helpful?
Google Calendar + Slack overviewPower Automate profile →