# Complete booking system with Google Calendar: n8n workflow

> Started by another system calling it, and works across Google Calendar. 27 steps, 3 branches, 2 loops or waits: large, and worth reading before you trust it...

Source: https://millionrounds.com/workflow/complete-booking-system-with-google-calendar (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Scheduling](https://millionrounds.com/workflows?category=Scheduling#library)

# Complete booking system with Google Calendar

Started by another system calling it, and works across Google Calendar. 27 steps, 3 branches, 2 loops or waits: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fcomplete-booking-system-with-google-calendar)

**27 steps** Large: read it before trusting it with anything live

**3** Branches: places the flow splits

**2** Loops or waits

**1** Service it connects to

## The flow

Starts it 7 Logic 15 Service 5

The steps in the order they run, from what starts it.

- 1 **Booking Webhook** Webhook *Starts it*
- 2 **Booking Timeslot webhook** Webhook *Starts it*
- 3 **Wait** Wait *Logic*
- 4 **Wait1** Wait *Logic*
- 5 **Validate Input** Code *Logic*
- 6 **ConfigTimeSlots** Set *Logic*
- 7 **Validation Check** If *Logic*
- 8 **Validate Date1** Code *Logic*
- 9 **Business Hours Check** Code *Logic*
- 10 **Prepare Validation Error** Code *Logic*
- 11 **Check Public Holiday Calendar** Google Calendar *Service*
- 12 **Time Validation Check** If *Logic*
- 13 **Error Response** Respond To Webhook *Starts it*
- 14 **Check Calendar Availability** Google Calendar *Service*
- 15 **Check Calendar Availability - Main** Google Calendar *Service*
- 16 **Prepare Time Error** Code *Logic*
- 17 **Process Holiday Check Calendar** Code *Logic*
- 18 **Check Calendar Availability - public holiday** Google Calendar *Service*
- 19 **Time Error Response** Respond To Webhook *Starts it*
- 20 **Holiday Response Calendar** Respond To Webhook *Starts it*
- 21 **Check Availability** Code *Logic*
- 22 **Availability Check** If *Logic*
- 23 **Create Calendar Event** Google Calendar *Service*
- 24 **Prepare Availability Error** Code *Logic*
- 25 **Prepare Success Response** Code *Logic*
- 26 **Availability Error Response** Respond To Webhook *Starts it*
- 27 **Success Response** Respond To Webhook *Starts it*

## How it's built

- **Starts on:** Another system calling it
- **Steps:** 27, with 3 branches, 2 loops or waits
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Google Calendar
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account, plus your own Google Calendar account. You connect your own accounts after importing it; none are included.

What starts it?

It starts on another system calling it.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 27 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 27 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fcomplete-booking-system-with-google-calendar)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Connects to

Each opens the other workflows that use it.

[Google Calendar](https://millionrounds.com/workflows?service=Google+Calendar#library)

## Workflows like it

Also scheduling, with the same services where possible, closest in size first.

- [**Book, manage, and check appointments with Vapi** 27 steps · Google Calendar](https://millionrounds.com/workflow/book-manage-and-check-appointments-with-vapi)
- [**Log Telegram client updates to Notion and Google Sheets** 27 steps · calls a model · Google Calendar, Google Drive](https://millionrounds.com/workflow/log-telegram-client-updates-to-notion-and-google-sheets)
- [**Manage Google Calendar and Gmail from Telegram with Claude** 27 steps · calls a model · Gmail, Google Calendar](https://millionrounds.com/workflow/manage-google-calendar-and-gmail-from-telegram-with-claude)
- [**Manage tasks, email & calendar with OpenAI and Gmail** 27 steps · calls a model · Gmail, Google Calendar](https://millionrounds.com/workflow/manage-tasks-email-and-calendar-with-openai-and-gmail)
- [**Morning briefing podcast: generate daily summaries with Gemini** 27 steps · calls a model · Google Calendar, Telegram](https://millionrounds.com/workflow/morning-briefing-podcast-generate-daily-summaries-with-gemin)
- [**Manage online bookings with Gmail and Google Calendar** 26 steps · Gmail, Google Calendar](https://millionrounds.com/workflow/manage-online-bookings-with-gmail-and-google-calendar)
