精选案例 · 校园效率工具 / Agent 自动化
用 AI 词元开发邮件日历桥接工具
本项目使用 DeepSeek-V4-Pro 辅助开发了一个邮件日历桥接工具,通过 IMAP 读取 USTC 邮箱,利用大模型提取日程事件,生成 .ics 文件并支持 GitHub Actions 定时运行。项目展示了 AI 在胶水型自动化项目中的高效辅助作用,并提供了详细的使用流程和心得建议。
案例速读
该案例完整呈现了一个自动化工具从需求分析、AI 辅助设计、模块实现到部署的全流程。README 详细记录了关键提示词、技术选型(DeepSeek-V4-Pro、IMAP、SQLite、iCalendar、GitHub Actions)以及心得建议。对于希望用 AI 加速个人自动化项目的开发者具有很高的参考价值。 建议从 「用 AI 词元开发邮件日历桥接工具」、「背景」、「AI 工具」、「使用方式」 进入正文,先确认真实任务和模型辅助过程。
- 重点看 项目结构设计、邮件读取模块(IMAP SSL 连接、MIME 解析)、大模型结构化抽取 schema。结合 校园效率工具 / Agent 自动化 / 邮件日历桥接 / AI 辅助开发 和「USTC 学生、开发者、自动化爱好者」,它更适合作为任务检索后的精读材料。
- 正文目录和原始材料仍然是判断依据;导读只帮助你更快定位阅读重点。
- 首读入口
- 背景
- 读者
- USTC 学生、开发者、自动化爱好者
- 复用
- 项目结构设计
- 结构
- 6 个目录入口
原文内容
用 AI 词元开发邮件日历桥接工具
背景
学校邮箱里经常会收到课程作业截止时间、考试安排、会议通知、报名提醒等信息。这些时间点分散在不同邮件中,人工逐封查看和手动添加到手机日历比较耗时,也容易漏掉重要事项。
因此,我希望做一个自动化工具:定期读取 USTC 邮箱中的新邮件,识别邮件里的 DDL 和日程信息,并生成可以导入或订阅到 Android 日历的 .ics 文件。
项目代码见:Mail-Calendar-Bridge。
AI 工具
本项目主要使用 DeepSeek-V4-Pro 辅助完成需求拆解、代码生成、调试和文档整理。
在开发过程中,我主要让 AI 协助完成以下任务:
- 设计 Python 项目的整体结构。
- 编写 IMAP 邮件读取逻辑。
- 设计用大模型从邮件正文中提取日程事件的结构化输出格式。
- 生成 iCalendar
.ics文件。 - 编写 README、配置示例和 GitHub Actions 自动运行流程。
使用方式
我的基本工作流是先向 DeepSeek-V4-Pro 描述目标功能,再让它把任务拆成若干模块,之后逐个模块生成代码并人工检查。
一开始的提示词大致是:
我想做一个 Python 工具,自动读取 USTC 邮箱中的课程通知、作业截止时间、考试安排等邮件,用大模型提取其中的 DDL 和日程信息,然后生成 Android 手机日历可以导入的 .ics 文件。请帮我设计项目结构、核心模块和实现步骤。
在确定结构后,我继续按模块追问,例如:
请帮我实现一个 mail_reader.py,通过 IMAP SSL 连接学校邮箱,读取最近 7 天的邮件,解析中文邮件标题和正文,并返回结构化的邮件对象。
请帮我设计一个适合大模型 tool use 的 JSON schema,用来从邮件正文中提取作业截止、考试、会议、报名、缴费等日程事件。
请帮我把提取出的事件写入 .ics 日历文件,要求同一封邮件重复运行时不要产生重复事件,并尽量兼容 Android 日历导入。
请帮我写一个 GitHub Actions workflow,每天定时运行脚本,生成 docs/ddl_events.ics,并提交到仓库,方便用 GitHub Pages 做日历订阅。
AI 生成初稿后,我会本地运行、查看报错、把错误信息继续发给 AI,让它协助定位问题。对于涉及邮箱密码、API Key 的部分,我只让 AI 生成 .env.example 模板,真实密钥保存在本地环境变量或 GitHub Secrets 中。
成果与收获
最终完成了一个可以本地运行的邮件日历桥接工具,主要功能包括:
- 通过 IMAP SSL 读取 USTC 邮箱最近若干天的邮件。
- 解析中文邮件标题和正文,支持 HTML 邮件转纯文本。
- 调用大模型从邮件中提取作业截止、考试、会议、报名等日程事件。
- 使用 SQLite 记录已处理邮件,避免重复处理。
- 生成
.ics日历文件,方便导入 Android 手机日历。 - 支持 GitHub Actions 定时运行,并通过 GitHub Pages 发布可订阅的日历文件。
这次实践让我感受到,AI 很适合帮助完成这种“胶水型自动化项目”:它可以快速把 IMAP、SQLite、LLM 结构化抽取、iCalendar、GitHub Actions 等多个环节串起来。相比完全手写,AI 显著降低了查文档和搭框架的时间。
心得与建议
这类项目最适合让 AI 先做整体设计,再分模块逐步实现。不要一开始就要求 AI 一次性生成完整项目,否则很容易出现细节遗漏或调试困难。
我觉得比较有效的做法是:
- 先把目标、输入、输出和运行环境说清楚。
- 让 AI 给出项目结构和模块边界。
- 每次只生成一个模块,并马上本地运行验证。
- 把真实报错完整贴给 AI,让它基于错误信息修改。
- 对密码、API Key、邮件内容等敏感信息保持警惕,不要直接发给 AI。
- 对 AI 生成的自动化脚本要人工检查,尤其是涉及提交、推送、定时任务和公开发布的部分。
这次经验说明,AI 不只是“帮我写代码”的工具,更像是一个可以随时讨论方案、查漏补缺和陪伴调试的开发助手。只要把需求拆清楚,并保持人工审查,个人也可以比较快地做出一个可用的自动化工具。