前言

刚结束完选课,马上就要开始上课了,但这个日程一直是个痛点,刚换手机也还不太熟练日程的管理,索性多了解了一下这里大概汇总了几种解决方案。

首先会根据日程的导出设置分成了从课程网站导出和其他方式导出,导入这里主要讲解了 iOS 的方法,按理说 Android 只会更简单。最后说几个一体化的解决方案,也就是课表 APP。

内容会有一些不完整,欢迎补充~

ics 文件格式

ics 文件是一个纯文本的文件,有一些 core object,比如 DTSTAMPDTSTARTDTEND 等等 1

课表日程导出

从课程网站导出

首先进入 SEP - 选课系统

在选择课程 - 选择课程 - 已选择课程中点击加入课程网站

随后进入 SEP - 课程网站中

此时点击左侧的日程即可找到所有课表的信息

根据需要点击发布(私有)即可得到 ics 文件和订阅链接

picture 11

或者发布(公开),可以直接下载 ics 文件,支持 iCal 导出

picture 12

(如果你对我的课表感兴趣,可以试试这几个链接 233)

油猴插件(推荐)

另一个方法是通过一个学长编写的油猴插件实现导出 ics 文件,因为从课程网站导出的时候,课程是分开的,也就是每一小节课程成为了一个日程,而不是一个整体,可能会造成多次的提醒。

学长编写的脚本见 2,首先你需要在 Chrome 或者 Edge(任何你使用的浏览器)中安装油猴插件(Tampermonkey),然后点击这个链接 3 即可开始下载安装。

安装完成后,在选课系统 - 查看个人课表中,也就是 4 这个链接,即可看到插件,对于 2022 级雁栖湖研究生,按照如下方式配置即可。

picture 13

Wakeup 日程导出

Wakeup 这个 APP 是支持导出 ics 文件的,但是不幸的是 iOS 版本导出是付费的,但是 Android 版本是免费的,那么你只需要有一个安卓设备即可。 ics 导入 iOS 日历可见下文。

课表导入(iOS)

这里主要是介绍 iOS 设备,因为很多 Android 设备早已支持了 ics 文件的导入,但是 iOS,并没有很好的开放该功能,甚至可以说非常 yaxi

这里大概学习到了两种方案

通过邮件导入

如果你已经使用过 iOS 的邮件功能,设置过邮箱,那么你可以直接通过 QQ 或者 微信 发送给手机一份 ics 文件,然后利用邮件转发给自己,这时候你点击一下附件的 ics 文件即可导入日历。

通过 AirDrop 导入

这个就比较简单了,直接把 ics 文件 AirDrop(隔空投送) 到另一个设备即可导入。

这里有个比较蛋疼的地方就是没法指定导入到的日历是哪个一个,因为一下子导入很多应该默认是第一个,当修改的时候只能修改当前选择的一个,而不是全部修改。

通过 Outlook 导入

如果你是 Windows 电脑,那么双击 ics 文件,或者打开 outlook 再导入即可,你需要在 iOS 设备下载 outlook 并登录账号,将 outlook 日历添加到日历中

通过订阅导入

目前没有发现很好的 ics 转换订阅链接的工具,或许过段时间有空我可以写一个?

更好的方案请见下一个标题。

那就向课程网站妥协了,把课程网站的订阅链接复制一下,在下面的添加订阅日历即可导入(我不确定这个订阅日历的更新情况是怎么样的,不知道链接失效了日程会不会失效,如果不失效的话或许这个转换只需一次性即可?)

picture 14

当然你也可以通过 iOS 内置的分享功能,也就是点日历旁边的 i 图标可以分享一个从 iCloud 导入的日历给其他人订阅。

通过 GitHub 存储自己的日程(推荐)

通过实验发现,由于课表本身是纯本文的形式,可以很方便放在 GitHub 上进行迭代更新。同时 GitHub Pages 可以让你的日程公开到互联网中,这样当你的课程有什么变动时,只需要更改 GitHub 上的 ics 文件即可。

方法很简单首先新建一个 GitHub 仓库,将仓库 pull 下来后,新建一个 docs 文件夹,将 ics 文件放在文件夹中,提交修改。我们假设这里的 ics 文件是 course-schedule.ics

然后按照下图点上 5 下即可 pub 你的日程。地址就是在方框中的地址后面加上你的文件名,例如这里应是 webcal://www.bj-yan.top/webcal/course-schedule.ics。(注意更改协议头为 webcal

picture 14

最后在你的设备上导入订阅日历即可。

课表导入(Windows)

双击打开 ics 文件,登录账户即可导入 outlook

其他课表导入方案

当然,这种方式就比较简单了,wakeup,超级课程表什么的 APP 都可以解决。但是我好像没找到对应的教务接口?不知道是不是我姿势错误,不过一共也没几个课,不如就直接手动一下呗。

最推荐的还是国科大在线了,反正慕课什么的也都得下,APP 里面就有课表,但是更新会有些延迟,估计得 1 天才能更新。

我个人还是比较喜欢系统日历,毕竟方便提醒,都是系统内置的功能管理起来也会方便许多。

Reference


  1. https://en.wikipedia.org/wiki/ICalendar ↩︎

  2. https://github.com/LinHeLurking/Sep_Calendar ↩︎

  3. https://github.com/LinHeLurking/Sep_Calendar/raw/main/sel.user.js ↩︎

  4. https://jwxk.ucas.ac.cn/course/personSchedule ↩︎