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

How to Send new event notifications with Pipedream

Automatically notify a Slack channel whenever someone adds a new meeting 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 need instant visibility when meetings get scheduled on shared calendars

Not ideal for

Teams who only need daily/weekly calendar summaries instead of real-time alerts

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 12-person marketing team uses this to notify #meetings whenever someone books a client call on their shared Google Calendar. Before automation, team members discovered conflicting meetings 10 minutes before they started. Now everyone sees new bookings within 30 seconds.

What Will This Cost?

Drag the slider to your expected monthly volume.

⚑1 op per trigger event β€” Each time this workflow runs counts as one operation toward your monthly limit.
/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 Pipedream

Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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.

Google account with access to the calendar you want to monitor
Slack workspace admin permissions or ability to install apps
Write access to the Google Calendar (read-only won't work for webhooks)
Permission to post messages in your target Slack channel

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Event Summary
Start Time
6 optional fieldsβ–Έ show
Event Creator
Attendee List
Meeting Location
Hangout Link
Event Description
End Time

Step-by-Step Setup

1

Workflows > New

Create new workflow

Log into pipedream.com and click the green 'New Workflow' button in the top right. You'll see the workflow builder with an empty trigger step. This is where you'll configure the Google Calendar webhook that fires when events are created.

  1. 1Click 'New Workflow' button
  2. 2Name your workflow 'Calendar to Slack notifications'
  3. 3Click 'Create Workflow'
βœ“ What you should see: You should see the workflow builder with an empty trigger step labeled 'Select a trigger'
2

Trigger > Select App > Google Calendar

Add Google Calendar trigger

Click on the trigger step and search for 'Google Calendar'. Select 'New Event (Instant)' trigger. This creates a webhook that Google Calendar will ping whenever someone adds a new event. The instant trigger is crucial for real-time notifications.

  1. 1Click the trigger step
  2. 2Search for 'Google Calendar'
  3. 3Select 'New Event (Instant)' trigger
  4. 4Click 'Save'
βœ“ What you should see: The trigger step now shows 'Google Calendar - New Event (Instant)' with configuration options below
⚠
Common mistake β€” Don't pick 'New or Updated Event' unless you want notifications for meeting changes too
Pipedream
+
click +
search apps
Google Calendar
GO
Google Calendar
Add Google Calendar trigger
Google Calendar
GO
module added
3

Trigger Configuration > Connect Account

Connect Google Calendar account

Click 'Connect Account' and sign in with Google. Grant calendar read permissions when prompted. Pipedream needs read access to detect new events and pull event details like title, time, and attendees.

  1. 1Click 'Connect Account'
  2. 2Sign in with your Google account
  3. 3Grant calendar permissions
  4. 4Click 'Allow'
βœ“ What you should see: You should see your Google account email with a green 'Connected' status
⚠
Common mistake β€” Use an account that has access to the calendar you want to monitor
Pipedream settings
Connection
Choose a connection…Add
click Add
Google Calendar
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
4

Trigger Configuration > Calendar ID

Select target calendar

Choose which calendar to monitor from the dropdown. You'll see all calendars your account can access, including shared team calendars. Pick the one where new meetings should trigger Slack notifications. The webhook will only fire for events on this specific calendar.

  1. 1Click the 'Calendar' dropdown
  2. 2Select your target calendar
  3. 3Leave other settings as default
  4. 4Click 'Save and Continue'
βœ“ What you should see: The calendar field shows your selected calendar name with a green checkmark
⚠
Common mistake β€” Shared calendars only appear if you have write access, not just read access
5

Trigger Configuration > Generate Test Event

Test the trigger

Click 'Generate Test Event' to create sample data for building your Slack step. If you prefer real data, create a test event in your Google Calendar instead. The trigger will capture event details like summary, start time, attendees, and meeting link.

  1. 1Click 'Generate Test Event'
  2. 2Review the sample event data
  3. 3Note the event fields available
  4. 4Click 'Continue'
βœ“ What you should see: You should see JSON data with event fields like summary, start.dateTime, attendees, and hangoutLink
Pipedream
β–Ά Deploy & test
executed
βœ“
Google Calendar
βœ“
Slack
Slack
πŸ”” notification
received
6

Steps > + > Slack

Add Slack action step

Click the '+' button below the trigger to add a new step. Search for Slack and select 'Send Message to Channel'. This action will post the event notification to your chosen Slack channel with formatted event details.

  1. 1Click the '+' button under the trigger
  2. 2Search for 'Slack'
  3. 3Select 'Send Message to Channel'
  4. 4Click 'Save'
βœ“ What you should see: A new step appears labeled 'Slack - Send Message to Channel' with configuration options
7

Slack Step > Connect Account

Connect Slack workspace

Click 'Connect Account' and authorize Pipedream to access your Slack workspace. You'll need permissions to post messages in channels. Choose the workspace where you want notifications sent during the OAuth flow.

  1. 1Click 'Connect Account'
  2. 2Select your Slack workspace
  3. 3Click 'Allow' to grant permissions
  4. 4Confirm the connection
βœ“ What you should see: Your Slack workspace name appears with a green 'Connected' badge
⚠
Common mistake β€” You must be a workspace admin or have app installation permissions
8

Slack Step > Channel > Text

Configure message settings

Select your target channel from the dropdown. All public channels and private channels you're in will appear. For the message text, click the data pill button to insert event fields. Use the summary field for the event title and start.dateTime for timing.

  1. 1Select target channel from dropdown
  2. 2Click in the 'Text' field
  3. 3Click the data pill icon
  4. 4Insert event summary and start time fields
βœ“ What you should see: The text field shows dynamic references like {{steps.trigger.event.summary}} and {{steps.trigger.event.start.dateTime}}
⚠
Common mistake β€” Map fields using the variable picker β€” don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
9

Slack Step > Text Field

Format the notification message

Craft a clear message template using event data. Include the event summary, start time, and any relevant attendee info. You can add custom text around the dynamic fields to make the notification more readable for your team.

  1. 1Type 'New meeting scheduled:'
  2. 2Add the event summary field
  3. 3Include start time with formatting
  4. 4Add attendee count or organizer info
βœ“ What you should see: Your message template shows a mix of static text and dynamic event fields
⚠
Common mistake β€” Start time comes in ISO format - you may want to format it in a code step
10

Workflow > Deploy > Test

Test the complete workflow

Click 'Deploy' then 'Test' to run the workflow with your sample data. Check your Slack channel to see if the notification appears correctly. The message should include the event details formatted as you configured. If it works, your webhook is ready for live events.

  1. 1Click 'Deploy' at the top
  2. 2Click 'Test' button
  3. 3Check your Slack channel
  4. 4Verify the message format
βœ“ What you should see: A test notification appears in your Slack channel with the sample event data formatted correctly
⚠
Common mistake β€” The webhook only activates after deployment - test events won't trigger it
11

Google Calendar > Create Event

Verify live webhook

Create a real event in your Google Calendar to test the live webhook. Within 30 seconds, you should see a notification in Slack. The webhook endpoint is now registered with Google Calendar and will fire for all new events on your selected calendar.

  1. 1Go to your Google Calendar
  2. 2Create a new test event
  3. 3Save the event
  4. 4Check Slack for the notification
βœ“ What you should see: Your Slack channel receives a real-time notification within 30 seconds of creating the calendar event
⚠
Common mistake β€” If no notification appears after 2 minutes, check the workflow execution log for errors

Add this Node.js code step between the trigger and Slack to format the start time in your timezone and create a cleaner notification message. Place it right after the Google Calendar trigger.

JavaScript β€” Code Stepexport default defineComponent({
β–Έ Show code
export default defineComponent({
  async run({ steps, $ }) {
    const event = steps.trigger.event;

... expand to see full code

export default defineComponent({
  async run({ steps, $ }) {
    const event = steps.trigger.event;
    
    // Format start time to readable format
    const startTime = new Date(event.start.dateTime || event.start.date);
    const formattedTime = startTime.toLocaleString('en-US', {
      weekday: 'short',
      month: 'short', 
      day: 'numeric',
      hour: 'numeric',
      minute: '2-digit',
      timeZone: 'America/Los_Angeles'
    });
    
    // Count attendees (excluding organizer)
    const attendeeCount = event.attendees ? 
      event.attendees.filter(a => a.email !== event.creator.email).length : 0;
    
    // Build formatted message
    let message = `πŸ“… **${event.summary}**\n`;
    message += `⏰ ${formattedTime}\n`;
    
    if (attendeeCount > 0) {
      message += `πŸ‘₯ ${attendeeCount} attendee${attendeeCount > 1 ? 's' : ''}\n`;
    }
    
    if (event.location) {
      message += `πŸ“ ${event.location}\n`;
    }
    
    if (event.hangoutLink) {
      message += `πŸ”— <${event.hangoutLink}|Join Meeting>`;
    }
    
    return {
      formatted_message: message,
      attendee_count: attendeeCount,
      formatted_time: formattedTime
    };
  },
});

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 Pipedream for this if you need instant webhook processing and want to customize the notification format with code. The Node.js code steps let you format timestamps, filter attendees, and build rich Slack messages that Zapier's formatter can't match. Skip Pipedream if you just want basic notifications without customization - Zapier handles simple calendar-to-Slack workflows for half the cost.

Cost

Running costs are 1 credit per event notification. At 200 calendar events per month, you'll spend $10/month on Pipedream's paid plan. Zapier costs $20/month for the same volume, while Make charges $9/month. n8n self-hosted is free but requires server management.

Tradeoffs

Zapier has better Google Calendar trigger reliability and doesn't require webhook renewal management. Make offers cheaper pricing and built-in date formatting functions. n8n provides more complex data manipulation options and unlimited executions. Power Automate integrates better if your team uses Microsoft 365. But Pipedream wins on webhook speed - notifications arrive 10-30 seconds faster than polling-based platforms.

You'll hit Google's webhook renewal requirement where connections expire every week and need refresh. Pipedream handles this automatically, but failures happen when your Google account permissions change. Also, all-day events return dates without times, breaking timestamp formatting code. Test with both timed and all-day events before going live.

Ideas for what to build next

  • β†’
    Add event filtering β€” Include a filter step to only notify for meetings with external attendees or specific keywords in the title.
  • β†’
    Create meeting reminders β€” Build a second workflow that sends Slack reminders 15 minutes before each meeting starts.
  • β†’
    Sync to other tools β€” Extend the workflow to create Asana tasks or Notion pages for important client meetings automatically.

Related guides

Was this guide helpful?
← Google Calendar + Slack overviewPipedream profile β†’