{
  "name": "Google calendar events with Gemini AI follow-up suggestions via WhatsApp & email",
  "nodes": [
    {
      "id": "1a126147-47b1-4ffd-9494-4d9222d5002b",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -240,
        528
      ]
    },
    {
      "id": "0d24a4c9-984f-4ad7-ae80-1825d2004809",
      "name": "Create an event",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        432,
        448
      ]
    },
    {
      "id": "87939508-6c62-499f-ae9a-813cac137c57",
      "name": "Date & Time",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        -16,
        448
      ]
    },
    {
      "id": "ab2713e8-6ece-4a98-ab6c-bab90f7196f5",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        176,
        448
      ]
    },
    {
      "id": "9d212fd1-4189-48b7-92d2-e4e8241281c0",
      "name": "Get Past Events",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        -528,
        1728
      ]
    },
    {
      "id": "094e8163-7dd2-4bc3-a59b-62a2d57749ec",
      "name": "Mark as Seen",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        -304,
        1728
      ]
    },
    {
      "id": "27f7ddbf-0341-47cc-9da3-dbadbd1e8110",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -688,
        528
      ]
    },
    {
      "id": "a67ee294-2d4f-46a8-bbb7-c08e0be2a407",
      "name": "Get in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -464,
        528
      ]
    },
    {
      "id": "e5681977-acb6-4d64-a2f9-22233080e9a6",
      "name": "Update status in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        880,
        544
      ]
    },
    {
      "id": "2ee3f43e-6710-42d5-a022-28aa3090ce27",
      "name": "Rapiwa",
      "type": "n8n-nodes-rapiwa.rapiwa",
      "position": [
        656,
        352
      ]
    },
    {
      "id": "f8338ab0-1bc5-4ac1-b640-cbdbf973e1d7",
      "name": "Schedule Trigger1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -752,
        1728
      ]
    },
    {
      "id": "b743d3bf-5150-42e4-9db8-250785fda332",
      "name": "Only Follow Ups",
      "type": "n8n-nodes-base.filter",
      "position": [
        144,
        1616
      ]
    },
    {
      "id": "0328dfd5-0d27-4e83-93c9-c2ae879abd47",
      "name": "Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        608,
        1840
      ]
    },
    {
      "id": "7509af23-9d83-4b30-b896-ac289609b3f8",
      "name": "Availability",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        496,
        1840
      ]
    },
    {
      "id": "8a31bf27-84f8-4e48-8b06-bdf10fb926d3",
      "name": "Generate Message",
      "type": "n8n-nodes-base.set",
      "position": [
        832,
        1616
      ]
    },
    {
      "id": "fda54f21-bceb-4649-ab68-94e2a6f11887",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -80,
        1728
      ]
    },
    {
      "id": "8ed45b86-7a56-4301-8e32-1fc2cf39c50d",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1104,
        624
      ]
    },
    {
      "id": "1ebb876e-9abd-48fe-8f85-2cdbe1c8e5d0",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        1280,
        1824
      ]
    },
    {
      "id": "d1a19978-cb34-4bdb-9635-abdcb248c059",
      "name": "Rapiwa1",
      "type": "n8n-nodes-rapiwa.rapiwa",
      "position": [
        1056,
        1520
      ]
    },
    {
      "id": "af14ad3b-414f-41b7-9558-817f64e3bce6",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1056,
        1712
      ]
    },
    {
      "id": "dd63cc9b-423b-433b-a4f0-4d9ddf5f9a32",
      "name": "Send a message1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        656,
        544
      ]
    },
    {
      "id": "92e79917-d2bc-478a-ae1a-7dc118b5c8a6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        320
      ],
      "parameters": {
        "width": 496,
        "height": 368,
        "content": "## Schedule Trigger\n* **Purpose:** To **start the entire workflow automatically** at regular intervals (like a cron job).\n\n\n## Get in sheet\n* **Purpose:** To **fetch data** from a Google Sheet contain"
      }
    },
    {
      "id": "60679101-9a93-4fc9-b5c1-8e851ea62cea",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        96
      ],
      "parameters": {
        "width": 480,
        "height": 512,
        "content": "## Date & Time\n* **Purpose:** To **standardize and format the event end time** from the Google Sheet into a format suitable for the following steps.\n* **How it works:**\n    * It takes the value from t"
      }
    },
    {
      "id": "2a63a61c-82f4-441a-ae87-0a17837f16dd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        272
      ],
      "parameters": {
        "width": 256,
        "height": 336,
        "content": "## Create an event\n* **Purpose:** To **create the new meeting event** in the designated Google Calendar."
      }
    },
    {
      "id": "80921e5e-4391-4c94-8f69-5ee8ded1093e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        16
      ],
      "parameters": {
        "width": 608,
        "height": 784,
        "content": "## Rapiwa\n* **Node Type:** Rapiwa (WhatsApp Node)\n* **Purpose:** To **send a confirmation message via WhatsApp** to the client after the event is successfully created.\n\n\n## Send a message\n* **Purpose:"
      }
    },
    {
      "id": "eb087842-bda1-474d-81fc-39b2d6ddf998",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        1008
      ],
      "parameters": {
        "width": 1056,
        "height": 992,
        "content": "## Meeting Agent\n* **Purpose:** An **AI assistant** responsible for intelligently finding **available slots for a future follow-up meeting**.\n\n- ### Google Gemini \n  - **Purpose:** Provides the **unde"
      }
    },
    {
      "id": "bb0dd99d-a763-49ab-9d23-69f9fefb788d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        1488
      ],
      "parameters": {
        "width": 672,
        "height": 400,
        "content": "## Get Recent Meetings\nFor this template, a scheduled trigger is set to fire every morning to pull in past meetings from 2-3 days ago. A \"Remove Duplicates\" node ensures we don't double process events"
      }
    },
    {
      "id": "3c133a36-4bbc-4b54-972b-1cb2f7ded3c5",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        1440
      ],
      "parameters": {
        "width": 272,
        "height": 384,
        "content": "## Only Follow Ups\n* **Purpose:** To **filter the events** so that only those meeting a specific criteria (e.g., meetings that need a follow-up) proceed to the AI agent.\n"
      }
    },
    {
      "id": "7f07047f-eae3-4586-92a7-9ada810b5686",
      "name": "Meeting Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        416,
        1616
      ]
    },
    {
      "id": "0b730f8b-d92c-41a5-8648-a6179e649ba0",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        880
      ],
      "parameters": {
        "width": 2256,
        "height": 1136,
        "content": "# Reminder Event\nThe \"Reminder Event\" part of the workflow is dedicated to **proactively scheduling follow-up meetings** for recently concluded Google Calendar events. This process is triggered on a s"
      }
    },
    {
      "id": "ffc11e3c-51c2-47cc-8803-8c319682ddb2",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -112
      ],
      "parameters": {
        "width": 2064,
        "height": 928,
        "content": "# Create Event\nThe \"Create Event\" workflow's main function is to automatically **create an event in Google Calendar** using meeting data retrieved from a **Google Sheet** based on specific conditions."
      }
    },
    {
      "id": "22b3938e-1a95-465f-b33d-6ed38f4f0500",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2064,
        -112
      ],
      "parameters": {
        "width": 1216,
        "height": 1632,
        "content": "# Automating Google Calendar Event Creation and OpenAI-Powered Follow-up Proposals\n\n## 💡 Overview\nThis **n8n workflow** is designed for anyone who manages **meeting schedules and follow-ups** for sale"
      }
    },
    {
      "id": "fe0314f4-e859-46a1-82cf-c2af6864df45",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        400,
        1840
      ]
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Create an event",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "ai_languageModel": [
        [
          {
            "node": "Meeting Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Output": {
      "ai_outputParser": [
        [
          {
            "node": "Meeting Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Rapiwa": {
      "main": [
        []
      ]
    },
    "Rapiwa1": {
      "main": [
        []
      ]
    },
    "Date & Time": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Availability": {
      "ai_tool": [
        [
          {
            "node": "Meeting Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark as Seen": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Meeting Agent": {
      "main": [
        [
          {
            "node": "Generate Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create an event": {
      "main": [
        [
          {
            "node": "Rapiwa",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Past Events": {
      "main": [
        [
          {
            "node": "Mark as Seen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Only Follow Ups": {
      "main": [
        [
          {
            "node": "Meeting Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message1": {
      "main": [
        [
          {
            "node": "Update status in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Message": {
      "main": [
        [
          {
            "node": "Rapiwa1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [],
        [
          {
            "node": "Only Follow Ups",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger1": {
      "main": [
        [
          {
            "node": "Get Past Events",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update status in sheet": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}