{
  "name": "Convert Google Tasks to Google Calendar events via webhook integration",
  "nodes": [
    {
      "id": "e617195e-a1e2-4bb4-95b9-c7751ee8782c",
      "name": "Template Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        0
      ],
      "parameters": {
        "width": 528,
        "height": 288,
        "content": "## What this template does\nCreate Google Calendar events from incoming task payloads.\n\n## How to set up\n1) Select Google credentials in Tasks & Calendar nodes.\n2) Configure `tasklistId` and `calendarI"
      }
    },
    {
      "id": "8baf3bc2-affd-4427-ad8f-0a8eef5995e9",
      "name": "Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        480
      ]
    },
    {
      "id": "6d90eb2d-3275-4525-b5d7-f7e761417683",
      "name": "Google Tasks",
      "type": "n8n-nodes-base.googleTasks",
      "position": [
        544,
        480
      ]
    },
    {
      "id": "668b1608-7a1b-4ac2-8570-fcbf8278cfaa",
      "name": "Date & Time",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        752,
        480
      ]
    },
    {
      "id": "0be0e8d0-b369-47e4-9419-90b3def746ad",
      "name": "Google Calendar",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        1392,
        560
      ]
    },
    {
      "id": "530619d8-52f2-4bb6-9fed-4068e686127a",
      "name": "Google Tasks1",
      "type": "n8n-nodes-base.googleTasks",
      "position": [
        1616,
        560
      ]
    },
    {
      "id": "36a1682b-8390-4273-ac26-1c35ec932294",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        112,
        480
      ]
    },
    {
      "id": "0fde8152-49b5-49e5-b52e-23fdb8000d03",
      "name": "Google Calendar9",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        960,
        480
      ]
    },
    {
      "id": "de1caa4c-f1fc-44cc-baf4-9522f72f2b8d",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        1152,
        480
      ]
    },
    {
      "id": "b6b89761-d9dd-4f41-b150-c3e1de4246b6",
      "name": "Step 1 – Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        736
      ],
      "parameters": {
        "width": null,
        "height": 288,
        "content": "## Step 1 – Trigger (Webhook)\nReceives a JSON payload and starts the flow.\n\n**Example payload**\n```json\n{ \"TaskName\": \"Pay invoice\", \"DueDateTimeSeconds\": 1735179600 }\n```\nTip: replace the Manual Trig"
      }
    },
    {
      "id": "63bc5ca7-8930-434a-b293-6168a11f5881",
      "name": "Step 2 – Configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        736
      ],
      "parameters": {
        "width": null,
        "height": 288,
        "content": "## Step 2 – Configuration\nSingle place to adjust variables:\n- `tasklistId` – Google Tasks list ID\n- `calendarId` – target Calendar (e.g., `primary`)\n- `defaultMinutes` – event duration\n- `eventColor` "
      }
    },
    {
      "id": "91d84006-1103-4686-877d-7135245db2a1",
      "name": "Step 3 – Date",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        736
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "## Step 3 – Date formatting\nBuilds a proper start datetime from `DueDateTimeSeconds`.\nEnd time = start + `defaultMinutes` (configurable)."
      }
    },
    {
      "id": "d4b1604a-8d40-466b-b8a8-a8d7dcdf6f03",
      "name": "Step 4 – Dedupe",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        736
      ],
      "parameters": {
        "width": null,
        "height": 224,
        "content": "## Step 4 – Duplicate guard\nSearches recently updated events in the target calendar to prevent duplicates.\nAdjust the search window or title matching to fit your use case."
      }
    },
    {
      "id": "c74b5b51-10c0-4a4f-ada8-450a25846258",
      "name": "Step 5 – Create Event",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        736
      ],
      "parameters": {
        "width": null,
        "height": 192,
        "content": "## Step 5 – Create event\nCreates a Calendar event using the formatted start time.\nEnd time = start + `defaultMinutes`. Color taken from `eventColor`."
      }
    },
    {
      "id": "680dfb47-1ef5-482b-a772-01ea49eb67f1",
      "name": "Step 6 – Cleanup",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        736
      ],
      "parameters": {
        "width": null,
        "height": 192,
        "content": "## Step 6 – Cleanup (optional)\nDeletes the original Google Task after creating the Calendar event.\nDisable this if you prefer to keep tasks."
      }
    },
    {
      "id": "ba3e90cf-b8ce-40d7-adfa-f8c8f48891b5",
      "name": "Flow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        0
      ],
      "parameters": {
        "width": 400,
        "height": 192,
        "content": "## Flow overview\n1) **Webhook** receives task payload →\n2) **Configuration** centralizes variables →\n3) **Date & Time** formats schedule →\n4) **Duplicate guard** checks recent events →\n5) **Create eve"
      }
    }
  ],
  "connections": {
    "If1": {
      "main": [
        [],
        [
          {
            "node": "Google Calendar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Date & Time": {
      "main": [
        [
          {
            "node": "Google Calendar9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Tasks": {
      "main": [
        [
          {
            "node": "Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configuration": {
      "main": [
        [
          {
            "node": "Google Tasks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Calendar": {
      "main": [
        [
          {
            "node": "Google Tasks1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Calendar9": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}