通过Webhook集成将Google Tasks转换为Google Calendar事件
高级
这是一个Personal Productivity, Multimodal AI领域的自动化工作流,包含 16 个节点。主要使用 If, Set, Webhook, DateTime, GoogleTasks 等节点。 通过Webhook集成将Google Tasks转换为Google Calendar事件
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "6d95cfcfdb5941832863c02ceb9fcbd0e7cde6400b76244f830811247606f9a4",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "e617195e-a1e2-4bb4-95b9-c7751ee8782c",
"name": "模板说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
272,
0
],
"parameters": {
"color": 5,
"width": 528,
"height": 288,
"content": "## 此模板的功能"
},
"typeVersion": 1
},
{
"id": "8baf3bc2-affd-4427-ad8f-0a8eef5995e9",
"name": "配置",
"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": "日期与时间",
"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 Calendar",
"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": "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 Calendar9",
"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": "条件判断1",
"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": "步骤 1 – 触发器",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
736
],
"parameters": {
"color": "blue",
"height": 288,
"content": "## 步骤 1 – 触发器 (Webhook)"
},
"typeVersion": 1
},
{
"id": "63bc5ca7-8930-434a-b293-6168a11f5881",
"name": "步骤 2 – 配置",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
736
],
"parameters": {
"color": "blue",
"height": 288,
"content": "## 步骤 2 – 配置"
},
"typeVersion": 1
},
{
"id": "91d84006-1103-4686-877d-7135245db2a1",
"name": "步骤 3 – 日期",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
736
],
"parameters": {
"color": "blue",
"height": 176,
"content": "## 步骤 3 – 日期格式化"
},
"typeVersion": 1
},
{
"id": "d4b1604a-8d40-466b-b8a8-a8d7dcdf6f03",
"name": "步骤 4 – 去重",
"type": "n8n-nodes-base.stickyNote",
"position": [
912,
736
],
"parameters": {
"color": "blue",
"height": 224,
"content": "## 步骤 4 – 重复防护"
},
"typeVersion": 1
},
{
"id": "c74b5b51-10c0-4a4f-ada8-450a25846258",
"name": "步骤 5 – 创建事件",
"type": "n8n-nodes-base.stickyNote",
"position": [
1184,
736
],
"parameters": {
"color": "blue",
"height": 192,
"content": "## 步骤 5 – 创建事件"
},
"typeVersion": 1
},
{
"id": "680dfb47-1ef5-482b-a772-01ea49eb67f1",
"name": "步骤 6 – 清理",
"type": "n8n-nodes-base.stickyNote",
"position": [
1456,
736
],
"parameters": {
"color": "blue",
"height": 192,
"content": "## 步骤 6 – 清理(可选)"
},
"typeVersion": 1
},
{
"id": "ba3e90cf-b8ce-40d7-adfa-f8c8f48891b5",
"name": "流程概览",
"type": "n8n-nodes-base.stickyNote",
"position": [
832,
0
],
"parameters": {
"color": "blue",
"width": 400,
"height": 192,
"content": "## 流程概览"
},
"typeVersion": 1
}
],
"pinData": {},
"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
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 个人效率, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
具有多日历路由的双向 ClickUp 任务与 Google 日历同步
具有多日历路由的双向 ClickUp 任务与 Google 日历同步
If
Set
Merge
+6
69 节点R4wd0G
项目管理
使用OMI.ME、Gemini AI和Google Drive将语音备忘录转换为日记和任务
使用OMI.ME、Gemini AI和Google Drive将语音备忘录转换为日记和任务
If
Set
Sort
+14
32 节点Angel Menendez
个人效率
来自多个招聘网站的求职自动化
使用 5 个招聘平台和 AI 简历生成器自动化求职与申请
If
Set
Code
+14
34 节点Gerald Denor
个人效率
我的字典_复杂
使用GPT-4o-mini和Supabase创建文学英德中词典
If
Set
Code
+6
22 节点Xiaoyuan Zhang
个人效率
导出 n8n
使用LINE和OpenAI Vision从图片记录食物卡路里到Google Sheets
If
Set
Code
+9
17 节点kote2
个人效率
每日WhatsApp摘要与群组级别控制
WhatsApp群组摘要工作流
If
Set
Code
+13
39 节点Luís Philipe Trindade
个人效率