

How to Send Meeting Reminders with Pipedream
Automatically send Slack messages 15 minutes before Google Calendar events with meeting details and attendee lists.
Steps and UI details are based on platform versions at time of writing ā check each platform for the latest interface.
Best for
Teams that miss meetings because they're buried in other work and need proactive Slack nudges.
Not ideal for
Teams already using Google Calendar desktop notifications or Slack's built-in calendar integration.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person marketing agency runs this workflow to ping their #general channel 15 minutes before client calls. Before automation, 30% of meetings started 5+ minutes late because team members were deep in creative work and missed calendar alerts. Now meeting punctuality improved to 95%.
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 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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Meeting Title | ||
| Start Time | ||
4 optional fieldsāø show
| Meeting Link | |
| Attendee List | |
| Meeting Duration | |
| Location |
Step-by-Step Setup
Pipedream Dashboard > New > Workflow
Create new workflow in Pipedream
Log into pipedream.com and click the green New button in the top nav. Select Workflow from the dropdown menu. You'll land on the workflow builder with an empty canvas. Name your workflow 'Meeting Reminders' in the top left field.
- 1Click the green New button
- 2Select Workflow from dropdown
- 3Type 'Meeting Reminders' in the workflow name field
- 4Click Create workflow
Workflow Canvas > Trigger > Schedule
Add scheduled trigger
Click the trigger step (first gray box) to configure when this runs. Select Schedule from the trigger options. Set it to run every 1 minute - this gives you the precision needed to catch events exactly 15 minutes before they start.
- 1Click the gray trigger box
- 2Select Schedule from the list
- 3Choose 'Cron scheduler' option
- 4Enter '* * * * *' for every minute
- 5Click Save
Workflow Canvas > + > Google Calendar > List Events
Connect Google Calendar
Click the + button below the trigger to add a new step. Search for and select Google Calendar. Choose 'List Events' as the action - this pulls upcoming events to check timing. You'll be prompted to connect your Google account with calendar read permissions.
- 1Click the + button under the trigger
- 2Search for 'Google Calendar'
- 3Select 'List Events' action
- 4Click 'Connect Account'
- 5Authorize calendar access in the popup
Google Calendar Step > Configuration
Configure calendar query parameters
Set the calendar step to fetch events starting in the next 16-20 minutes. In the timeMin field, use the expression 'new Date(Date.now() + 15*60*1000).toISOString()' for 15 minutes from now. Set timeMax to 20 minutes out to catch events in your reminder window.
- 1Select your primary calendar from the Calendar ID dropdown
- 2Set timeMin to '{{new Date(Date.now() + 15*60*1000).toISOString()}}'
- 3Set timeMax to '{{new Date(Date.now() + 20*60*1000).toISOString()}}'
- 4Set maxResults to 10
- 5Enable singleEvents to expand recurring meetings
Workflow Canvas > + > Code > Node.js
Add filter step for upcoming events
Click + to add a Node.js code step that filters for events needing reminders. This step checks if any events were returned from the calendar query and processes only those starting in exactly 15 minutes. Without this filter, you'd send reminders constantly.
- 1Click + under the Google Calendar step
- 2Select Code > Node.js
- 3Name the step 'Filter Upcoming Events'
- 4Paste the filtering code in the editor
- 5Click Save
Workflow Canvas > + > Slack > Send Message to Channel
Add Slack connection
Add another step and select Slack from the apps list. Choose 'Send Message to Channel' as the action. Connect your Slack workspace by clicking the authentication button. You'll need permissions to post messages to your target channel.
- 1Click + to add a new step
- 2Search for and select Slack
- 3Choose 'Send Message to Channel'
- 4Click 'Connect Account'
- 5Authorize your Slack workspace access
Slack Step > Message Configuration
Configure Slack message format
Select your target channel from the dropdown (like #general or #meetings). In the message text field, reference the event data from the Google Calendar step. Format it with the event title, start time, meeting link if available, and attendee list for maximum usefulness.
- 1Select your target channel from the Channel dropdown
- 2Set message text with event details
- 3Reference {{steps.google_calendar.events[0].summary}} for meeting title
- 4Add {{steps.google_calendar.events[0].hangoutLink}} for video link
- 5Include attendee list from the events array
Workflow Canvas > Test
Test the complete workflow
Click the Test button in the top right to run your workflow manually. Check that it correctly identifies upcoming events and sends properly formatted Slack messages. Look for any errors in the execution log and verify the Slack message appears in your channel.
- 1Click the green Test button
- 2Watch each step execute in sequence
- 3Check the execution log for errors
- 4Verify the Slack message was sent
- 5Confirm message formatting looks correct
Workflow Canvas > Deploy
Deploy workflow to production
Once testing looks good, click the Deploy button to activate the scheduled workflow. Pipedream will now run this every minute, checking for upcoming meetings and sending reminders as needed. Monitor the execution history for the first few hours to catch any issues.
- 1Click the Deploy button in the top right
- 2Confirm deployment in the popup
- 3Check the status changes to 'Active'
- 4Monitor the Executions tab for first few runs
- 5Watch for any failed executions
This Node.js code goes in the filter step between Google Calendar and Slack. It checks for events starting in exactly 15 minutes and formats attendee data properly.
JavaScript ā Code Stepexport default defineComponent({āø Show code
export default defineComponent({
async run({ steps, $ }) {
const events = steps.google_calendar?.events || [];... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const events = steps.google_calendar?.events || [];
if (events.length === 0) {
$.flow.exit('No events found');
return;
}
const now = new Date();
const reminderTime = new Date(now.getTime() + 15 * 60 * 1000);
const targetWindow = 2 * 60 * 1000; // 2 minute window
const upcomingEvents = events.filter(event => {
const eventStart = new Date(event.start.dateTime || event.start.date);
const timeDiff = Math.abs(eventStart.getTime() - reminderTime.getTime());
return timeDiff <= targetWindow;
});
if (upcomingEvents.length === 0) {
$.flow.exit('No events in reminder window');
return;
}
const event = upcomingEvents[0];
const attendeeList = event.attendees
? event.attendees.map(a => a.email).join(', ')
: 'No attendees listed';
const startTime = new Date(event.start.dateTime || event.start.date)
.toLocaleTimeString('en-US', {
hour: 'numeric',
minute: '2-digit',
hour12: true
});
return {
event: event,
formattedTime: startTime,
attendees: attendeeList,
hasVideoLink: !!event.hangoutLink
};
}
});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 Pipedream for this if you need precise timing control and custom formatting logic that basic automation tools can't handle. The every-minute scheduling gives you exact 15-minute warning timing, and Node.js code steps let you build complex filters for meeting types and attendee formatting. Skip Pipedream if you just need basic calendar notifications - Slack's native Google Calendar integration handles simple reminders without any setup.
This workflow costs about 1 credit per execution. Running every minute burns 43,800 credits monthly, or roughly $4.38 on Pipedream's paid plans. That's significantly more expensive than Zapier ($20/month unlimited) or Make ($9/month for 10,000 operations) for this high-frequency use case. The credit consumption comes from the scheduled trigger running constantly, not the actual meeting volume.
Make handles scheduled triggers more efficiently with 15-minute intervals that don't burn through quotas as fast. Zapier's Schedule trigger works similarly but caps at 15-minute frequencies on lower plans. N8n gives you the same Node.js flexibility as Pipedream but with unlimited local execution. Power Automate's recurrence triggers are clunky for sub-15-minute timing. Pipedream wins on webhook speed and debugging tools, but the constant polling makes it expensive for this particular workflow.
You'll hit Google Calendar API rate limits if you query too many calendars simultaneously - stick to 2-3 max per workflow. Meeting attendee data sometimes comes back incomplete for external participants due to privacy settings. Recurring meetings can create timing edge cases where the 15-minute window catches the same event multiple times, especially with all-day events that don't have precise start times.
Ideas for what to build next
- āAdd digest mode ā Modify to send one message with multiple upcoming meetings instead of individual reminders for busy calendars.
- āFilter by meeting type ā Only send reminders for external meetings or specific calendar categories using event metadata.
- āCustom reminder timing ā Add different reminder windows based on meeting duration or importance using calendar event descriptions.
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