使用 khal 和 vdirsyncer 組織和同步你的日曆
去年,我在 19 天里給你介紹了 19 個新(對你而言)的生產力工具。今年,我換了一種方式:使用你在使用或者還沒使用的工具,構建一個使你可以在新一年更加高效的環境。
使用 khal 和 vdirsyncer 跟蹤你的日程
處理日曆很麻煩,要找到好的工具總是很困難的。但是自從我去年將日曆列為我的「失敗"之一以來,我已經取得了一些進步。
目前使用日曆最困難的是一直需要以某種方式在線共享。兩種最受歡迎的在線日曆是 Google Calendar 和 Microsoft Outlook/Exchange。兩者都在公司環境中大量使用,這意味著我的日曆必須支持其中之一或者兩個。
![khal calendar](/data/attachment/album/202001/23/150255b21edd6y5dwy2w2v.png "khal calendar")
Khal 是基於控制台的日曆,可以讀取和寫入 VCalendar 文件。它配置相當容易,但是不支持與其他應用同步。
幸運的是,khal 能與 vdirsyncer 一起使用,它是一個漂亮的命令行程序,可以將在線日曆(和聯繫人,我將在另一篇文章中討論)同步到本地磁碟。是的,它還可以上傳新事件。
![vdirsyncer](/data/attachment/album/202001/23/150301q5nna1atn6v51n15.png "vdirsyncer")
Vdirsyncer 是個 Python 3 程序,可以通過軟體包管理器或 pip
安裝。它可以同步 CalDAV、VCalendar/iCalendar、Google Calendar 和目錄中的本地文件。由於我使用 Google Calendar,儘管這不是最簡單的設置,我也將以它為例。
在 vdirsyncer 中設置 Google Calendar 是有文檔參考的,所以這裡我不再贅述。重要的是確保設置你的同步對,將 Google Calendar 設置為衝突解決的「贏家」。也就是說,如果同一事件有兩個更新,那麼需要知道哪個更新優先。類似這樣做:
[general]
status_path = "~/.calendars/status"
[pair personal_sync]
a = "personal"
b = "personallocal"
collections = ["from a", "from b"]
conflict_resolution = "a wins"
metadata = ["color"]
[storage personal]
type = "google_calendar"
token_file = "~/.vdirsyncer/google_calendar_token"
client_id = "google_client_id"
client_secret = "google_client_secret"
[storage personallocal]
type = "filesystem"
path = "~/.calendars/Personal"
fileext = ".ics"
在第一次 vdirsyncer 同步之後,你將在存儲路徑中看到一系列目錄。每個文件夾都將包含多個文件,日曆中的每個事件都是一個文件。下一步是導入 khal。首先運行 khal configure
進行初始設置。
![Configuring khal](/data/attachment/album/202001/23/150315rqkvktoof0pkkx1o.png "Configuring khal")
現在,運行 khal interactive
將顯示本文開頭的界面。輸入 n
將打開「新事件」對話框。這裡要注意的一件事:日曆的名稱與 vdirsyncer 創建的目錄匹配,但是你可以更改 khal 配置文件來指定更清晰的名稱。根據條目所在的日曆,向條目添加顏色還可以幫助你確定日曆內容:
[calendars]
[[personal]]
path = ~/.calendars/Personal/kevin@sonney.com/
color = light magenta
[[holidays]]
path = ~/.calendars/Personal/cln2stbjc4hmgrrcd5i62ua0ctp6utbg5pr2sor1dhimsp31e8n6errfctm6abj3dtmg@virtual/
color = light blue
[[birthdays]]
path = ~/.calendars/Personal/c5i68sj5edpm4rrfdchm6rreehgm6t3j81jn4rrle0n7cbj3c5m6arj4c5p2sprfdtjmop9ecdnmq@virtual/
color = brown
現在,當你運行 khal interactive
時,每個日曆將被著色以區別於其他日曆,並且當你添加新條目時,它將有更具描述性的名稱。
設置有些麻煩,但是完成後,khal 和 vdirsyncer 可以一起為你提供一種簡便的方法來管理日曆事件並使它們與你的在線服務保持同步。
via: https://opensource.com/article/20/1/open-source-calendar
作者:Kevin Sonney 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive