

How to Send Google Calendar Event Notifications to Slack with Power Automate
Automatically post a Slack message whenever a new meeting is added to your shared Google Calendar.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams using Microsoft 365 who need calendar transparency without manually checking schedules.
Not ideal for
Teams that need instant notifications — Power Automate polls every 3 minutes at best.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person marketing team uses this to post new campaign planning meetings from their shared Google Calendar to #marketing-ops in Slack. Before automation, team members missed 30% of ad-hoc meetings because they relied on email invites that got buried. Now everyone sees new meetings within 3 minutes.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Event Title | ||
| Start Time | ||
| Status | ||
5 optional fields▸ show
| End Time | |
| Attendees | |
| Location | |
| Description | |
| Organizer |
Step-by-Step Setup
My flows > + New flow > Automated cloud flow
Create new automated flow
Go to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then the blue '+ New flow' button. Select 'Automated cloud flow' from the dropdown. This creates a flow that runs when triggered by an event.
- 1Click 'My flows' in the left navigation
- 2Click the blue '+ New flow' button
- 3Select 'Automated cloud flow'
- 4Name your flow 'Calendar to Slack Notifications'
Trigger > Search connectors > Google Calendar
Set up Google Calendar trigger
In the trigger selector, search for 'Google Calendar' and select it. Choose 'When an event is added' from the available triggers. This polls your calendar every few minutes for new events. You'll need to authenticate with Google if this is your first time connecting.
- 1Type 'Google Calendar' in the connector search box
- 2Click on 'Google Calendar' connector
- 3Select 'When an event is added' trigger
- 4Click 'Sign in' to authenticate with Google
Google Calendar trigger > Calendar dropdown
Select target calendar
After authentication, you'll see a dropdown with your available calendars. Select the shared team calendar you want to monitor. If you don't see your target calendar, check that you have edit permissions on it in Google Calendar. The flow will only detect events created after you enable it.
- 1Click the 'Calendar' dropdown
- 2Select your shared team calendar
- 3Leave other settings at default
- 4Click 'New step' button
New step > Search actions > Condition
Add condition to filter events
Click 'New step' and search for 'Condition' in the actions. This prevents notifications for declined events or cancelled meetings. Set the condition to check if the event status equals 'confirmed'. This avoids spam from tentative or cancelled events that might clutter your Slack channel.
- 1Click 'New step'
- 2Search for 'Condition' in actions
- 3Click 'Condition' control
- 4Set left side to 'Status' from dynamic content
- 5Set condition to 'is equal to'
- 6Type 'confirmed' on the right side
Condition > Yes branch > Add an action > Slack
Add Slack action in Yes branch
In the 'Yes' branch of the condition, click 'Add an action' and search for Slack. Select 'Post message' action. You'll need to authenticate with Slack if it's your first time. Choose the Slack workspace and channel where you want notifications to appear.
- 1Click 'Add an action' in the Yes branch
- 2Search for 'Slack' and select it
- 3Choose 'Post message' action
- 4Sign in to your Slack workspace
- 5Select the target channel from dropdown
Slack Post message > Message field > Dynamic content
Configure Slack message format
Click in the 'Message' field and build your notification using dynamic content from Google Calendar. Include the event title, start time, and attendees for context. Use the lightning bolt icon to insert dynamic fields like 'Subject', 'Start time', and 'Attendees' from the calendar trigger.
- 1Click in the 'Message' text box
- 2Type 'New meeting: '
- 3Click the lightning bolt for dynamic content
- 4Select 'Subject' from Google Calendar section
- 5Add line break and type 'When: '
- 6Insert 'Start time' from dynamic content
- 7Add 'Attendees: ' and insert 'Attendees' field
Message field > Start time > Expression tab
Format start time properly
The raw start time from Google Calendar includes timezone info and looks messy in Slack. Click on the 'Start time' dynamic content and wrap it in formatDateTime() expression. Use formatDateTime(triggerOutputs()?['body/start/dateTime'], 'MMM dd, yyyy h:mm tt') to get a clean format like 'Dec 15, 2023 2:30 PM'.
- 1Click on the Start time dynamic content in your message
- 2Click 'Expression' tab in dynamic content panel
- 3Type: formatDateTime(triggerOutputs()?['body/start/dateTime'], 'MMM dd, yyyy h:mm tt')
- 4Click OK to insert the expression
Message field > Add dynamic content > Location
Add location if available
Many meetings include location details that are useful for the team. Add a conditional section to include location only when it exists. Click below your current message content and add 'Location: ' followed by the 'Location' dynamic field. This prevents empty location lines for online meetings.
- 1Click after your attendees line in the message
- 2Press Enter for a new line
- 3Type 'Location: '
- 4Insert 'Location' from dynamic content
- 5Leave 'Message as user' unchecked
Top toolbar > Save
Save and test the flow
Click 'Save' in the top right to save your flow. Power Automate will validate all connections and expressions. Once saved, the flow activates automatically and starts monitoring your calendar. Test it by creating a new event in your selected Google Calendar.
- 1Click 'Save' button in top right
- 2Wait for validation to complete
- 3Go to your Google Calendar
- 4Create a test event in the monitored calendar
- 5Wait 3-5 minutes for the flow to trigger
My flows > Your flow name > Run history
Monitor flow runs
Go back to 'My flows' and click on your flow name to see the run history. Each run shows whether it succeeded, failed, or was skipped. Failed runs usually indicate permission issues with Google Calendar or Slack channel access. Click on individual runs to see detailed logs.
- 1Click 'My flows' in left navigation
- 2Click on your flow name
- 3Review the 'Run history' section
- 4Click on any failed runs to see error details
Use this expression in the Slack message field to create a cleaner attendee list that removes your own email and formats the remaining attendees nicely.
Copy this templatejoin(▸ Show code
join(
filter(
split(triggerOutputs()?['body/attendees'], ';'),... expand to see full code
join(
filter(
split(triggerOutputs()?['body/attendees'], ';'),
lambda('item',
and(
not(empty(item())),
not(contains(item(), '[email protected]'))
)
)
),
', '
)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
Use Power Automate for this if your team already lives in Microsoft 365 and wants calendar notifications without learning another platform. The Google Calendar connector works reliably and the Slack integration handles threading well. The built-in expression functions make time formatting straightforward. Skip Power Automate if you need instant notifications — Zapier's webhook-based trigger is faster.
Real math: Power Automate polls cost 1 operation per check plus 1 per event found. At 20 new meetings per week, you're looking at roughly 500 operations monthly. That fits comfortably in the free 750 operation limit. Zapier charges per event at this volume but responds instantly. Make costs more per operation but includes more in the free tier.
Zapier wins on speed — their Google Calendar trigger uses webhooks for instant notifications versus Power Automate's 3-minute polling delay. Make offers better message formatting with their built-in Slack threading functions. N8n gives you complete control over duplicate detection if team members create overlapping events. But Power Automate integrates cleanly with your existing Microsoft ecosystem and the authentication flows are simpler for enterprise users.
You'll hit timezone confusion first — Google sends UTC timestamps but your team expects local time. The formatDateTime expressions get complex fast when you add timezone conversion. Power Automate also treats event updates as new events sometimes, creating duplicate notifications. The attendee field returns raw email addresses, not display names, so your notifications look technical rather than friendly.
Ideas for what to build next
- →Add digest notifications — Create a second flow that sends daily summaries of upcoming meetings instead of individual notifications for each event.
- →Include meeting links — Extract Zoom or Teams links from event descriptions and include them in Slack notifications for one-click joining.
- →Set up cancellation alerts — Build a companion flow using 'When an event is deleted' trigger to notify the team when meetings are cancelled.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup