

How to Send Google Calendar Event Notifications to Slack with N8n
Automatically post new calendar events to a Slack channel when they're added to your 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 that want customizable calendar notifications and don't need instant delivery.
Not ideal for
Teams needing real-time notifications or those uncomfortable with polling delays.
Sync type
pollingUse case type
notificationReal-World Example
A 12-person marketing agency uses this to notify #team-schedule whenever someone books client meetings in their shared Google Calendar. Before automation, the team lead manually announced meeting changes in daily standups, causing scheduling conflicts when people booked overlapping prep time. Now everyone sees new meetings within 5 minutes and can block related time immediately.
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 n8n
Copy the pre-built n8n blueprint and paste it straight into n8n. 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 | summary | |
| Start Time | start.dateTime | |
| Event ID | id | |
4 optional fieldsβΈ show
| Event Link | htmlLink |
| Description | description |
| Attendees | attendees |
| Location | location |
Step-by-Step Setup
Workflows > + New > Blank Workflow
Create New Workflow
Start a blank workflow in N8n to connect Google Calendar to Slack. This sets up the foundation for your event notification system.
- 1Click the '+ New' button in the top left corner
- 2Select 'Blank Workflow' from the options
- 3Name your workflow 'Calendar to Slack Notifications'
Canvas > + > Google Calendar > Trigger
Add Google Calendar Trigger
Set up the trigger node to monitor your Google Calendar for new events. This will fire whenever someone adds an event to the shared calendar.
- 1Click the '+' button next to the Start node
- 2Search for 'Google Calendar' in the node list
- 3Select 'Google Calendar Trigger' from the results
- 4Choose 'Event Created' as the trigger type
Node Settings > Credentials > Create New
Connect Google Account
Authenticate with your Google account to give N8n read access to calendar events. Use an account that has access to the shared team calendar.
- 1Click 'Create New' next to the Credential field
- 2Select 'Google Calendar OAuth2 API' from the dropdown
- 3Click 'Sign in with Google' and complete OAuth flow
- 4Select the calendar you want to monitor from the Calendar dropdown
Google Calendar Trigger > Options
Configure Polling Settings
Set how often N8n checks for new calendar events. More frequent polling catches events faster but uses more executions.
- 1Expand the 'Options' section in the trigger node
- 2Set 'Poll Times' to 'Every 5 Minutes'
- 3Enable 'Download Attachments' if you need file access
- 4Leave other options at default values
Toolbar > Execute Workflow
Test Calendar Trigger
Run a test to verify N8n can read events from your calendar. This ensures the connection works before building the Slack integration.
- 1Click 'Execute Workflow' in the top toolbar
- 2Wait 10-15 seconds for the test to complete
- 3Check that the Google Calendar node shows a green success indicator
- 4Review the output data to see event fields
Canvas > + > Slack > Send Message
Add Slack Node
Connect a Slack node to send messages to your team channel. This will receive the calendar event data and format it for Slack.
- 1Click the '+' button after the Google Calendar node
- 2Search for 'Slack' and select it
- 3Choose 'Send Message' as the operation
- 4Set Resource to 'Message'
Slack Node > Credentials > Create New
Authenticate Slack Connection
Connect your Slack workspace to allow N8n to post messages. You'll need admin permissions or pre-approval for bot integration.
- 1Click 'Create New' next to Credential
- 2Select 'Slack OAuth2 API' credential type
- 3Click 'Connect my account' and authorize in Slack
- 4Verify the connection shows your workspace name
Slack Node > Channel and Text Configuration
Configure Slack Message
Set up the message format and target channel for calendar notifications. This determines how event details appear in Slack.
- 1Select your target channel from the Channel dropdown
- 2Click in the Text field and choose 'Expression' mode
- 3Enter message template using calendar event fields
- 4Enable 'Send as User' if you want personal attribution
Slack Node > Text Field > Expression Editor
Map Event Data Fields
Build the actual message content using calendar event data. This step formats event details into readable Slack notifications.
- 1Use this expression for the message text: `New event: {{$json.summary}} on {{$json.start.dateTime | date('MMM d, h:mm a')}} - {{$json.htmlLink}}`
- 2Add event description with: `{{$json.description || 'No description'}}`
- 3Include attendee count: `{{$json.attendees ? $json.attendees.length : 0}} attendees`
Toolbar > Execute Workflow
Test Complete Workflow
Run the full workflow to verify calendar events trigger Slack notifications correctly. This validates the entire automation before activation.
- 1Click 'Execute Workflow' to test end-to-end
- 2Check that both nodes show green success status
- 3Verify the test message appeared in your Slack channel
- 4Review message formatting and content accuracy
Toolbar > Active Toggle > Save
Activate Workflow
Turn on the workflow to start monitoring calendar events continuously. Once active, it will check every 5 minutes and send notifications automatically.
- 1Click the toggle switch in the top right to 'Active'
- 2Verify the status changes from 'Inactive' to 'Active'
- 3Check that polling schedule shows next execution time
- 4Save the workflow with Ctrl+S or the Save button
Drop this into an n8n Code node.
Copy this template{{ new Date($json.start.dateTime || $json.start.date).toLocaleString('en-US', { timeZone: 'America/New_York', weekday: 'short', month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) }}βΈ Show code
{{ new Date($json.start.dateTime || $json.start.date).toLocaleString('en-US', { timeZone: 'America/New_York', weekday: 'short', month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) }}... expand to see full code
{{ new Date($json.start.dateTime || $json.start.date).toLocaleString('en-US', { timeZone: 'America/New_York', weekday: 'short', month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) }}Scaling Beyond 50+ events/day+ Records
If your volume exceeds 50+ events/day records, apply these adjustments.
Switch to Webhook Triggers
Google Calendar supports push notifications via webhooks if your N8n instance has a public URL. This eliminates polling overhead and delivers instant notifications, reducing monthly executions by 90%.
Add Event Filtering
Use N8n's IF node to filter events before sending to Slack. Skip events with certain keywords, specific attendee counts, or recurring meeting patterns to reduce notification noise and execution usage.
Implement Rate Limiting
Add a delay node between calendar trigger and Slack message during bulk imports. Google Calendar API allows 1,000 requests/100 seconds β rapid event creation can hit this limit and fail silently.
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 N8n for this if you want full control over message formatting and don't mind managing your own instance. The expression engine lets you build complex message templates with conditional logic β much more flexible than Zapier's fixed field mapping. You can also add filtering logic to skip certain event types or attendee counts. Skip N8n if you need instant notifications β polling delays mean 2-5 minute lag times, while Make's webhook triggers fire immediately.
This workflow burns roughly 300 executions per day with 5-minute polling (288 for polling + ~12 for actual events). At 9,000 executions monthly, you'll need N8n's Starter plan at $20/month after the 5,000 execution free tier. Zapier charges $30/month for their Professional plan to handle the same volume. Make's free tier covers 1,000 operations monthly β this workflow would cost $10/month on their Core plan. N8n wins on price if you're already running an instance for other workflows.
Make handles this use case better with real webhook triggers from Google Calendar β no polling delays and zero wasted executions. Their Google Calendar integration also parses recurring events more reliably than N8n's current implementation. Zapier's pre-built message templates look cleaner out of the box without expression writing. But N8n gives you unlimited customization once you learn the expression syntax β you can add timezone conversion, attendee filtering, or conditional formatting that the other platforms can't match without complex multi-step workflows.
Google Calendar's API has quirks you'll discover after setup. All-day events return dates in 'YYYY-MM-DD' format while timed events use full ISO timestamps β your message templates need to handle both. Recurring events sometimes trigger notifications for each occurrence during the initial sync, flooding your Slack channel. The polling trigger occasionally misses events created and deleted between poll cycles, especially during bulk imports. Set up error handling to catch malformed calendar data β some third-party calendar integrations create events with missing required fields that break the Slack formatting.
Ideas for what to build next
- βAdd Meeting Reminder Notifications β Set up a second workflow with a scheduled trigger to send Slack reminders 15 minutes before events start, pulling from the same Google Calendar.
- βCreate Event Summary Reports β Build a weekly digest that counts events by type or attendee and posts a summary to Slack every Friday, helping track team meeting load.
- βIntegrate with Time Tracking β Connect calendar events to time tracking tools like Toggl or Harvest to automatically start timers when meetings begin, using event start times as triggers.
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