Skip to main content

Manage online bookings with webhook, Gmail, Google Calendar and Slack

Workflow preview

Workflow preview
100%
Manage online bookings with webhook, Gmail, Google Calendar and Slack preview
Open on n8n.io

1. Workflow Overview

Receive booking requests via webhook with automatic validation, duplicate detection, availability checking, confirmation emails, Google Calendar sync, and Slack notifications. WHAT IT DOES: Accepts...

Best for

  • Miscellaneous automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.webhook, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.respondtowebhook, n8n-nodes-base.httprequest, n8n-nodes-base.gmail, n8n-nodes-base.googlecalendar

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Manu.

Original n8n.io source

1.1 Workflow description

Title
Manage online bookings with webhook, Gmail, Google Calendar and Slack
Workflow name
Manage online bookings with webhook, Gmail, Google Calendar and Slack

Receive booking requests via webhook with automatic validation, duplicate detection, availability checking, confirmation emails, Google Calendar sync, and Slack notifications.

WHAT IT DOES:

Accepts booking requests (name, email, date, time, service type, party size) via webhook Validates all required fields and email format Checks for duplicate bookings within 24 hours for the same customer Verifies slot availability against your database Generates unique confirmation code (BOOK-timestamp-random) for each booking Sends styled HTML confirmation email via Gmail Creates Google Calendar event for staff scheduling Notifies team via Slack #bookings channel Logs audit trail entry for every booking attempt Returns alternative time suggestions when requested slot is unavailable

INCLUDED FLOWS:

Valid booking: Webhook receives POST → Validate fields and email → Check duplicates via API → Check availability via API → Create booking → Send confirmation email → Create Calendar event → Notify Slack → Log audit → Return 201 with confirmation Invalid request: Missing name, email, date, or time → Return 400 with specific validation errors Duplicate booking: Same email already has booking on requested date → Return 409 with existing booking ID Unavailable slot: Time slot already booked → Return 409 with list of alternative available slots Workflow error: Any node fails → Error trigger → Slack alert to #errors channel

RESPONSE CODES:

201 Created: Booking confirmed with bookingId, customer details, date, time, duration, and confirmationSent flag 400 Bad Request: Validation failed with list of specific errors and received data 409 Conflict (duplicate): Booking already exists for this email on requested date with existingBookingId 409 Conflict (unavailable): Requested slot not available with array of alternative slots

BOOKING DATA:

Each booking generates a unique ID (BOOK-timestamp-random) Captures customerName, customerEmail, customerPhone, serviceType, requestedDate, requestedTime Default duration 60 minutes, default partySize 1 Includes notes and source fields (default: website)

SETUP:

HTTP Header Auth credential with API key and base URL for your booking REST API Gmail credential for sending HTML confirmation emails to customers Google Calendar credential for creating staff scheduling events (uses primary calendar) Slack credential with access to #bookings and #errors channels Backend API with endpoints: POST /api/bookings, GET /api/bookings/check-duplicate, GET /api/bookings/availability, POST /api/bookings/audit

CUSTOMIZABLE:

Validation rules are adjustable in the Validate Booking code node (add or remove required fields, change email regex) Duplicate detection window can be modified in the API - Check Duplicates request parameters Confirmation email HTML template is fully editable in the Format Email code node (colors, layout, content) Calendar event format is configurable in the Prepare Calendar Event code node Slack notification format and channel are editable in the Slack - Notify Team node Party size, duration defaults, and service types can be adjusted in the Validate Booking code node

IDEAL FOR:

Restaurants, salons, clinics, hotels, and service businesses that need automated booking management with confirmation emails, calendar sync, and team notifications.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Booking intake

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Webhook - New Booking

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 4 - Validate Booking

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 5 - IF - Valid Request

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 6 - Format Validation Error

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 7 - Respond - Validation Error

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 8 - Duplicate and availability

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 9 - API - Check Duplicates

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 10 - IF - Not Duplicate

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 11 - Format Duplicate Error

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 12 - Respond - Duplicate

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 13 - Availability check

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - API - Check Availability

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 15 - IF - Available

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2

Block 16 - Format Unavailable

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Respond - Unavailable

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 18 - Booking creation

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 19 - API - Create Booking

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 20 - Format Email

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 21 - Send Confirmation Email

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 22 - Prepare Calendar Event

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 23 - Create Calendar Event

Type / Role
n8n-nodes-base.googleCalendar - googleCalendar
Config choices
Version 1.2

Block 24 - Slack - Notify Team

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.2

Showing the first 24 of 33 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Manage online bookings with webhook, Gmail, Google Calendar and Slack
Complexity advanced
Nodes 33
Categories Miscellaneous
Author Manu
Published 03 Feb 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13196/13196.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Manage online bookings with webhook, Gmail, Google Calendar and Slack do?

Receive booking requests via webhook with automatic validation, duplicate detection, availability checking, confirmation emails, Google Calendar sync, and Slack notifications. WHAT IT DOES: Accepts...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Miscellaneous use case.