Conversion de Google Tasks en événements Google Calendar via l'intégration Webhook

Avancé

Ceci est unPersonal Productivity, Multimodal AIworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme If, Set, Webhook, DateTime, GoogleTasks. Convertir les tâches Google en événements Google Calendar via l'intégration Webhook

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "6d95cfcfdb5941832863c02ceb9fcbd0e7cde6400b76244f830811247606f9a4",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "e617195e-a1e2-4bb4-95b9-c7751ee8782c",
      "name": "Template Notes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        0
      ],
      "parameters": {
        "color": 5,
        "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 `calendarId` in **Configuration**.\n3) POST `{ TaskName, DueDateTimeSeconds }` to the Webhook.\n4) Test, then activate.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8baf3bc2-affd-4427-ad8f-0a8eef5995e9",
      "name": "Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        480
      ],
      "parameters": {
        "values": {
          "number": [
            {
              "name": "defaultMinutes",
              "value": 30
            },
            {
              "name": "eventColor",
              "value": 8
            }
          ],
          "string": [
            {
              "name": "calendarId",
              "value": "primary"
            },
            {
              "name": "tasklistId",
              "value": "REPLACE_WITH_TASKLIST_ID"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "6d90eb2d-3275-4525-b5d7-f7e761417683",
      "name": "Google Tasks",
      "type": "n8n-nodes-base.googleTasks",
      "position": [
        544,
        480
      ],
      "parameters": {
        "task": "={{ $('Configuration').item.json.tasklistId }}",
        "operation": "getAll",
        "additionalFields": {
          "showCompleted": false
        }
      },
      "credentials": {
        "googleTasksOAuth2Api": {
          "id": "r2Y8GsrO4PklYdVd",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "668b1608-7a1b-4ac2-8570-fcbf8278cfaa",
      "name": "Date et heure",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        752,
        480
      ],
      "parameters": {
        "date": "={{ $('Webhook').item.json.body.DueDateTimeSeconds.toDateTime(\"s\") }}",
        "format": "custom",
        "options": {},
        "operation": "formatDate",
        "customFormat": "=yyyy-MM-dd HH:mm:ss"
      },
      "typeVersion": 2
    },
    {
      "id": "0be0e8d0-b369-47e4-9419-90b3def746ad",
      "name": "Google Agenda",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        1392,
        560
      ],
      "parameters": {
        "end": "={{ $('Date & Time').item.json.formattedDate.toDateTime().plus($('Configuration').item.json.defaultMinutes, 'minutes').format(\"yyyy-MM-dd HH:mm:ss\") }}",
        "start": "={{ $('Date & Time').item.json.formattedDate }}",
        "calendar": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Configuration').item.json.calendarId }}"
        },
        "additionalFields": {
          "color": "={{ $('Configuration').item.json.eventColor }}",
          "summary": "={{ $('Google Tasks').item.json.title }}"
        }
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "20g8lCLkphJifaBd",
          "name": "Google Calendar account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "530619d8-52f2-4bb6-9fed-4068e686127a",
      "name": "Google Tasks1",
      "type": "n8n-nodes-base.googleTasks",
      "position": [
        1616,
        560
      ],
      "parameters": {
        "task": "MTQ4MDk5NDE1Mjc2NjA5MTA5MjE6MDow",
        "taskId": "={{ $('Google Tasks').item.json.id }}",
        "operation": "delete"
      },
      "credentials": {
        "googleTasksOAuth2Api": {
          "id": "r2Y8GsrO4PklYdVd",
          "name": "Google Tasks account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "36a1682b-8390-4273-ac26-1c35ec932294",
      "name": "Déclencheur Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        112,
        480
      ],
      "webhookId": "task-to-calendar",
      "parameters": {
        "path": "task-to-calendar",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "0fde8152-49b5-49e5-b52e-23fdb8000d03",
      "name": "Google Agenda9",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        960,
        480
      ],
      "parameters": {
        "limit": 3,
        "options": {
          "query": "={{ $('Webhook').item.json.body.TaskName }}",
          "updatedMin": "={{ $now.minus(5, 'minutes') }}",
          "showDeleted": "=false"
        },
        "calendar": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Configuration').item.json.calendarId }}"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "20g8lCLkphJifaBd",
          "name": "Google Calendar account"
        }
      },
      "typeVersion": 1.1,
      "alwaysOutputData": true
    },
    {
      "id": "de1caa4c-f1fc-44cc-baf4-9522f72f2b8d",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        1152,
        480
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f08129c7-f807-4915-9012-020c59db3629",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.summary }}",
              "rightValue": "={{ $json.summary }}"
            },
            {
              "id": "66c9e6d4-82bd-4e28-9456-4b9c9c1e54a3",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "{{ $('Webhook').item.json.body.TaskName }}",
              "rightValue": "{{ $json.summary }}"
            }
          ]
        }
      },
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "b6b89761-d9dd-4f41-b150-c3e1de4246b6",
      "name": "Étape 1 – Déclencheur",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        736
      ],
      "parameters": {
        "color": "blue",
        "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 Trigger if you prefer scheduled imports."
      },
      "typeVersion": 1
    },
    {
      "id": "63bc5ca7-8930-434a-b293-6168a11f5881",
      "name": "Étape 2 – Configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        736
      ],
      "parameters": {
        "color": "blue",
        "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` – Calendar color index"
      },
      "typeVersion": 1
    },
    {
      "id": "91d84006-1103-4686-877d-7135245db2a1",
      "name": "Étape 3 – Date",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        736
      ],
      "parameters": {
        "color": "blue",
        "height": 176,
        "content": "## Step 3 – Date formatting\nBuilds a proper start datetime from `DueDateTimeSeconds`.\nEnd time = start + `defaultMinutes` (configurable)."
      },
      "typeVersion": 1
    },
    {
      "id": "d4b1604a-8d40-466b-b8a8-a8d7dcdf6f03",
      "name": "Étape 4 – Déduplication",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        736
      ],
      "parameters": {
        "color": "blue",
        "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."
      },
      "typeVersion": 1
    },
    {
      "id": "c74b5b51-10c0-4a4f-ada8-450a25846258",
      "name": "Étape 5 – Créer l'événement",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        736
      ],
      "parameters": {
        "color": "blue",
        "height": 192,
        "content": "## Step 5 – Create event\nCreates a Calendar event using the formatted start time.\nEnd time = start + `defaultMinutes`. Color taken from `eventColor`."
      },
      "typeVersion": 1
    },
    {
      "id": "680dfb47-1ef5-482b-a772-01ea49eb67f1",
      "name": "Étape 6 – Nettoyage",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        736
      ],
      "parameters": {
        "color": "blue",
        "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."
      },
      "typeVersion": 1
    },
    {
      "id": "ba3e90cf-b8ce-40d7-adfa-f8c8f48891b5",
      "name": "Vue d'ensemble du flux",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        0
      ],
      "parameters": {
        "color": "blue",
        "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 event** on Google Calendar →\n6) **Cleanup** optionally deletes original task."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "de1caa4c-f1fc-44cc-baf4-9522f72f2b8d": {
      "main": [
        [],
        [
          {
            "node": "Google Calendar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "8baf3bc2-affd-4427-ad8f-0a8eef5995e9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Date & Time": {
      "main": [
        [
          {
            "node": "Google Calendar9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6d90eb2d-3275-4525-b5d7-f7e761417683": {
      "main": [
        [
          {
            "node": "Date & Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8baf3bc2-affd-4427-ad8f-0a8eef5995e9": {
      "main": [
        [
          {
            "node": "6d90eb2d-3275-4525-b5d7-f7e761417683",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Calendar": {
      "main": [
        [
          {
            "node": "530619d8-52f2-4bb6-9fed-4068e686127a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Calendar9": {
      "main": [
        [
          {
            "node": "de1caa4c-f1fc-44cc-baf4-9522f72f2b8d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Productivité personnelle, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds16
Catégorie2
Types de nœuds7
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
R4wd0G

R4wd0G

@r4wd0g

Feel free to send me an email if you have any questions: n8n.eldest410@aleeas.com

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34