Convierte Google Tasks a eventos de Google Calendar a través de integración Webhook
Este es unPersonal Productivity, Multimodal AIflujo de automatización del dominio deautomatización que contiene 16 nodos.Utiliza principalmente nodos como If, Set, Webhook, DateTime, GoogleTasks. Convertir tareas de Google en eventos del calendario de Google mediante Webhook
- •Punto final de HTTP Webhook (n8n generará automáticamente)
Nodos utilizados (16)
Categoría
{
"meta": {
"instanceId": "6d95cfcfdb5941832863c02ceb9fcbd0e7cde6400b76244f830811247606f9a4",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "e617195e-a1e2-4bb4-95b9-c7751ee8782c",
"name": "Template Notas",
"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": "Fecha y hora",
"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": "Calendario de Google",
"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": "Disparador 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": "Calendario de Google9",
"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": "Paso 1 – Activador",
"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": "Paso 2 – Configuración",
"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": "Paso 3 – Fecha",
"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": "Paso 4 – Deduplicación",
"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": "Paso 5 – Crear evento",
"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": "Paso 6 – Limpieza",
"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": "Resumen del flujo",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Productividad personal, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Compartir este flujo de trabajo