去年,我为您带来了19天的2019年新(给您)生产力工具。今年,我采用了不同的方法:使用您可能会使用的工具构建一个环境,使您在新的一年中提高生产力或可能尚未使用。
使用khal和vdirsyncer跟踪您的日程安排
疼痛处理,并寻找良好的工具总是很困难的。 但是自从去年将日历列为我的“失败”之一以来,我取得了一些进步。当今日历最困难的事情是,现在几乎总是需要以某种方式在线共享日历。 两种最受欢迎的在线日历是Google日历和Microsoft Outlook / Exchange。 两者都在公司环境中大量使用,这意味着我的日历必须支持一个或两个选项。

Khal是基于控制台的日历,可读取和写入VCalendar文件。 它相当容易配置,但是不支持与其他应用程序同步。
幸运的是,khal与vdirsyncer一起使用, vdirsyncer是一个漂亮的命令行程序,可以将在线日历(和联系人,我将在另一篇文章中讨论)同步到本地驱动器。 是的,这还包括上传新事件。

Vdirsyncer是Python 3程序,可以通过软件包管理器或pip安装。 它可以同步CalDAV,VCalendar / iCalendar,Google日历和目录中的本地文件。 由于我使用Google日历,因此我将以它为例,尽管这不是最简单的设置。
为Google设置vdirsyncer是有据可查的 ,因此这里不再赘述。 重要的是要确保您的同步对的设置方式可以将Google日历设置为解决冲突的“赢家”。 也就是说,如果同一事件有两个更新,则需要知道哪个更新优先。 这样做是这样的:
[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 configure进行初始设置。

现在,运行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时 ,每个日历将被着色以区别于其他日历,并且当您添加新条目时,它将具有更具描述性的名称。

设置有些棘手,但是一旦完成,带有vdirsyncer的khal可以为您提供一种简便的方法来管理日历事件并使它们与您的在线服务保持同步。
翻译自: https://opensource.com/article/20/1/open-source-calendar