工具 - 将 iZJU 的 PeopleSoft 课表导出为 ICS 并导入日历
从认识油猴和脚本站点开始,使用 Tampermonkey 脚本导出 iZJU PeopleSoft 课表,再导入 Outlook、Google 或 Apple 日历并同步到手机。
直接跳转到手把手教程 · 通过 Tampermonkey 安装本站脚本(需先安装 Tampermonkey) · 下载脚本
这篇教程介绍如何把 iZJU 的 PeopleSoft(下文简称 PS)课表导出为 .ics 文件,再导入 Outlook、Google 日历或 Apple 日历,让课程和其他日程显示在一起,方便查看和设置提醒。
整个过程是:在电脑浏览器安装油猴 → 安装课表脚本 → 登录 PS 导出课表 → 将文件导入日历 → 同步到手机。 不需要自己写代码。
先认识油猴、脚本和这几个网站
油猴和脚本是什么关系?
这里说的“油猴”指 Tampermonkey(篡改猴),它是一款浏览器扩展,用来安装、管理和运行“用户脚本”。用户脚本是一小段为网页增加功能的程序:当你打开符合运行条件的网页时,油猴会执行对应脚本。
本文使用的脚本叫 PS Calendar to ICS (iZJU)。它会在 PS 课表页面添加“导出 ICS”按钮,把页面中的课程信息整理成日历文件。因此需要安装两样东西:油猴扩展负责运行脚本,课表脚本负责导出课表。只安装油猴,还不会出现导出按钮。
这些网站分别用来做什么?
| 网站 | 用途 | 你需要做什么 |
|---|---|---|
| Tampermonkey 官网 | 提供油猴扩展的安装入口 | 选择自己的浏览器,前往对应扩展商店安装 |
| 本站脚本安装入口 | 经 Tampermonkey 安装中转页唤起扩展,脚本文件及更新由本站提供 | 安装油猴后点击链接,在弹出的页面确认安装 |
| Greasy Fork | 用户脚本发布平台,提供本脚本的备用安装页面 | 点击“安装此脚本”,再到油猴弹出的页面确认安装 |
| OpenUserJS | 另一个用户脚本发布平台,也提供本脚本 | 可作为备用安装入口,点击“Install” |
| GitHub 项目仓库 | 存放源代码、更新记录,并通过 Issues 收集问题 | 想查看实现或反馈问题时再打开,无需下载整个仓库 |
| 这篇博客 | 使用教程 | 按下文步骤操作即可 |
优先使用本站脚本安装入口,无需访问 Greasy Fork 或 OpenUserJS;三个入口任选一个即可,不需要重复安装。 本站版保留相同的脚本名称和功能,脚本下载与更新地址均指向 tzblog.tech,安装按钮通过 Tampermonkey 官方中转页唤起扩展。后续可在油猴管理面板中检查更新,本站发布更高版本后即可获取。
如果之前从其他平台安装过,想改用本站更新,请通过本站链接重新安装,并检查油猴中该脚本的更新地址是否已指向 tzblog.tech;若仍保留旧平台地址,可删除旧脚本后从本站重新安装,最终只保留一份启用的课表脚本。
前言
2025 年 9 月开学前,有一天和 dalao 吃饭时聊到课表。他说 ZJU 本部已经有人写了脚本,可以把课表导入手机日历。我想到 iZJU 的 PS 也有“打印机友好界面”,既然课表已经能整理成网页,是不是也能转成日历文件?于是就有了这个工具,开发过程中使用了 Cursor 和 Codex。
平时用 iZJU 小程序、支付宝等工具查课表很方便,但我也希望在常用日历里同时看到课程、会议和个人安排。.ics 是日历应用常用的交换文件格式;导入后,还可以通过对应账户把课程同步到手机。
- 脚本支持中英文课表标签,只读取 PS 的“列表查看”课表。功能和校历适配范围以 项目说明 为准。
- 导出的文件是当时课表的一份副本。之后 PS 上的选课、退课或调课不会自动更新到日历,需要重新导出并处理旧日程。
- 我此前在 25 级 ZJUI 的课表上使用未遇到问题,但仍请在导入后核对课程日期、时间、地点,尤其是单双周、节假日和补课安排。
2026 年更新与旧版迁移
脚本已添加 2026—2027 学年校历相关适配,包含寒假、节假日及调休等处理。新学期使用前,请先在油猴中检查更新;具体支持范围请查看 更新记录。
如果你安装过 0.3.8 或更早版本,且旧脚本名称中是“ZJU”而非“iZJU”,请在油猴管理面板中删除旧脚本,再安装本文链接中的脚本。这里删除的是旧课表脚本,无需卸载 Tampermonkey 扩展。 安装或更新后,请刷新 PS 页面。
新学期进入课表后,记得选择目标学期并点击 “Filter / 筛选”,等待课表加载完成再导出,避免读到空表或未刷新的内容。

