AI PLAY玩法更新持续收录
← 回到更新流

2026-09-01 · 原文发布日

把课程大纲PDF变成日历里的备考计划

手动触发的n8n流程:从Google Drive下载教学大纲PDF,提取并清洗文本后交给Gemini,让它返回作业和截止日期的JSON清单,再按紧迫度定优先级、估算学时,自动在Google Calendar里创建截止日事件和复习时段,最后把每个事件记到Google Sheets方便追踪。提示词、复习时长、优先级阈值都能改,适合学生或家长管理学期任务。

原文要点

这是n8n.io上一个免费模板:手动点Execute workflow触发,从Google Drive下载教学大纲PDF并提取文本,清洗格式噪音后交给Google Gemini,要求返回作业、截止日期和估计学时的JSON清单;随后归一化节点解析JSON、把due_date转ISO格式、应用默认学时并按截止远近定优先级;再为每项作业生成复习时段(默认截止前两天、单段时长取估计学时与2小时的较小值),在Google Calendar创建截止日事件和复习事件;最后把每个事件标准化为一行追加到Google Sheets并输出运行汇总。模板作者列出了失败排查表:Gemini返回非JSON、日期未转ISO、Sheets凭据或文档ID错误、扫描版PDF无法提取文字等。

这次做成什么

照原模板导入后,用一份本站虚构的课程大纲PDF跑通「PDF→Gemini清单→日历事件→表格留档」全链路,并学会按作者给出的排查表定位四类常见失败。原模板需从n8n.io/workflows/18986导入,本站不提供可导入JSON,也未实测其节点界面。

准备什么

  • n8n实例,且已配置Google Drive、Calendar、Sheets和Gemini (Google PaLM) 凭据
  • 一份含真实文字的PDF大纲放到Google Drive并拿到文件ID
  • 目标日历对该凭据开放创建事件权限
  • 一张Google Sheets,表头含type,title,course_name,priority,start,end,due_date,description,calendar_event_id

具体怎么做

  1. 导入模板并接好四个凭据

    从n8n.io/workflows/18986导入后,把Drive、Calendar、Sheets、Gemini四个节点的凭据分别指向自己的账号;在Get Syllabus PDF节点把fileId换成自己大纲PDF的ID。

  2. 准备合成大纲PDF

    用下方artifact的文字生成一份PDF(粘贴到任意文档工具导出即可),上传到Drive。用虚构课程和日期,避免真实个人信息。

  3. 手动执行并检查Gemini输出

    点Execute workflow,打开Parse Assignments And Deadlines节点看返回是否为纯JSON的assignments数组;若带代码围栏或多余文字,按排查表收紧提示词并保留Normalize节点的围栏剥离逻辑。

  4. 核对归一化与复习时段

    在Normalize Deadlines节点确认每个due_date已转ISO、缺学时的项应用默认值、priority按截止远近赋值;在Generate Weekly Study Tasks确认复习事件默认排在截止前两天,时长为min(estimated_hours, 2),可按作者提示改成多段循环。

  5. 验证日历与表格落账

    打开目标日历确认截止日事件与复习事件都创建成功;检查Sheets追加的行九个字段齐全;最后看Debug Summary的事件计数与日历实际新增数一致。

可直接复制的材料

合成课程大纲PDF文字

本站虚构练习材料,导出为文字型PDF后使用;扫描件或图片PDF无法被提取,需另行OCR。

课程:10年级物理(2026秋季学期)\n主讲:李老师(虚构示例)\n作业与考核安排:\n1. 第一章运动学测验,截止 2026-09-15,预计复习3小时\n2. 力学实验报告,截止 2026-09-28,预计完成4小时\n3. 期中考试(运动学与力学),截止 2026-10-20,预计复习8小时\n4. 电学小论文,截止 2026-11-05,预计完成5小时\n说明:所有作业晚交一天扣10%。

Gemini提取作业清单提示词

本站独立编写的练习提示词,与原模板内置提示词不同;保持严格JSON输出以避免解析失败。

你是课程助理。下面是一份课程大纲的纯文本。请只输出一个JSON对象,不要输出任何解释或代码围栏。结构为{"assignments":[{"title":"作业或考试名称","due_date":"YYYY-MM-DD","estimated_hours":数字,"description":"一句话说明"}]}。规则:日期一律转成YYYY-MM-DD;没有写预计时间的项estimated_hours填3;只收录有明确截止日期的作业、报告、测验和考试。大纲文本如下:

输入与输出示例

本站虚构演示,非模型实际返回;优先级档位名称以原模板Normalize节点为准。

输入

把上方合成大纲的四项任务(运动学测验2026-09-15约3小时、力学实验报告2026-09-28约4小时、期中考试2026-10-20约8小时、电学小论文2026-11-05约5小时)交给Gemini提取并归一化。

对应输出

{"assignments":[{"title":"第一章运动学测验","due_date":"2026-09-15","estimated_hours":3,"description":"第一章内容的课堂测验"},{"title":"力学实验报告","due_date":"2026-09-28","estimated_hours":4,"description":"力学实验的书面报告"},{"title":"期中考试","due_date":"2026-10-20","estimated_hours":8,"description":"覆盖运动学与力学"},{"title":"电学小论文","due_date":"2026-11-05","estimated_hours":5,"description":"电学主题短文"}]};归一化后期中考试priority最高,复习事件按默认逻辑排在2026-10-18,单段时长min(8,2)=2小时。

做完检查这些

  • Parse节点输出是纯JSON的assignments数组,四项任务齐全,due_date均为YYYY-MM-DD
  • 日历中为每项任务各创建了一个截止日事件,期中考试另有排在2026-10-18的2小时复习事件
  • Sheets追加行的九个字段与事件一一对应,calendar_event_id非空
  • Debug Summary里assignment_deadline与study_session的计数等于日历实际新增事件数

容易卡住的地方

  • 扫描版或图片型PDF提取不出文字,作者明确建议只用文字型PDF或自行加OCR步骤
  • Gemini返回带解释文字或代码围栏会触发「Failed to parse Gemini JSON」,提示词须强制JSON-only并保留围栏剥离逻辑
  • 默认复习时段固定在截止前两天且单段上限2小时,期中考试这种8小时任务需按作者提示改成多段循环
  • Sheets列表头必须与type,title,course_name,priority,start,end,due_date,description,calendar_event_id完全匹配,否则追加失败
  • 流程是手动触发,换学期要在Get Syllabus PDF节点更新fileId,别指望自动拾取新文件

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Plan study sessions from syllabus PDFs with Gemini, Google Calendar, and Sheets
原作者
WeblineIndia
原始发布日期
2026-09-01T06:59:14.671Z
来源
https://n8n.io/workflows/18986