8
n8n 中文网amn8n.com

动态发送外出/休假消息

中级

这是一个Personal Productivity领域的自动化工作流,包含 14 个节点。主要使用 If, Code, Gmail, GmailTrigger, GoogleCalendar 等节点。 使用Gmail和Google Calendar动态发送外出/休假消息

前置要求
  • Google 账号和 Gmail API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6f15bcff-5358-4f9a-914d-dfd1e87c6e6f",
      "name": "查找返岗日期",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        860,
        0
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "orderBy": "startTime"
        },
        "timeMax": "={{ $now.plus({ week: 2 }) }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "d1ba7566bd33c38760d89364501c748a2c0d75f9bdca2b77e1565b7a93fe146a@group.calendar.google.com",
          "cachedResultName": "General Manager"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "hpuoiTdX3AdioCk5",
          "name": "Rosh's Personal Calendar Account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f922f416-5c9e-4053-8612-30d0aa5f92b2",
      "name": "美化返回日期格式",
      "type": "n8n-nodes-base.code",
      "position": [
        1120,
        0
      ],
      "parameters": {
        "jsCode": "const dateTime = $input.first().json.start.dateTime;\nconst timeZone = $input.first().json.start.timeZone;\n\nconst date = new Date(dateTime);\n\nconst returnDate = new Intl.DateTimeFormat(undefined, {\n  timeZone,\n  weekday: 'long',\n  year: 'numeric',\n  month: 'long',\n  day: 'numeric'\n}).format(date);\n\nreturn [{ json: { returnDate } }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4585b157-5413-40a6-b661-5836aa1c5717",
      "name": "发送外出办公消息",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1380,
        0
      ],
      "webhookId": "ecf81e7d-0ed2-425b-9219-42e25657353d",
      "parameters": {
        "sendTo": "={{ $('Receive an Email in Gmail').item.json.From }}",
        "message": "=Hello, \n\nThanks for your message!\n\nI am currently out of the office, and I will be returning on {{ $json.returnDate }}.\n\nBest, \n[User Name]",
        "options": {
          "appendAttribution": true
        },
        "subject": "Out of Office / Vacation Responder",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "x5LsvRUYpInxYmcG",
          "name": "Rosh's Personal Email"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2a758f6b-981b-42e8-8b6d-65c28d67d3af",
      "name": "在 Gmail 中接收邮件",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        80,
        0
      ],
      "parameters": {
        "filters": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "x5LsvRUYpInxYmcG",
          "name": "Rosh's Personal Email"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8b0b39a3-2109-4d3f-adb9-016b3aac1712",
      "name": "检查日历中的即将到来的工作事件",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        360,
        0
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "orderBy": "startTime"
        },
        "timeMax": "={{ $now.plus(1, 'days').format('yyyy-MM-dd') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "d1ba7566bd33c38760d89364501c748a2c0d75f9bdca2b77e1565b7a93fe146a@group.calendar.google.com",
          "cachedResultName": "General Manager"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "hpuoiTdX3AdioCk5",
          "name": "Rosh's Personal Calendar Account"
        }
      },
      "executeOnce": true,
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "747f8201-60ce-401d-83da-ab2d8867dbca",
      "name": "今天有任何即将到来的事件吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        600,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5b1567fc-439c-4924-9290-0bcbb0be9b06",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.summary }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "26b69ab5-7004-4c1c-b6bd-8d332ed26a34",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        -380
      ],
      "parameters": {
        "width": 580,
        "height": 580,
        "content": "## 功能说明"
      },
      "typeVersion": 1
    },
    {
      "id": "74fbf32d-f2a9-4d14-a810-2be2c89160f8",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -380
      ],
      "parameters": {
        "width": 760,
        "height": 200,
        "content": "## 用户设置说明"
      },
      "typeVersion": 1
    },
    {
      "id": "32209323-40fd-47a7-9fb0-2d44b19c87ed",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Gmail 触发器"
      },
      "typeVersion": 1
    },
    {
      "id": "4d571591-139a-41cf-96da-9fb92e27e2a1",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 360,
        "content": "## 日历检查 #1"
      },
      "typeVersion": 1
    },
    {
      "id": "222fbee1-ea2f-4399-a3ab-7146997d8033",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## 日历检查 #2"
      },
      "typeVersion": 1
    },
    {
      "id": "aae2c7e1-cc62-45cd-9fcc-46b03b6bdd7f",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1060,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## 函数节点"
      },
      "typeVersion": 1
    },
    {
      "id": "62c57e58-5f16-48e7-a532-d8b387a8f045",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Gmail 发送"
      },
      "typeVersion": 1
    },
    {
      "id": "90c00754-61da-4326-90a0-ca90e6f6c483",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        220
      ],
      "parameters": {
        "width": 760,
        "content": "## 自定义选项"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Nicely Format Return Date": {
      "main": [
        [
          {
            "node": "Send Out of Office Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive an Email in Gmail": {
      "main": [
        [
          {
            "node": "Check Calendar for Upcoming Work Events",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Any Upcoming Events Today?": {
      "main": [
        [],
        [
          {
            "node": "Find Return-to-Office Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Return-to-Office Date": {
      "main": [
        [
          {
            "node": "Nicely Format Return Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Calendar for Upcoming Work Events": {
      "main": [
        [
          {
            "node": "Any Upcoming Events Today?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 个人效率

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量14
分类1
节点类型6
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流