从零开始安装和导出
以下以电脑端 Chrome / Edge 为例。建议先在电脑上完成导出和导入,再通过日历账户同步到手机。
1. 安装 Tampermonkey 扩展
打开 Tampermonkey 官网,选择你正在使用的浏览器,按页面指引安装扩展。安装成功后,可在浏览器的扩展菜单中找到 Tampermonkey。
2. 允许扩展运行用户脚本
在浏览器地址栏输入扩展管理页地址并打开:Chrome 是 chrome://extensions/,Edge 是 edge://extensions/。这些是浏览器内部地址,需要复制到地址栏打开。
找到 Tampermonkey → 详情,如果有“允许用户脚本”(Allow User Scripts)开关,将其打开;如果没有该开关,则按当前浏览器及油猴的提示开启扩展管理页的“开发者模式”。权限入口随版本变化,参见 Tampermonkey 官方说明。
下面的截图供定位参考,实际名称和位置以你的浏览器界面为准。


3. 安装课表脚本
- 点击 通过 Tampermonkey 安装本站脚本。如果使用备用渠道,则打开前面列出的 Greasy Fork 或 OpenUserJS 页面,再点击安装按钮。
- 浏览器会打开 Tampermonkey 的安装确认页,确认名称为 PS Calendar to ICS (iZJU),点击“安装”。
- 打开 Tampermonkey 管理面板,确认该脚本已启用。如果之前已打开 PS,请刷新页面。
如果点击安装入口后停留在 Tampermonkey 中转页,或官网无法访问,可以打开 Tampermonkey 管理面板 →【实用工具】→【从 URL 安装】,粘贴 https://tzblog.tech/assets/userscripts/ps-calendar-to-ics.user.js 后安装。原始 .user.js 直链在部分浏览器中会直接下载文件,下载完成并不代表已经安装。
4. 在 PS 中导出课表
- 登录系统:在安装了油猴和脚本的同一个浏览器中,打开 PeopleSoft 选课系统 并登录。脚本也支持通过学校 WebVPN 网页入口访问 PS。
- 进入课表:选择【学期选课】→【我的每周课程表】,确认目标学期。
- 加载列表:切换到【列表查看】,点击【Filter / 筛选】,等待课程列表显示完整。不要停留在“每周日历”视图。
- 导出文件:点击页面右上角的【导出 ICS】,保存下载的
.ics文件。 - 导入并核对:按下一节的方法导入日历,检查课程是否与 PS 一致。
如果想按下面的中文截图操作,可先把 PS 切换为中文。登录页右上角显示“English”时,通常表示点击它会切换到英文,而当前是中文界面;脚本本身支持中英文标签。




