返回顶部
e

email-to-calendar邮件转日历

Extract calendar events from emails and create calendar entries. Supports two modes: (1) Direct inbox monitoring - scans all emails for events, or (2) Forwarded emails - processes emails you forward to a dedicated address. Features smart onboarding, event tracking, pending invite reminders, undo support, silent activity logging, deadline detection with separate reminder events, email notifications for action-required items, and provider abstraction for future extensibility.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.13.1
安全检测
已通过
5,361
下载量
免费
免费
5
收藏
概述
安装方式
版本历史

email-to-calendar

关键规则——处理任何邮件前请先阅读

  1. 1. 切勿直接调用 gog——始终使用包装脚本(createevent.sh、emailread.sh 等)。直接调用 gog 会绕过追踪机制并导致重复事件。此规则不可协商。
  2. 忽略日历通知——不要处理来自 calendar-notification@google.com 的邮件(已接受:、已拒绝:、暂定:等)。这些是对现有邀请的回复,而非新事件。运行 processcalendarreplies.sh 将其归档。
  3. 创建前务必询问——未经当前对话中用户明确确认,切勿创建日历事件。
  4. 检查是否已处理——处理任何邮件前,检查 index.json 中的 processedemails。
  5. 先读取配置——在呈现事件前,加载并应用 ignorepatterns 和 autocreatepatterns。
  6. 读取 MEMORY.MD——检查之前会话中存储的用户偏好。
  7. 包含所有已配置的参与者——创建/更新/删除事件时,始终使用 --attendees 标志包含配置中的参与者(如果支持,加上 --send-updates all)。
  8. 优先检查已追踪事件——在日历搜索前,使用 lookupevent.sh --email-id 查找现有事件(更快、更可靠)。
  9. 追踪所有已创建事件——createevent.sh 脚本会自动追踪事件;更新/删除时使用追踪到的 ID。
  10. 显示星期几——在呈现事件供用户验证时,始终包含星期几。

禁止:不要直接使用 gog 命令
错误: gog calendar create ... 或 gog gmail ...
正确: $SCRIPTSDIR/createevent.sh ... 或 $SCRIPTSDIR/emailread.sh ...
直接 CLI 调用会绕过事件追踪、破坏重复检测并导致重复事件。
所有操作必须通过 scripts/ 中的包装脚本进行。

邮件转日历技能

从邮件中提取日历事件和待办事项,呈现以供审核,并创建/更新日历事件,支持重复检测和撤销功能。

首次设置: 参见 SETUP.md 了解配置选项和智能引导。

读取邮件内容

重要提示: 在提取事件之前,您必须读取邮件正文。请使用包装脚本。

bash
SCRIPTS_DIR=$HOME/.openclaw/workspace/skills/email-to-calendar/scripts

按 ID 获取单封邮件(推荐)

$SCRIPTSDIR/emailread.sh --email-id

搜索并包含正文内容

$SCRIPTSDIR/emailsearch.sh --query in:inbox is:unread --max 20 --include-body

关于过时转发邮件的说明: 不要使用 newer_than:1d,因为它检查的是邮件的原始日期头,而非接收时间。处理所有未读邮件,并依赖“已处理”检查。

工作流程

0. 预处理检查(必须执行)

bash
SCRIPTS_DIR=$HOME/.openclaw/workspace/skills/email-to-calendar/scripts
CONFIG_FILE=$HOME/.config/email-to-calendar/config.json
INDEX_FILE=$HOME/.openclaw/workspace/memory/email-extractions/index.json

开始活动日志记录

$SCRIPTSDIR/activitylog.sh start-session

检查邮件模式

