我是一名 KDE 用户,多年来,我一直在 Plasma 桌面上的探索之旅中。 如果您在公共场合问我,我可能会声称我了解关于我每天使用的桌面的所有知识。 但事实上,我实际上只触及了表面。 似乎每天我都会学到一个新的 KDE 技巧,要么让我的生活更轻松,要么更有趣,而我最新的发现是 konsolekalendar
命令,它让您可以从终端查看和管理 iCal 日历。
Akonadi
Akonadi 项目是一个低级 KDE 框架,可帮助 Plasma 桌面跟踪所有个人信息管理器 (PIM) 数据。 它主要面向开发人员,包含许多库,允许程序员创建应用程序,通过这些应用程序您可以访问您的联系人、笔记、电子邮件、日历等等。 Akonadi 中包含一些终端命令,例如 akonadictl
用于启动和停止 Akonadi 服务,但它们主要用于故障排除。 但是,konsolekalendar
是一个面向用户的命令,它为您提供对 Kontact 套件中所有数据的完全访问权限,包括 KMail、Notes 和 Calendar。
如果您正在运行 KDE 的 Plasma 桌面,那么您已经安装了 Kontact 套件。

(Seth Kenlon, CC BY-SA 4.0)
您也已经安装了 Akonadi 及其工具,因此您进行基于终端的日历管理所需的一切都已就绪!
从终端查看您的日历
感谢 NextCloud 和 Radicale 等项目,您可以托管自己的 iCal 日历服务,或者您可能已经拥有流行的提供商(例如,Google)的 iCal 帐户。 当您使用 Kontact 进行日历管理时,您会订阅日历对象(Akonadi 术语中的“集合”)。 当您更新本地日历时,更改将发送回您的 iCal 服务器,以同步您的日历服务器和客户端。
无论您是否使用过 Kontact 的日历部分,您在 Kontact 中都有一些默认的日历对象。 您有一个名为个人日历和生日和周年纪念日。
以下是如何显示当日日历(默认为个人日历)
$ konsolekalendar
Date: Saturday, January 15, 2022
10:00 AM - 11:00 AM
Summary: Covid booster shot
UID: 8d8a1e38-c88c-4d84-99e5-23...
----------------------------------
Date: Saturday, January 15, 2022
12:00 PM - 01:00 PM
Summary: Lunch
UID: 7aa89a...
----------------------------------
Date: Saturday, January 15, 2022
01:00 PM - 04:45 PM
Summary: Afternoon coding
UID: 9cde38b...
----------------------------------
Date: Saturday, January 15, 2022
06:00 PM - 10:00 PM
Summary: Planescape game
UID: c73f7e98-722f-48a2-8006-66...
----------------------------------
添加事件
要查看您已订阅的所有日历,请使用 --list-calendars
选项
$ konsolekalendar --list-calendars
----------------------------------
3 - (Read only) Birthdays & Anniversaries
11 - Personal Calendar
60 - (Read only) Open Invitations
61 - (Read only) Declined Invitations
66 - Dnd
67 - Work
68 - Museum
左侧的数字是日历 ID。 要将事件添加到特定日历,请使用 --calendar
选项,后跟日历 ID
$ konsolekalendar --add --calendar 66 \
--date 2022-01-16 \
--time 20:00 --end-time 23:59 \
--summary "Another game" \
--description "Remember to bring dice" \
Success: "Another game" inserted
删除事件
您也可以删除事件。 每个事件都有一个唯一的 ID (UID),在每个事件列表的底部提供
$ konsolekalendar --list
Date: Saturday, January 15, 2022
06:00 PM - 10:00 PM
Summary: Planescape game
UID: c73f7e98-722f-48a2-8006-66aa8ddcf789
要删除事件,请使用 --delete
选项以及 --uid
选项
$ konsolekalendar --delete \
--uid c73f7e98-722f-48a2-8006-66aa8ddcf789
终端中的 Akonadi
您使用 konsolekalendar
所做的一切都会立即在 Akonadi 中执行,并同样快速地反映在 Kontact 本身中。 使用一个并不意味着您必须放弃另一个。 感谢他们共享的 Akonadi 后端,两者查看和编辑相同的数据。 konsolekalendar
命令正在开发中。 未来的计划包括与 Kontact 的 Notes 和 Journal 部分集成,并且还有比本文涵盖的更多的选项可用。 如果您正在使用 KDE 桌面,请尝试 konsolekalendar
并体验适用于您终端的 PIM!
2 条评论