🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Calendar + Slack: daily updates, no chasing

Lisa Granqvist Partner Workflow Automation Expert

Your calendar changes. People miss the update. Then you spend the first 20 minutes of the day answering “Are we still on?” and “Where’s the link?” It’s not hard work. It’s just relentless.

This hits team leads who run their day in Slack, but ops managers and client-facing agencies feel it too. A Slack calendar digest automation keeps everyone aligned without you playing human router.

This n8n workflow logs every new, updated, and canceled Google Calendar event into Google Sheets, then posts a daily Slack summary with meeting stats. You’ll see how the pieces fit together, what you need, and where people usually get stuck.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Calendar + Slack: daily updates, no chasing

The Problem: Calendar Updates Get Lost in the Shuffle

Calendar hygiene breaks down in normal, everyday ways. A meeting gets moved, but the right people don’t notice. A Zoom link changes, and someone joins the old one. A stakeholder cancels, but your team still preps because nobody saw the cancellation in time. Then you try to “fix it” with a manual daily message, which works until you get busy, travel, or simply forget. Meanwhile, you have no clean record of what actually happened, so patterns like “we’re in meetings all day” stay a gut feeling instead of something you can act on.

It adds up fast. Here’s where it breaks down in real teams.

  • You end up copying event details into Slack by hand, and it’s easy to miss the meeting link or time zone.
  • Cancellations are the worst because they look “silent,” so people keep showing up anyway.
  • Without a consistent log, it’s hard to answer basic questions like “how many demos did we run last week?”
  • When the schedule changes mid-day, the mental load spikes because you have to remember who needs to know.

The Solution: Google Calendar → Sheets Log + Daily Slack Digest

This workflow turns your calendar into a system your team can trust. When a new event is created in Google Calendar, n8n captures the details, normalizes them (title, time, duration, attendees, meeting platform), and appends a clean row into an “Events” tab in Google Sheets. If an event changes, the same pipeline runs so your log stays current. If an event is canceled, the workflow records the cancellation in a separate “Cancellations” tab and posts an alert to Slack, so nobody is operating on stale info. At 8AM, it pulls the day’s events, calculates meeting-time stats, and posts a Slack summary that doubles as a daily briefing and a lightweight dashboard.

The workflow starts with Google Calendar triggers for new and updated events, plus a daily schedule trigger for the morning digest. In the middle, code steps categorize meetings (Meeting, 1:1, Interview, Demo, Focus Time) and detect platforms like Google Meet, Zoom, or Teams. Finally, Slack gets the notifications and Google Sheets becomes your source of truth.

What You Get: Automation vs. Results

Example: What This Looks Like

Say your team has 12 events in a typical day, and you manually post a quick Slack note for new meetings, changes, and cancellations. If each update takes maybe 2 minutes to write (time, link, attendees, channel), that’s roughly 20–30 minutes a day once reality kicks in. With this workflow, you spend about 10 minutes setting up the Sheet and Slack channels, then day-to-day effort is basically zero. The 8AM digest lands automatically, and cancellations trigger an alert the moment they happen.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Calendar for event triggers and daily retrieval.
  • Google Sheets to store logs, cancellations, and stats.
  • Slack for the daily digest and alerts.
  • OpenAI API key (get it from the OpenAI API dashboard).

Skill level: Intermediate. You’ll connect accounts and paste a Google Sheet ID into the right nodes.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A new or updated calendar event kicks it off. n8n listens to Google Calendar for creates and updates, so you don’t rely on someone remembering to “announce” meetings in Slack.

Event details get cleaned and categorized. The workflow parses title, start/end time, duration, attendees, and meeting link, then assigns a category like 1:1 or Demo. It also detects the platform (Google Meet, Zoom, Teams) so the digest stays readable.

Cancellations take a different path. An “If” check routes canceled events to a cancellation log in Google Sheets and posts a Slack alert, which means the team sees it before they waste time.

At 8AM, the daily summary gets posted. The schedule trigger pulls today’s events, computes meeting time and counts, then sends a Slack digest plus appends stats into the “Statistics” tab for longer-term trend tracking.

