

How to Alert on Room Booking Conflicts with N8n
Monitor Google Calendar for overlapping room bookings and instantly notify your Slack channel when conflicts occur.
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 precise room conflict detection with custom logic for complex booking rules.
Not ideal for
Simple calendar notifications where basic date overlap detection is sufficient.
Sync type
real-timeUse case type
notificationReal-World Example
A 40-person marketing agency uses this to catch conference room double-bookings before meetings start. Their old system relied on people checking calendars manually, leading to 3-4 conflicts per week where teams showed up to occupied rooms. Now conflicts get flagged in #office within minutes, giving the office manager time to move meetings or find alternative spaces before people leave their desks.
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 Start Time | start.dateTime | |
| Event End Time | end.dateTime | |
| Event Summary | summary | |
| Event Organizer | organizer.email | |
| Calendar ID | calendarId | |
| Event ID | id | |
1 optional fieldβΈ show
| Event Status | status |
Step-by-Step Setup
Workflows > New Workflow
Create New N8n Workflow
Start a fresh workflow in N8n specifically for room conflict monitoring. This will house all the logic for detecting overlaps and sending alerts.
- 1Click 'New Workflow' from the N8n dashboard
- 2Name it 'Room Booking Conflicts'
- 3Click the + icon to add your first node
Add Node > Trigger > Google Calendar Trigger
Add Google Calendar Trigger
Set up a trigger that fires when calendar events are created or updated. This catches new bookings that might conflict with existing ones.
- 1Search for 'Google Calendar' in the node menu
- 2Select 'Google Calendar Trigger'
- 3Choose 'Event Created or Updated' as the trigger type
- 4Set 'Resource' to the specific room calendar ID
Node Settings > Credentials > Google Calendar OAuth2 API
Connect Google Calendar Account
Authenticate with Google to access your calendar data. N8n needs permission to read calendar events and check for scheduling conflicts.
- 1Click 'Create New Credential' in the Google Calendar node
- 2Select 'Google Calendar OAuth2 API'
- 3Click 'Connect my account' and authorize N8n
- 4Test the connection with 'Test Step'
Add Node > Regular > Google Calendar
Add Calendar Query Node
Query all existing events for the same time period to find overlaps. This node pulls events that might conflict with the new booking.
- 1Add a new 'Google Calendar' action node after the trigger
- 2Set operation to 'Get Many' events
- 3Configure 'Time Min' to {{ $node['Google Calendar Trigger'].json['start']['dateTime'] }}
- 4Set 'Time Max' to {{ $node['Google Calendar Trigger'].json['end']['dateTime'] }}
Add Node > Regular > Code
Add JavaScript Code Node for Conflict Detection
Write logic to compare event times and detect actual overlaps. N8n's built-in nodes can't handle complex time comparisons, so custom code is required.
- 1Add a 'Code' node and select 'JavaScript'
- 2Paste the conflict detection logic into the code editor
- 3Set the node to process 'Each Item Separately'
- 4Configure input data from both calendar nodes
Drop this into an n8n Code node.
JavaScript β Code Node// Detect time overlap with 15-minute bufferβΈ Show code
// Detect time overlap with 15-minute buffer const newStart = new Date($node['Google Calendar Trigger'].json.start.dateTime); const newEnd = new Date($node['Google Calendar Trigger'].json.end.dateTime);
... expand to see full code
// Detect time overlap with 15-minute buffer
const newStart = new Date($node['Google Calendar Trigger'].json.start.dateTime);
const newEnd = new Date($node['Google Calendar Trigger'].json.end.dateTime);
const buffer = 15 * 60 * 1000; // 15 minutes in milliseconds
const conflicts = $node['Google Calendar'].json.filter(event => {
if (event.status === 'cancelled') return false;
const existingStart = new Date(event.start.dateTime);
const existingEnd = new Date(event.end.dateTime);
return (newStart < existingEnd + buffer) && (newEnd > existingStart - buffer);
});
return [{ conflictCount: conflicts.length, conflictDetails: conflicts }];Add Node > Regular > IF
Configure IF Node for Conflict Filter
Only proceed to Slack notification if conflicts are actually found. This prevents spam notifications for non-conflicting bookings.
- 1Add an 'IF' node after the code node
- 2Set condition to 'Number' > 'Larger' > 0
- 3Reference {{ $node['Code'].json['conflictCount'] }}
- 4Connect 'true' output to continue the workflow
Add Node > Regular > Slack
Add Slack Node
Configure Slack to post conflict alerts to your office channel. This sends the actual notification when room booking conflicts are detected.
- 1Add a 'Slack' node connected to the IF node's 'true' output
- 2Set operation to 'Post Message'
- 3Choose your #office channel from the dropdown
- 4Configure the message template with event details
Node Settings > Credentials > Slack OAuth2 API
Connect Slack Workspace
Authenticate N8n with your Slack workspace to enable message posting. You need bot permissions to post in channels.
- 1Click 'Create New Credential' in the Slack node
- 2Select 'Slack OAuth2 API'
- 3Click 'Connect my account' and authorize the N8n app
- 4Grant 'chat:write' and 'channels:read' permissions
Slack Node > Message Text Field
Format Conflict Alert Message
Create a clear message template that shows exactly which events conflict and when. Include enough detail for someone to resolve the booking issue.
- 1Set message text to include event names, times, and organizers
- 2Add conflict details using {{ $node['Code'].json['conflictDetails'] }}
- 3Include room name and booking duration
- 4Add a call-to-action for resolving the conflict
Workflow > Execute Workflow
Test the Complete Workflow
Run end-to-end testing with real calendar events to verify conflict detection and Slack notifications work correctly.
- 1Create two overlapping test events in your room calendar
- 2Click 'Execute Workflow' to trigger the flow manually
- 3Check that conflicts are detected in the code node output
- 4Verify the Slack message appears in your #office channel
Workflow > Activation Toggle
Activate the Workflow
Turn on the workflow to monitor for room conflicts continuously. Once active, it will check every new or updated calendar event automatically.
- 1Click the workflow toggle switch to 'Active'
- 2Verify the status shows 'Active' with a green indicator
- 3Check the execution log to confirm it's listening for events
Scaling Beyond 100+ room bookings/day+ Records
If your volume exceeds 100+ room bookings/day records, apply these adjustments.
Batch Calendar Queries
Query calendar events in 4-hour windows instead of individual lookups. Use N8n's HTTP Request node with batch parameters to reduce API calls by 80% on busy calendars.
Add Conflict Caching
Store detected conflicts in N8n's built-in database to prevent duplicate alerts. High-volume calendars often trigger multiple webhook events for the same booking change.
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 need custom conflict detection logic or your room booking patterns are complex. N8n's JavaScript nodes let you write precise overlap detection that handles edge cases like partial conflicts, buffer times, or recurring meetings. The code flexibility beats Zapier's limited date comparison options. Skip N8n if you just want basic calendar notifications - Make's built-in calendar modules handle simple conflict detection without custom code.
This workflow burns 3-4 executions per room booking: trigger + calendar query + conflict check + Slack message. At 50 room bookings per month, that's 200 executions total. N8n's self-hosted version costs nothing beyond server fees. The cloud version at $20/month covers 5,000 executions easily. Zapier would cost $49/month for the same volume since calendar queries eat premium actions. Make charges $21/month but limits you to 10,000 operations.
Make handles Google Calendar pagination automatically - N8n requires manual loop logic for calendars with 100+ events. Zapier's calendar trigger fires faster, usually within 30 seconds versus N8n's 2-3 minute webhook delays. But N8n wins on complex conflict logic. Make's calendar modules can't handle overlapping recurring events properly, and Zapier's date functions break on timezone edge cases that N8n's JavaScript handles cleanly.
Google Calendar's webhook system is flaky - expect 5-10% of events to not trigger workflows at all. Room calendars with external attendees create duplicate events that will trigger false conflicts. All-day events use 'date' fields while timed events use 'dateTime', breaking simple conflict logic. The biggest gotcha: Google's calendar API returns deleted events as 'cancelled' status for 30 days, so your conflict detection needs to filter those out or you'll alert on phantom bookings.
Ideas for what to build next
- βAdd Conflict Resolution Tracking β Create a follow-up workflow that monitors when conflicted events get moved or cancelled, then posts resolution updates to Slack.
- βBuild Room Utilization Reports β Extend the conflict data to track room booking patterns and generate weekly utilization reports in Google Sheets.
- βCreate Proactive Booking Validation β Set up a workflow that checks for conflicts when calendar invites are sent, not just when they're accepted.
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