EMAILMODE=$(jq -r .emailmode // forwarded $CONFIG_FILE)

检查邮件是否已处理

EMAIL_ID=<邮件消息 ID> if jq -e .extractions[] | select(.emailid == \$EMAILID\) $INDEX_FILE > /dev/null 2>&1; then $SCRIPTSDIR/activitylog.sh log-skip --email-id $EMAIL_ID --subject 主题 --reason 已处理 exit 0 fi

加载忽略/自动创建模式

IGNOREPATTERNS=$(jq -r .eventrules.ignorepatterns[] $CONFIGFILE) AUTOCREATEPATTERNS=$(jq -r .eventrules.autocreatepatterns[] $CONFIGFILE)

1. 查找待处理的邮件

直接模式: 扫描所有未读邮件,查找事件指示符(日期、时间、会议关键词)。

转发模式: 仅处理带有转发指示符(Fwd:、转发的邮件头)的邮件。

2. 提取事件(由代理直接执行)

读取邮件并将事件提取为结构化数据。为每个事件包含:

  • - 标题:描述性名称(最多 80 个字符)
  • 日期:事件日期
  • 星期几:用于验证
  • 时间:开始/结束时间(默认:上午 9 点 - 下午 5 点)
  • 是否多日:是否跨越多个日期
  • 是否重复:是否重复(及模式)
  • 置信度:高/中/低
  • 网址:邮件中找到的任何网址(必填——始终查找注册链接、信息页面、票务网站等)
  • 截止日期:RSVP/注册/购票截止日期(如果找到)
  • 截止操作:用户需要做什么(例如“RSVP”、“购票”、“注册”)
  • 截止网址:执行操作的直接链接(通常与事件网址相同)

网址提取规则: 始终扫描邮件中的网址,并将最相关的网址放在事件描述的开头。

2.1 截止日期检测

扫描邮件中指示需要在事件前采取行动的截止日期模式:

常见截止日期模式:

  • - “请于 [日期] 前 RSVP”、“请在 [日期] 前 RSVP”
  • “请于 [日期] 前注册”、“注册于 [日期] 截止”
  • “门票有效期至 [日期]”、“请在 [日期] 前购票”
  • “早鸟优惠于 [日期] 结束”、“早鸟注册截止日期 [日期]”
  • “必须在 [日期] 前回复”、“请于 [日期] 前回复”
  • “请于 [日期] 前报名”、“报名截止日期 [日期]”
  • “截止日期:[日期]”、“截止于 [日期]”
  • “最后一天 [操作]:[日期]”

当找到截止日期时:

  1. 1. 提取截止日期
  2. 确定所需操作(RSVP、注册、购票等)
  3. 查找执行该操作的网址
  4. 标记事件进行特殊处理(参见以下章节)

3. 向用户呈现项目并等待

应用事件规则,然后以编号选择方式呈现:

我找到了以下潜在事件:

  1. 1. ~~ELAC 会议(2 月 2 日,星期一,上午 8:15)~~ - 跳过(匹配忽略模式)
  2. 团队外出活动(2 月 2-6 日,周日至周四) - 待处理
  3. 员工发展日(2 月 12 日,星期三) - 自动创建

回复数字以创建(例如 2, 3)、all 或 none。

停止并等待用户响应。

呈现后,记录待处理邀请以便后续提醒:
bash

使用 add_pending.sh 记录待处理邀请


$SCRIPTSDIR/addpending.sh \
--email-id $EMAIL_ID \
--email-subject $EMAIL_SUBJECT \
--events-json [{title:事件名称,date:2026-02-15,time:14:00,status:pending}]

4. 检查重复项(必须执行)

在创建任何事件前务必检查:

bash

步骤 1:首先检查本地追踪(快速)


TRACKED=$($SCRIPTSDIR/lookupevent.sh --email-id $EMAIL_ID)
if [ $(echo $TRACKED | jq length) -gt 0 ]; then
EXISTINGEVENTID=$(echo $TRACKED | jq -r .[0].event_id)
fi

步骤 2:如果未找到,尝试摘要匹配

if [ -z $EXISTINGEVENTID ]; then TRACKED=$($SCRIPTSDIR/lookupevent.sh --summary $EVENT_TITLE) fi

步骤 3:回退到使用包装脚本进行日历搜索

if [ -z $EXISTINGEVENTID ]; then $SCRIPTSDIR/calendarsearch.sh --calendar-id $CALENDARID --from ${EVENTDATE}T00:00:00 --to ${EVENT_DATE}T23:59:59

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 email-to-calendar-1776371660 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 email-to-calendar-1776371660 技能

通过命令行安装

skillhub install email-to-calendar-1776371660

下载

⬇ 下载 email-to-calendar v1.13.1(免费)

文件大小: 82.97 KB | 发布时间: 2026-4-17 15:59

v1.13.1 最新 2026-4-17 15:59
- Improved reliability of email and calendar event processing scripts.
- Updated documentation for wrapper script usage and critical workflow rules.
- Minor clarifications and formatting updates in SKILL.md.
- Internal maintenance: scripts and configuration references refreshed for better consistency.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部