🔓 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 Sheets + Google Calendar for faster lead bookings

Lisa Granqvist Partner Workflow Automation Expert

Leads come in. Then they sit. Someone meant to call, someone forgot, and now you are sending that awkward “just checking in” email two days too late.

This is where lead booking automation pays off fast. Restaurant managers feel it during service. Marketing leads feel it when campaigns “work” but nobody follows up. And small business owners get stuck being the entire sales team.

This workflow turns new rows in Google Sheets into voice outreach (via Vapi), logs the outcome, and creates a Google Calendar booking when the lead says yes. You will see exactly what it automates, what results to expect, and what you need to run it.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Google Calendar for faster lead bookings

The Problem: Leads fall through the cracks before they book

Google Sheets is a surprisingly common “CRM,” especially for small teams. It’s quick to start, easy to share, and flexible enough to track names, phone numbers, preferences, and follow-up notes. The problem shows up right after the spreadsheet fills up. Someone has to notice the new row, decide what to say, make the call, write down what happened, and then schedule a booking if the lead is ready. That is a lot of context switching. And when you’re busy, “later” becomes “never,” so leads go cold and your calendar stays emptier than it should.

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

  • New leads get buried because nobody is watching the sheet all day.
  • Calls happen inconsistently, so your outreach depends on who remembers and when.
  • Even when a call connects, results are rarely logged cleanly, which makes campaigns impossible to measure.
  • Bookings get delayed because scheduling is a separate task, and separate tasks are where momentum dies.

The Solution: Sheets-triggered voice outreach that books the calendar

This n8n workflow watches your Google Sheets lead list for new entries and reacts immediately. When a new lead appears, it formats the lead details (name, phone, preferences, typical party size, and more) so the outreach message is consistent. Then it processes leads in batches, which is useful when you import a list or run a campaign to a segment. For each lead, n8n sends a request to Vapi to launch a voice call with your tailored offer and booking invitation. When the call ends or the customer responds, Vapi calls back into n8n through a webhook, and the workflow logs the full outcome back into Google Sheets. If the response includes booking intent, the workflow extracts details (date, time, party size, special requests) and creates the event in Google Calendar automatically.

The flow starts in Google Sheets and moves to Vapi for voice outreach. The webhook captures the response, then Google Sheets becomes your system of record. When booking details are present, Google Calendar is updated right away, so there’s no “someone still needs to schedule it” gap.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you add 30 new leads a week to Google Sheets from a promo or loyalty program. Manually, even a quick process is something like 10 minutes to call, 5 minutes to log notes, and 5 minutes to schedule if they book, which is roughly 20 minutes per lead. That’s about 10 hours weekly. With this workflow, adding the row is the only “work,” and the rest runs in the background: calls launch automatically, outcomes are written back, and bookings appear in Google Calendar when the lead confirms. You still review edge cases, but most teams get several hours back immediately.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store leads, responses, and tracking.
  • Google Calendar to create bookings automatically.
  • Vapi credentials (get them from your Vapi dashboard).

Skill level: Intermediate. You’ll connect accounts, map fields, and test a webhook callback end-to-end.

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

How It Works

A new lead hits your sheet. The workflow starts with a Google Sheets trigger that fires when a new lead is added to your lead management spreadsheet.

The lead is cleaned up and prepared. n8n standardizes fields like customer name, phone number, typical party size, and time preferences so the next steps don’t depend on messy, inconsistent data.

Vapi runs the outreach and sends the result back. n8n launches a voice call via an HTTP request to Vapi, then listens for the callback through a webhook so it can capture what the customer actually said.

Bookings get scheduled automatically. The workflow logs outcomes to Google Sheets, extracts booking details from natural language, and creates the event in Google Calendar. A response is returned to the webhook so the voice flow can continue cleanly.

You can easily modify the call script and qualification rules to fit your business, then route “not ready” leads into a follow-up sequence. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Google Sheets Trigger

Set up the workflow to start when a new lead is added to your intake sheet. The execution flow begins with Sheet Lead Intake TriggerFormat Lead Details.

  1. Add and open Sheet Lead Intake Trigger.
  2. Set Event to rowAdded.
  3. Select the Document as Vapi_real-estate and the Sheet as call_list.
  4. Credential Required: Connect your googleSheetsTriggerOAuth2Api credentials.

⚠️ Common Pitfall: Replace the placeholder document ID [YOUR_ID] with your actual Google Sheet ID to avoid trigger failures.

Step 2: Connect Google Sheets for Logging

Configure the logging sheet to store outreach responses. The flow continues from Voice Callback WebhookLog Response to SheetParse Booking Details.

  1. Add and open Log Response to Sheet.
  2. Set Operation to appendOrUpdate and Authentication to serviceAccount.
  3. Set Document to Vapi_real-estate and Sheet to Sheet1.
  4. Map column values using the provided expressions, for example prospect_name{{ $json.body.message.toolCalls[0].function.arguments.prospect_name }} and appointment_datetime{{ $json.body.message.toolCalls[0].function.arguments.appointment_datetime }}.
  5. Credential Required: Connect your googleApi credentials.

Ensure the matchingColumns include prospect_name so updates correctly merge with existing rows.

Step 3: Set Up Lead Processing

Normalize incoming lead data and prepare batch processing and booking details parsing.

  1. In Format Lead Details, set the Phone field value to =+{{ $json.Phone }} to standardize phone numbers.
  2. Open Iterate Lead Batches and keep default settings to process one lead at a time.
  3. In Parse Booking Details, keep the provided JavaScript to parse date_input and time_input into appointment_datetime_parsed and appointment_end_datetime in IST.
  4. Optionally keep Flowpast Branding as a documentation note inside the workflow canvas.

The parsing logic defaults to 5 PM if time is missing. Make sure your voice system sends date_input and time_input for accurate scheduling.

Step 4: Configure Outreach, Webhook Callback, and Booking Actions

This step covers the outbound call, inbound webhook response, and calendar booking creation. The execution path is Iterate Lead BatchesLaunch Voice Outreach and later Parse Booking DetailsCreate Booking CalendarReturn Voice Response.

  1. Open Launch Voice Outreach and set URL to https://api.vapi.ai/call with Method POST.
  2. Set JSON Body to { "assistantId": "add_id_here", "phoneNumberId": "add_id_here", "customers": [ { "number":"{{ $json.Phone }}" } ]} and keep Authentication as predefinedCredentialType.
  3. Credential Required: Connect your httpBearerAuth credentials.
  4. Open Voice Callback Webhook and set HTTP Method to POST with Response Mode responseNode.
  5. Copy the webhook Path a34ac7ac-7ea4-4942-8dbf-f9ce3f0986e4 and configure it in your voice platform callback settings.
  6. Open Create Booking Calendar and set Start to {{ $json.appointment_datetime_parsed }} and End to {{ $json.appointment_end_datetime }}.
  7. Select the Calendar as [YOUR_EMAIL].
  8. Credential Required: Connect your googleCalendarOAuth2Api credentials.
  9. Open Return Voice Response and keep default settings to send the webhook response.

⚠️ Common Pitfall: Replace add_id_here, [YOUR_ID], and [YOUR_EMAIL] with real values before testing, or the call and calendar creation will fail.

Step 5: Test and Activate Your Workflow

Validate the end-to-end flow from sheet intake through voice outreach and calendar creation.

  1. Manually add a new row to the call_list sheet with a valid Phone value.
  2. Run the workflow once to confirm Sheet Lead Intake Trigger starts and Launch Voice Outreach fires.
  3. Send a sample webhook payload to Voice Callback Webhook and confirm Log Response to Sheet appends data and Create Booking Calendar creates an event.
  4. Successful execution should end at Return Voice Response without errors.
  5. Toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets permissions can be weird with shared drives. If rows aren’t logging, check the n8n Google Sheets credential scope and confirm the exact spreadsheet ID is accessible.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Vapi webhooks fail most often because the callback URL changed or is blocked. Confirm the webhook URL in Vapi matches n8n, then check the n8n execution logs for rejected requests.

Frequently Asked Questions

How long does it take to set up this lead booking automation automation?

About 45 minutes if your sheets and accounts are ready.

Do I need coding skills to automate lead booking automation?

No. You’ll mostly map fields and connect credentials. The only “code-like” part is adjusting the booking detail extraction if your wording is unique.

Is n8n free to use for this lead booking automation 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 Vapi usage costs (per-minute billing for voice calls).

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 lead booking automation workflow for multiple locations and different booking rules?

Yes, and it’s a common tweak. You can route calls based on a “location” or “preferred_time_slot” column in Google Sheets, then adjust what gets written into the Google Calendar event title, description, and timezone. If you want different scripts per segment, change the payload in the “Launch Voice Outreach” HTTP Request step and store variants in the sheet. You can also expand the “Parse Booking Details” logic to require a minimum party size or block off specific days.

Why is my Google Sheets connection failing in this workflow?

Usually it’s a permissions or spreadsheet ID issue. Reconnect the Google Sheets credential in n8n, then verify the spreadsheet is accessible to that Google account and that the trigger is watching the correct tab. If it still fails, check the execution log for “insufficient permissions” or “not found,” because those two messages point to different fixes.

How many leads can this lead booking automation automation handle?

It depends more on your Vapi call capacity than n8n. On n8n Cloud Starter, you can run up to 2,500 workflow executions per month, and higher plans handle more. If you self-host, there’s no execution cap, but your server and Google API limits still matter. Practically, most small teams run dozens to a few hundred leads per day without issue as long as batching is configured and calls aren’t all launched at the exact same second.

Is this lead booking automation automation better than using Zapier or Make?

Often, yes, because this workflow needs webhooks, branching logic, and reliable logging back into Google Sheets. n8n also gives you more control over how you parse booking details and when you create Google Calendar events, and it doesn’t penalize you as much when workflows get complex. Zapier or Make can still work if you want a very simple “new row → send email” style flow, but voice calls plus callbacks tend to get messy there. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation. No pressure.

The workflow handles the repetitive follow-up and scheduling so leads don’t drift away. Set it up once, then spend your time on the conversations that actually need a human.

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