You can easily modify the Slack message format to match your team’s style, or change the 8AM schedule to a different time zone based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Trigger Type

Set up the three triggers that start the event-monitoring and daily digest flows.

  1. Open New Event Watcher and set Trigger On to eventCreated, with Calendar set to primary.
  2. In New Event Watcher, confirm the poll interval is everyMinute.
  3. Open Updated Event Watcher and set Trigger On to eventUpdated, with Calendar set to primary.
  4. In Updated Event Watcher, confirm the poll interval is everyMinute.
  5. Open Daily Digest Schedule and set the schedule rule to the cron expression 0 8 * * * to run at 8:00 AM daily.

Credential Required: Connect your Google Calendar credentials for New Event Watcher and Updated Event Watcher.

Credential Required: Connect your Google Calendar credentials for Daily Digest Schedule if your instance requires authenticated scheduling access.

If you test in a non-primary calendar, update the Calendar field to that calendar ID in both trigger nodes.

Step 2: Connect Google Services

Configure Google Calendar and Google Sheets nodes that store logs and compile daily statistics.

  1. Open Retrieve Today's Events and set Operation to getAll.
  2. In Retrieve Today's Events, set Time Min to {{ $now.startOf('day').toISO() }} and Time Max to {{ $now.endOf('day').toISO() }}.
  3. Open Append Event Log and set Operation to append, Sheet Name to Events, and Document ID to [YOUR_ID].
  4. Map the columns in Append Event Log to the provided expressions, such as ID{{ $json.eventId }} and Synced At{{ $json.syncedAtFormatted }}.
  5. Open Record Cancellation and set Operation to append, Sheet Name to Cancellations, and Document ID to [YOUR_ID].
  6. Open Append Summary Stats and set Operation to append, Sheet Name to Statistics, and Document ID to [YOUR_ID].

Credential Required: Connect your Google Calendar credentials for Retrieve Today's Events.

Credential Required: Connect your Google Sheets credentials for Append Event Log, Record Cancellation, and Append Summary Stats.

⚠️ Common Pitfall: Replace [YOUR_ID] with your actual spreadsheet ID in all three Google Sheets nodes, or the append operations will fail.

Step 3: Set Up Processing Nodes

These nodes parse event data, branch based on cancellations, and compute email content and daily metrics.

  1. Open Parse Event Details and keep the provided JavaScript Code to normalize event fields and compute metadata.
  2. In Check Cancellation, set the boolean condition to Value 1 {{ $json.cancelled }} equals Value 2 true.
  3. In Check Attendee Count, set the number condition to Value 1 {{ $('Parse Event Details').item.json.attendeeCount }} with Operation larger.
  4. Open Build Confirmation Email and keep the JavaScript Code that assembles the HTML email using data from Parse Event Details.
  5. Open Compute Daily Metrics and keep the JavaScript Code that calculates busyPercent, meeting totals, and the event list.
If your attendee list is empty, the Check Attendee Count node will route to Finish Event Flow without sending an email.

Step 4: Configure Output and Notification Nodes

Send Slack notifications, dispatch emails, and finalize each flow branch.

  1. Open Post Slack New Event and set Text to :calendar: *New calendar event*.
  2. Open Post Slack Cancellation and set Text to :x: *Event canceled*.
  3. Open Post Daily Summary and set Text to :chart_with_upwards_trend: *Daily Summary*.
  4. Open Dispatch Email Notice and set Send To to {{ $json.to }}, Subject to {{ $json.subject }}, and Message to {{ $json.htmlContent }}.
  5. Keep Finish Event Flow, Finish Cancellation, and Finish Summary Flow as no-op end points for their respective branches.

Credential Required: Connect your Slack credentials for Post Slack New Event, Post Slack Cancellation, Post Daily Summary, and Post Error Alert.

Credential Required: Connect your Gmail credentials for Dispatch Email Notice.

You can expand the Slack messages later by adding blocks or attachments, but keep the Text values as starting placeholders for testing.

