介紹#
最近面臨秋招季,大量企業進入校園宣講,但並不是所有宣講的企業都是自己想去的,每次查看哪些企業想去都要重新打開學校官網,有一點麻煩,因此我想了一個辦法,在 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 訂閱,最後輸入鏈接即可