导入日历应用
建议为每个学期新建一个专门的课表日历,例如“2026 秋冬课表”,再把文件导入其中。这样可以单独设置颜色、隐藏课表,后续更新时也更容易清理旧课程。
Outlook
- 在电脑浏览器打开 Outlook 日历,登录你准备同步到手机的账户。
- 点击【添加日历】→【创建空白日历】,创建本学期的课表日历。
- 再进入【添加日历】→【从文件上传】,选择下载的
.ics文件。 - 将导入目标设为刚创建的课表日历,点击【导入】。
不同账户的菜单名称可能略有差别,详见 Outlook 官方导入说明。
Google 日历
- 在电脑浏览器打开 Google 日历,登录目标账户。
- 在左侧【其他日历】旁点击“+”,选择【创建新日历】,创建本学期的课表日历。
- 打开【设置】→【导入和导出】→【导入】,选择
.ics文件。 - 在“添加到日历”中选择刚创建的课表日历,点击【导入】。
脚本导出时使用 Asia/Shanghai(北京时间)。在国内使用时,可在 Google 日历设置中检查显示时区是否为上海;这不是导入文件时必须选择的一个选项。详见 Google 官方导入说明。
Apple 日历(在 Mac 上导入)
- 打开 Mac 自带的“日历”应用,新建一个课表日历。如果需要同步到 iPhone,请将它建在 iCloud 账户下,而不是“在我的 Mac 上”。
- 选择【文件】→【导入】,选中
.ics文件;也可以双击该文件打开导入窗口。 - 选择刚创建的课表日历,确认导入。
这是 macOS 日历应用的操作步骤。仅使用 iPhone 的同学,可以先通过电脑网页版 Outlook 或 Google 日历导入,再按下一节添加账户。Mac 的具体操作参见 Apple 官方说明。
其他日历应用
如果应用支持导入 iCalendar(.ics)文件,也可以尝试使用。导入入口和重复日程处理方式因应用而异,请先导入到单独的课表日历中核对。
同步到 iPhone
完成导入后,需要让 iPhone 访问存放课表的同一个日历账户。手机上只安装邮箱 App,并不代表系统日历已经添加了这个账户。
- 如果课表已导入 iCloud 日历,在 iPhone 上登录同一个 Apple 账户,并在 iCloud 设置中开启“日历”同步。
- 如果课表在 Outlook 或 Google 中,打开【设置】→【App】→【日历】→【日历账户】→【添加账户】。旧版 iOS 的入口可能直接位于【设置】→【日历】→【账户】。
- 选择对应账户类型并登录。学校 Microsoft 365 邮箱通常选择 Microsoft Exchange;个人微软账户选择 Outlook.com;Google 账户选择 Google。登录后确认已开启“日历”同步。
- 打开 iPhone“日历”App,点击底部【日历】,勾选刚才创建的课表日历,等待同步完成。
- 如需上课提醒,检查课程事件的提醒设置,以及系统是否允许“日历”发送通知。能看到课程,并不等于已经设置了提醒。
账户设置可参考 Apple 官方说明。
常见问题与使用边界
页面没有“导出 ICS”按钮怎么办?
先确认当前浏览器已安装并启用 Tampermonkey 和课表脚本,且已允许运行用户脚本;然后确认进入的是 PS 的“列表查看”页面。安装或更新后刷新页面,再点击“Filter / 筛选”加载课表。
选课或调课后,手机日历会自动更新吗?
不会。账户同步会把你导入的日程同步到手机,但它不会重新读取 PS。课表变化后,需要重新导出 .ics 并导入。
重新导入前,请先处理旧课程,避免重复。若此前创建了只存放本学期课程的专用日历,可以确认其中没有其他日程后,删除旧课表日历、重新创建并导入;不要直接删除混有个人安排的日历。
需要全程使用代理吗?
不需要把代理作为导出的必要条件。安装时需要能访问扩展商店和脚本站点,使用时需要能正常登录 PS。校外访问学校系统时,按学校提供的 WebVPN 等方式连接即可。
按照 项目的数据与连接说明,脚本在浏览器本地读取课表并生成文件,不主动向第三方服务上传课程数据。之后将文件导入 Outlook、Google 或 iCloud,则会把这些日程保存到你选择的日历服务中。
时区或其他学校的 PS 系统能直接改吗?
普通使用无需修改脚本。当前导出时区为 Asia/Shanghai;人在其他时区时,日历可能会按当地时区显示同一事件,应先检查日历的显示设置,不要为了调整显示而直接改脚本中的时区。
脚本中的 @match 只决定在哪些网址运行。给其他学校的 PeopleSoft 地址添加匹配规则,并不代表已适配其页面结构、日期格式或校历,需要另行检查和修改解析逻辑。
如果发现漏课、日期偏移或补课安排不一致,欢迎到 GitHub Issues 反馈,说明脚本版本、目标学期,以及 PS 与导出结果的具体差异。