Step 5: Add Error Handling

Route workflow failures to Slack with a structured error payload.

  1. Open Error Handler Trigger to ensure it is connected to Shape Error Payload.
  2. In Shape Error Payload, keep the JavaScript Code that outputs errorTime, errorMessage, and errorNode.
  3. Open Post Error Alert and set Text to :rotating_light: *Workflow Error*, with Include Link to Workflow enabled.
⚠️ Common Pitfall: If Post Error Alert has no Slack credential, error notifications will silently fail and troubleshooting becomes harder.

Step 6: Test and Activate Your Workflow

Validate the event flow, cancellation flow, daily digest, and error handling before turning it on.

  1. Use New Event Watcher to create a test event and run the workflow manually to confirm Parse Event DetailsAppend Event LogPost Slack New EventCheck Attendee CountBuild Confirmation EmailDispatch Email Notice executes correctly.
  2. Update or cancel an event to verify Updated Event Watcher triggers Check Cancellation and routes to Record CancellationPost Slack Cancellation when {{ $json.cancelled }} is true.
  3. Run Daily Digest Schedule manually to verify Retrieve Today's EventsCompute Daily MetricsPost Daily SummaryAppend Summary Stats.
  4. Force an error (e.g., temporarily remove a credential) to confirm Error Handler TriggerShape Error PayloadPost Error Alert posts a Slack alert.
  5. When tests succeed, toggle the workflow Active to enable continuous monitoring.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Calendar access can be deceptive. If events aren’t coming through, double-check the connected Google account and calendar selection inside the Google Calendar trigger node.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Slack posting failures are often permissions-related. Confirm the Slack app can post to the target channel (for example #calendar and #errors) and that the channel hasn’t been renamed.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Slack calendar digest automation?

About 30–45 minutes if your Google and Slack accounts are ready.

Do I need coding skills to automate a Slack calendar digest?

No. You’ll connect your accounts and update a Google Sheet ID in the Sheets nodes.

Is n8n free to use for this Slack calendar digest workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage (usually a few dollars a month for a typical team digest).

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Slack calendar digest workflow for a different summary style or time?

Yes, and it’s mostly swapping message text and timing. Change the “Daily Digest Schedule” node to post at your preferred hour, then edit the “Post Daily Summary” Slack node to match your format. If you want different categories (like “Client Call” vs “Internal”), adjust the categorization logic in the parsing/code section before the Sheets append. Common tweaks include routing different event types to different channels, excluding private events, and adding “tomorrow’s first meeting” to the digest.

Why is my Google Calendar connection failing in this workflow?

Usually it’s the wrong Google account, missing calendar permissions, or the trigger is pointed at a calendar you don’t actually use. Reconnect Google Calendar in n8n, then verify the calendar selection inside “New Event Watcher” and “Updated Event Watcher.” Also check that your Google Workspace admin hasn’t restricted third-party app access. If it fails only on busy days, rate limiting can be involved, so reduce how many calendars you watch at once.

How many events can this Slack calendar digest automation handle?

For most small teams, hundreds of events per week is fine. On n8n Cloud, your limit is tied to your monthly executions (Starter covers a typical use case), and self-hosting removes execution caps but depends on your server. The daily digest is just one scheduled run per day, while the event watchers create executions whenever events are created, updated, or canceled.

Is this Slack calendar digest automation better than using Zapier or Make?

Often, yes. This workflow has multiple triggers (new, updated, daily schedule, and error handling), plus conditional paths for cancellations and optional attendee emails, which can get awkward and expensive in simpler tools. n8n also gives you code steps when you need them, so categorization and meeting stats stay in one place. If you only want “post today’s events to Slack once a day,” Zapier or Make can be fine. If you want the Sheets log, cancellation tracking, and a reliable daily stats tab, n8n is usually the smoother long-term setup. Talk to an automation expert if you want help choosing.

Once this is running, schedule updates stop being a daily distraction. The workflow handles the repetitive calendar noise so your team can just show up and work.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal