
## 概述
这个n8n工作流能够自动在预定时间(默认每天上午8点)运行,计算当前日期的范围,从指定的Microsoft Outlook账户获取当天的所有日历事件,将这些事件格式化为用户友好的HTML邮件,然后将摘要发送到指定的邮箱地址。
## 工作流程详解
### 节点1: Schedule Trigger (计划触发器)
– **类型**: n8n-nodes-base.scheduleTrigger
– **作用**: 在预定义时间自动启动工作流
– **配置**:
– 规则 > 间隔 > 触发时间: 8
– 根据n8n服务器的时区每天上午8:00触发
– **输出**: 在预定时间触发工作流执行
### 节点2: Code (代码节点)
– **类型**: n8n-nodes-base.code
– **作用**: 动态计算”今天”的开始和结束时间戳
– **配置(JS代码)**:
– 获取当前日期和时间(工作流运行时间)
– 设置今天为当前日期的开始时间(00:00:00)
– 设置明天为下一天的开始时间(00:00:00)
– 转换为ISO字符串格式
– **输出**: 包含今天和明天ISO日期字符串的JSON对象
### 节点3: Microsoft Outlook (微软Outlook节点)
– **类型**: n8n-nodes-base.microsoftOutlook
– **作用**: 在计算的时间范围内从Outlook获取日历事件
– **配置**:
– 资源: 事件
– 过滤器(自定义):
– start/dateTime ge ‘{{$json.today}}’ and start/dateTime lt ‘{{$json.tomorrow}}’
– (OData过滤器获取今天开始的所有事件)
– **输出**: Outlook事件对象列表
### 节点4: Edit Fields (设置节点)
– **类型**: n8n-nodes-base.set
– **作用**: 转换和简化Outlook事件数据结构
– **配置**: 将Outlook事件字段映射到新字段名:
– id
– subject
– description (来自bodyPreview)
– meeting_start
– meeting_end
– attendees
– meeting_organizer
– meeting_organizer_email
– meeting_link
– **输出**: 包含简化会议详情的JSON对象列表
### 节点5: Generate HTML (代码节点)
– **类型**: n8n-nodes-base.code
– **作用**: 生成汇总所有会议的HTML邮件正文并创建邮件主题行
– **配置(JS代码)**:
– 处理来自”Edit Fields”节点的所有会议项目
– 定义generateMeetingReminderEmail函数将每个会议格式化为HTML”卡片”
– 转义HTML特殊字符,格式化时间、参会者等
– 将所有卡片连接成完整的HTML文档
– 生成主题行
– **输出**: JSON对象包含subject和html字段
### 节点6: Send Email (邮件发送节点)
– **类型**: n8n-nodes-base.emailSend
– **作用**: 将生成的HTML摘要邮件发送到指定收件人
– **配置**:
– 发件邮箱: test@gmail.com
– 收件邮箱: akhilgadiraju@gmail.com
– 主题: {{ $json.subject }}
– HTML: {{ $json.html }}
– **输出**: 邮件发送状态
## 便签说明
– **更新时间**: 在”Schedule Trigger”节点附近;根据需要配置触发时间
– **更新邮件详情**: 在”Send Email”节点附近;更改发件人和收件人邮箱地址
## 自定义方法
### 计划 (Schedule Trigger节点)
修改触发时间、分钟或星期几来更改工作流运行时间
### 日期范围 (Code节点)
调整JS代码来更改日期范围(如下一个工作日、下周)
### Outlook日历 (Microsoft Outlook节点)
指定日历ID或优化OData过滤器进行事件选择
### 事件详情 (Edit Fields节点)
添加/删除/修改提取的事件字段
### 邮件外观和内容 (Generate HTML节点)
更改CSS样式、会议详情或主题行逻辑
### 无会议场景
在”Edit Fields”后使用”If”节点处理无会议日(如发送”今天无会议!”邮件或跳过邮件)
### 邮件收件人 (Send Email节点)
更新”From”和”To”邮箱;多个收件人用逗号分隔
## 错误处理
– 使用”Error Trigger”节点捕获和处理故障(Outlook API、SMTP错误)
– 相应地发送警报或记录错误
## 应用场景
– **自动化每日个人会议简报**: 获取每日会议摘要邮件
– **自动化团队会议摘要**: 发送每日团队日历摘要邮件
– **主动每日规划**: 自动了解当天的日程安排
## 所需凭证
在n8n实例的凭证下添加这些凭证:
### Microsoft Outlook (OAuth2 API):
– 使用节点: “Microsoft Outlook”节点
– 工作流中的凭证名称: Outlook
– 需要具有Calendars.Read权限的OAuth2
### SMTP:
– 使用节点: “Send Email”节点
– 工作流中的凭证名称: SMTP account
– 需要SMTP服务器详情(主机、端口、用户名、密码)
确保这些凭证配置正确并具有所需权限。激活工作流以进行计划执行。

评论(0)