从学校的网站导入课程到日历总是有这样或那样的不完美:
- 清华没有直接提供 iCal,我不知道第三方 app 是否支持导入英文课程名,以及英文的上课地点)
- 你可能希望上课地点特别详细(可以导航的地步)
- 希望自定义上课前的提醒时间(清华的只要 15 分钟,在美国上学可能需要半小时,如果选择步行)
此外,你还可能希望自己可以编辑单个 instance,例如由于调休或休假而取消等,或者生病而缺勤,或者想要保留退课前上的一次课程,但之后的就不用再出现了。
我四年间断断续续用了好几种办法管理我的学术日历,从自己尝试写 app (后来放弃,工作量太大了,转到 Exchange + Outlook 强力组合),到 VBA (Outlook),现在终于沉淀了一个 PowerShell 脚本出来,高度可定制地创建和追踪学术日历事件。支持:
- 交互式创建课程和输入上课时间信息(多个不同的 pattern,每个可以 override 一些属性)
- 信息使用的对象模型可以被序列化和反序列化
- 通过 Outlook 对象模型创建日历事件
- 建立日历事件和课程对象之间的联系,退课之后可以批量删除
- 当然也可以取消这两者之间的联系
你可以 在我的这篇中文博文中了解更多 或者 转到 GitHub
以下是两张用这种方法管理的日历截图:

