intro#
最近面临秋招季,大量企业进入校园宣讲,但并不是所有宣讲的企业都是自己想去的,每次查看哪些企业想去都要重新打开学校官网,有一点麻烦,因此我想了一个办法,在 GitHub 上托管一个日历订阅,每次查看官网把想去的招聘会的信息添加至 GitHub,就可以实现在日历软件上自动更新,还可以分享给一同求职的朋友,避免重复打开重复查看。
日历订阅#
URL 订阅功能是大多数日历软件都支持的,华为日历等少数软件不支持,但也可以通过下载第三方日历软件实现,当链接里面的内容发生了修改,日历软件也会自动更新,因此我只需要时不时去宣讲官网看看有哪些心仪的企业要来学校宣讲,然后上传至 GitHub 托管,所有使用了这个分享链接的朋友都可以看到新的企业的信息
GitHub 托管#
下面是实操教学
- 新建仓库,在 GitHub 上新建一个仓库,在
Repository name *
中填入自己喜欢的名字,最好是英文名,Description
可自行填入描述,也可以不填,再点击下方的Create Repository
即可
- 自述文件可以自行写,我这里就不创建了,直接演示写日历文件
4. 在下面的Edit
框中输入如下格式的文件,在Name your file
中输入文件名,需要以ics
格式结尾,例如my_calendar.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Corp//iCalendar 2.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:My Calendar
BEGIN:VEVENT
UID:12345
DTSTAMP:20230901T120000Z
DTSTART:20230910T100000Z
DTEND:20230910T120000Z
SUMMARY:会议1
DESCRIPTION:讨论项目进展
LOCATION:会议室A
END:VEVENT
END:VCALENDAR
- 解释一下代码
- BEGIN:
VCALENDAR
和END:VCALENDAR
标签表示整个 iCalendar 文件的起始和结束。 VERSION
指定了 iCalendar 规范的版本。PRODID
标识了生成 iCalendar 文件的应用程序。CALSCALE
指定了日期的规模,通常是 GREGORIAN。METHOD
指定了处理日历数据的方法,通常是 PUBLISH。X-WR-CALNAME
是日历的名称。
在这里面只需要修改日历名即可
- 在
BEGIN:VEVENT
和END:VEVENT
之间是一个事件的定义。事件包括以下属性:
UID
是事件的唯一标识符。DTSTAMP
是事件创建或最后修改的时间戳。DTSTART
是事件的开始时间。DTEND
是事件的结束时间。SUMMARY
是事件的名称或标题。DESCRIPTION
是事件的描述。LOCATION
是事件的地点。
这个示例只包含一个事件,但您可以根据需要添加更多事件,只需重复 BEGIN:VEVENT
到 END:VEVENT
之间的块,并为每个事件设置相应的属性。其中UID
也需要修改,每个事件只有一个UID
进阶#
上面的文件已经能够正常使用了,但是还存在两个问题需要优化
- 时区,上面的代码
UTC
默认为协调世界时,与我们所在的东八区有 8 个小时的差距,因此需要把时间改为东八区,修改如下
DTSTART;TZID=Asia/Singapore:20230910T180000 # 使用Asia/Singapore时区
DTEND;TZID=Asia/Singapore:20230910T200000 # 使用Asia/Singapore时区
- 插入链接和图片,部分日历软件允许插入链接和封面,我们可以利用此功能插入该企业的官网或网申通道和公司的宣传图,修改如下
DESCRIPTION:<html><img src="https://example.com/image.jpg" alt="Event Image"><br>讨论项目进展</html> \n请查看更多信息:<a href="https://example.com">链接到更多信息</a>
其中src
后面的链接表示图片的链接,href
后面的链接表示想要插入的链接
导入#
文件编辑完毕以后点击Commit changes
即可,最后打开仓库的源码,复制顶部的链接,把blob
改为raw
即可导入到日历软件,以后想增加内容时点击右侧的编辑按钮即可编辑。
想要导入日历,我以谷歌日历为例,其他日历软件同理,打开日历,设置,选择添加日历,通过 URL 订阅,最后输入链接即可