AutomationFlowsAI & RAG › Automate Hvac Service Scheduling with AI Agent, Google Calendar and Gmail

Automate Hvac Service Scheduling with AI Agent, Google Calendar and Gmail

ByBhuvanesh R @bhuvanesh on n8n.io

Instant, automated scheduling. This AI Scheduling Agent manages real-time appointments, availability checks, and rescheduling across Google Calendar and Sheets, eliminating human hold times.

Webhook trigger★★★★★ complexityAI-powered30 nodesTool ThinkMemory Buffer WindowOpenAI ChatAgentGoogle Calendar ToolGoogle Sheets ToolGoogle Sheets TriggerAnthropic
AI & RAG Trigger: Webhook Nodes: 30 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9974 — we link there as the canonical source.

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "TO2hDehR19idos0A",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "AI-Powered HVAC Scheduling Agent with Multi-Step Tool Execution",
  "tags": [],
  "nodes": [
    {
      "id": "2ccf6d62-a308-4a3e-8b82-a376de5e0b92",
      "name": "webhook_trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        112
      ],
      "parameters": {},
      "executeOnce": false,
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "d42e76fa-26df-4be2-be3c-e2a8a88c4531",
      "name": "think",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        576,
        224
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "34c5f195-f586-44f8-bf7c-1809b5095c21",
      "name": "respond_to_webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1760,
        112
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "dd362a16-58ab-4fa0-abee-f57c99891767",
      "name": "simple-memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        448,
        224
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "92934f03-f69c-48dc-9f9b-c7424656396a",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        288,
        224
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "6792bc09-e55c-47e8-b6c0-9d58ce470023",
      "name": "Receptionist",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        784,
        0
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d33ce44a-5f2b-4529-9ec9-27d7a442c334",
      "name": "check_calendar",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        976,
        224
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "10dd7349-cb7e-4ac1-ba9b-fe62bc9bac39",
      "name": "log_lead",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        592,
        432
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "f0359235-d7c0-471d-afa7-b310ca518c1e",
      "name": "log_lead_trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        400,
        1584
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2319722d-88c4-45af-9d43-0a9e28c574de",
      "name": "find_old_event",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        832,
        448
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "13b5af09-dc4f-41f0-ad1d-b2a6a779def9",
      "name": "reschedule_appointment",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1312,
        224
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "56ac1673-24cb-476b-8505-067c75dfc177",
      "name": "Compose a mail",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "position": [
        848,
        1440
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "80b630b7-7717-4b5f-89f1-c383e093e701",
      "name": "booking_confirmation",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1200,
        1440
      ],
      "parameters": {},
      "typeVersion": 2.1
    },
    {
      "id": "21ca1911-48cf-454a-90a9-7066a6220575",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        848,
        1696
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "d33aaad1-0ba4-46df-9a3c-0391bb606c59",
      "name": "cancel_appointment",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1488,
        224
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "46241300-0c37-49d3-8806-448974811dbf",
      "name": "book_appointment",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1136,
        224
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "8ec1fc4a-f8ae-4695-ab07-93d18e31c996",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        -400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "d108f20e-1067-41e1-8f07-1be7cfb2726d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -304
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "120da344-4834-4be9-b2ed-a8360f192280",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        416
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "fd59daab-b6ae-4535-bb74-d2e976c47443",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        416
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "f895d446-0051-48e0-9483-7bc349ad9a1a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c1b8440b-8874-463d-893f-3555200e7b9a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        1040
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4eb412e9-cec2-42fb-bf22-33b69bebb445",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        1040
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "803fa3dd-75e5-46a3-b009-c9c04243e8bc",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        1376
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c387f635-2efd-4668-9b21-e0bc36ac5018",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        1136
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "bb9dee76-f95b-435a-9a7b-3c61ce6d6737",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        1664
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "1c5e21d0-2e8c-4ada-8149-6d595e0fdcfa",
      "name": "message_team",
      "type": "n8n-nodes-base.googleChat",
      "position": [
        1056,
        1696
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5024afe7-0336-4113-861b-e12185794c2e",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -64
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c3636b1e-a2cf-4763-bc79-100043767eba",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1648,
        -64
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "78320267-cb8b-4a66-a18e-910be28a66c9",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        -400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "timezone": "Asia/Kolkata",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "a8ebce93-e3e0-4b48-90c3-bbe148d31357",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "message_team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "think": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "log_lead": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Receptionist": {
      "main": [
        [
          {
            "node": "respond_to_webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "simple-memory": {
      "ai_memory": [
        [
          {
            "node": "Receptionist",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Compose a mail": {
      "main": [
        [
          {
            "node": "booking_confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "check_calendar": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "find_old_event": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "webhook_trigger": {
      "main": [
        [
          {
            "node": "Receptionist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "book_appointment": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "log_lead_trigger": {
      "main": [
        [
          {
            "node": "Compose a mail",
            "type": "main",
            "index": 0
          },
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Receptionist",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cancel_appointment": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "booking_confirmation": {
      "main": [
        []
      ]
    },
    "reschedule_appointment": {
      "ai_tool": [
        [
          {
            "node": "Receptionist",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Instant, automated scheduling. This AI Scheduling Agent manages real-time appointments, availability checks, and rescheduling across Google Calendar and Sheets, eliminating human hold times.

Source: https://n8n.io/workflows/9974/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Enhance your support, onboarding, and internal knowledge workflows with an intelligent RAG-powered chatbot that responds using live data stored in Google Sheets. 🤖📚 Built for teams that rely on struct

Chat Trigger, Output Parser Structured, Memory Buffer Window +6
AI & RAG

Jarvis is a powerful multi-agent productivity assistant built in n8n. It works directly from Telegram and can understand both text messages and voice notes.

Telegram Trigger, Telegram, OpenAI +10
AI & RAG

🧠 Gwen – The AI Voice Marketing Agent Gwen is your intelligent voice-powered marketing assistant built in n8n. She combines the power of OpenAI, ElevenLabs, and automation workflows to handle content

Tool Workflow, Memory Buffer Window, Agent +10
AI & RAG

This template is designed for anyone who wants to use WhatsApp as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida

OpenAI Chat, Memory Buffer Window, Mcp Client Tool +12
AI & RAG

This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida

OpenAI Chat, Memory Buffer Window, Mcp Client Tool +11