6 个 Google 日历的开源替代方案

938 位读者喜欢这篇文章。
Poll: Upcoming open source conferences

Dafne Cholet。CC BY-SA 2.0。

 

对于我们许多人来说,日历是我们的命脉。虽然有些人可以使用挂历或纸质日程本来安排他们的日程,但我们很多人已经将时间安排的管理过程交给了数字日历。

大多数主要供应商生态系统都提供某种日历解决方案,可以在设备之间同步。其中,Google 日历可能是最流行的。对于许多人来说,它非常好用,可以轻松地跨多台计算机和移动设备跟踪他们的日程安排,并与需要协调的其他人共享适当的信息。

然而,与无数其他工具一样,您不必为您的日历需求使用专有的托管解决方案。可能有一个开源项目适合您。但在我们深入探讨之前,让我们先看看日历实际上是什么。

互联网日历和日程安排

如果您正在使用像 Google 日历这样的工具,您实际上正在使用两个独立的工具:用户界面(网站或移动应用程序)和日历服务器。日历服务器生成事件、接受邀请,并在您安排的事件即将发生时向您发送提醒。

iCalendar 格式(与 Apple 的 iCal 应用程序无关)的事件是一个简单的文本文件。它是一种非常简单的格式。这是一个基本事件的示例

BEGIN:VCALENDAR
PRODID:Seth
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
CREATED:20200511T114136
DTSTAMP:20200511T114136
LAST-MODIFIED:20200511T114136
UID:VE3HK1CEFCK7O7HUSNUM8X
SUMMARY:Example event
CLASS:PUBLIC
STATUS:CONFIRMED
DESCRIPTION:This is an example ICS file.
DTSTART:20200520T200000Z
DTEND:20200520T203000Z
END:VEVENT
END:VCALENDAR

如果您将该文本复制并粘贴到以 .ics 结尾的文件中,您可以将其导入到您的日历中,它将显示在您的日程安排中。一个好的日历应用程序会自动执行该过程,因此您很少意识到它正在发生,但这确实是共享日历的表面魔力的全部。

收到电子邮件中的 .ics 文件邀请您参加活动或会议是很常见的。如果您的电子邮件客户端没有自动为您管理此格式,那么您可以下载并将其导入到您选择的日历应用程序中。您甚至可以通过运行 CalDAV 服务器来让其他人查看和编辑您的约会,CalDAV 服务器是 WebDAV 的扩展,WebDAV 是一种通过 HTTP 编辑远程文件的协议。

了解任务是如何划分的之后,您必须决定哪些功能对您来说至关重要。如果您只是在寻找一种快速简便的方式与他人共享日历事件,那么您真正需要的只是一个符合 iCalendar 标准的日历应用程序。如果您希望允许其他人查看和编辑您的日历,那么您还需要 CalDAV 服务。

Nextcloud(桌面端,网页端)

 

Nextcloud 是您在外的家,或者至少是您在办公桌外的工作区。它是您自己的个人云存储、文本编辑器、照片库、文件共享、日历应用程序等等。由于 Nextcloud 包含 CalDAV 组件,您可以创建、导出、导入和订阅 iCalendar 事件和订阅源。Nextcloud 的日历提供了您期望从数字日历获得的所有常用选项:颜色编码、私人和公共事件、导入和导出 .ics 文件、重复事件、位置标签、描述等等。

您不必使用 Google 日历来接收和接受来自朋友和同事的邀请,或与他人共享您自己的日历。更好的是,您甚至不必在所有设备上都使用 Nextcloud。您可以在桌面上使用 Nextcloud,在手机上使用内置日历,在笔记本电脑上使用完全不同的东西。由于开放规范,它们都是兼容的。

您可以将 Nextcloud 安装在您自己的服务器或托管帐户上,或者您可以加入现有 Nextcloud 提供商的服务器,或者付费购买您自己的私有实例。

Thunderbird(桌面端)

 

Thunderbird and Lightning

Firefox 的创建者还维护着 Thunderbird 电子邮件客户端,这是一个适用于 Linux、Windows 和 Mac 的桌面应用程序,用于在 Web 浏览器之外阅读电子邮件。与 Firefox 一样,您可以使用插件自定义 Thunderbird,最流行的插件之一是 Lightning,一个日历组件。Lightning 允许您创建事件,甚至将它们发布到 CalDAV 服务(如果您正在使用服务,例如 Nextcloud)。它还支持为您的不同日历订阅源进行颜色编码,具有多种视图,甚至还有一个侧面板,方便您在浏览电子邮件时快速参考。

Thunderbird 的优势在于它的跨平台性,除了它的插件架构之外。如果您在一天中使用不同的操作系统,您可以通过在所有操作系统中使用 Thunderbird 来为自己提供一点 UI 稳定性。您无法让 Windows 或 macOS 改变它们的运行方式,但至少您可以确保无论您使用哪台计算机,至少您的电子邮件和日历都将完全相同。

Evolution 和 Kontact(桌面端)

 

Evolution

opensource.com

如果您在任何现代 Linux 发行版上使用过桌面电子邮件客户端,那么您可能遇到过 GNOME 的 Evolution。除了巧妙地处理大量电子邮件外,Evolution 还具有日历组件。该日历符合 iCalendar 标准,因此您可以导入和导出 iCalendar 事件,并且您还可以订阅 CalDAV 订阅源。因为它使用 iCalendar 规范,所以它具有熟悉的选项,例如重复事件、描述、位置等等。

Evolution 日历提供了几种查看您安排的事件的方式。通常的周视图和月视图可用,但您也可以查看“工作周”(省略周末,这确实只适用于一部分工作人员)、日视图,以及仅包含任务列表而没有空白空间的视图。它还在其电子邮件窗格中为当天提供了任务列表,因此您不必点击到日历即可查看稍后会发生什么。

对于 KDE 用户,Kontact 包含 Korganizer,这是一个类似于 Evolution 中日历组件的组件。

Etar(移动端)

 

Etar

实际上,股票 Android 日历本身就是开源的,因此您可能已经在移动设备上使用开源客户端来管理您的日历。但是,并非所有设备都附带该日历,因此您可以从 F-Droid 存储库下载类似的日历,或在 GitHub 上查看 源代码。它使用与 Android 本身相同的视觉风格,因此它看起来和感觉上与您的移动操作系统其余部分完全集成。它具有月、周、日以及仅包含您的每日议程的视图。它符合 iCalendar 标准,因此您可以共享日历、导入和导出 .ics 文件,并订阅 CalDAV 订阅源。

AgenDAV(网页端)

 

AgenDAV

在现代世界中,我们许多人都依赖于能够从任何地方访问我们的日历,无论我们碰巧手头有什么设备,并且很少有东西可以替代可靠的 Web 日历。虽然有很多 Web 工具可以从 CalDAV 中提取数据,但我最喜欢的是 AgenDAV,它具有类似于 Google 日历的外观和感觉。与 Nextcloud 不同,没有任何 AgenDAV 主机可以加入。如果您想运行 AgenDAV 服务器,您必须自己托管和安装它。然而,与 Nextcloud 不同的是,AgenDAV 仅仅 是一个日历,因此您不会遇到一堆您可能无意使用的 Web 应用程序带来的额外复杂性或臃肿。

AgenDAV 使用 CalDAV,并且使用得非常流畅。它具有与其他 CalDAV 日历接口所需的所有 CalDAV 功能,以及我们大多数人期望从日历 Web 应用程序获得的其他功能(如颜色编码)。


这些远非您可能考虑用于使用开源方式维护日历的唯一工具。还有很多其他工具提供他们自己的功能选择。您使用哪些开源工具来维护日历?您是否 使用 org-mode 和 Git 拼凑了一个解决方案?或者您是否做了更具创意的事情?请在下面的评论中告诉我们!


编者注:本文最初发表于 2016 年,并已更新了新信息。

Jason Baker
前红帽员工。现在是一名顾问和有抱负的企业家。地图爱好者、创客,以及开源桌面和自托管软件的热情安装者。
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算行业工作,而且经常同时工作。

11 条评论

我在 Emacs 中使用 org-mode。它的日记功能很棒,但说实话,我并没有真正使用那么多日历,而且我的日历通常不需要与任何其他人的日历保持同步。

Zimbra 是我在以前的工作中使用的,它的工作方式完全符合您的预期;电子邮件、日历,以及贯穿始终的集成。强烈推荐(并且是开源的,尽管 Zimbra 也有一个“开放核心”模型)。

我有兴趣包含一些关于终端选项的内容,但我对它们不够熟悉,而且我不想把人们引向一些我不了解的东西。我对在终端使用日历的体验几乎可以用 `cal` 来概括。Emacs org-mode 可以与远程日历同步吗?或者,也许可以与另一个本地日历同步,然后您可以使用无头 CalDAV 工具在 cron 中与之同步?

回复 作者 sethkenlon

有一些技巧可以利用 CalDAV;我还没有研究过,因为我还没有需要该功能。我一直想尝试一下。

回复 作者 Jason B

自托管的一个选项是 ownCloud/Nextcloud。

由于我在不同的系统中使用日历,因此我在日历方面遇到了困难。

当我在家时,我通过桌面端运行我的日历(Linux 上的 Lightning/Evolution/kOrganizer,Windows 10 和 Android 上的内置/默认应用程序)。

但是,当我在工作时,我使用 Web 访问所有内容(电子邮件、日历、文件等)。

所以我使用 Google 作为我的主要日历,并与桌面应用程序甚至 Outlook.com 共享,因为它在所有环境中都可用,并且与在线电子邮件/等等集成良好。缺点是必须配置我的多个日历并将它们设置为读写(这并不总是有效)。

将 ownCloud/Nextcloud 放在公共可访问的地方并尝试消除我对 Google 的依赖的想法非常诱人。我只是太紧张,不敢把我的大部分生活都放到“野外”。

真的!如果您习惯于从命令行安装东西,Owncloud 非常容易。我认为您必须处理的唯一主要问题是检查主要升级后的任何问题,因为有时您可能会发现一些问题。但这发生在任何开源软件上。

然后,与 LetsEncrypt(免费 SSL)一起,您基本上拥有了最可靠和最好的系统。一个不会自愿与任何人分享您的数据或将其出售给广告商的系统。

回复 作者 dragonbite

我在服务器上使用 NextCloud,日历被视为一流的(在 ownCloud 下从来没有这样过)。我将其与桌面上的 Thunderbird/Lightning 和 android 上的 Etar(来自 f-droid)配对使用。非常棒的组合!

很久以前,我使用 ownCloud 作为自托管日历提供商。
后来,我使用了 radicale:http://radicale.org
对于日历客户端,在 PC 上我使用 Thunderbird 和 Lightning 日历插件(现在是内置的)。在 Android 上,它本身不支持 CalDAV,我使用了付费(不幸的是)CalDAV 同步适配器,但它工作良好并与任何日历应用程序集成。看起来 F-Droid 中现在有一个免费的同步适配器。
我一直无法获得“推送”同步的解决方案,尽管我尝试过,并且有各种可用的选项,例如 z-push。它们都要求大量的设置,或者一个我根本无法自己解决的设置过程。这意味着客户端必须定期轮询日历(例如,每 15 分钟)才能彼此保持同步。
那是 3 年多前的事了。情况可能已经改变了。

我多年来使用的东西有点像复古日历,Remind。在 Fedora 上,获取 remind 和 remind-gui 以获得可视化的交互方式来输入我需要记住的事情。我不想要任何为我将事情放入日历的东西,而且我不想要在我最不期望和想要它们的时候出现自发通知。
我总是从命令行使用它。
在终端中键入 tkremind,就会弹出一个日历,可以输入项目。您可以输入一次性或重复性事件。对于像牙医预约之类的事情,我会创建一次,然后只需编辑下一次预约的日期和时间。
在命令行中,键入“remind -c+4 -w85,0,0 /home/me/.reminders”会打印出接下来 4 周的日历,宽度为 85 列。我为此创建了一个别名,使其易于使用,然后可以发送到我可以打印的文件。
.reminders 是默认日历,但您可以创建其他日历,例如 .work 并单独使用它们。
当我需要 remind 中的内容时,我就拥有它。当我不需要时,它不会打扰我。

呵呵,我一直都在使用 date 和 cronie

我是 ownCloud 的忠实粉丝,用于我的个人事务。对于更像企业的功能,Tine2.0 通过 *DAV 和 ActiveSync(尽管该连接器在美国并非完全 *合法*)提供日历、任务、联系人(私人和共享)。项目管理/人力资源/资产和库存/销售 CRM 是贡献的模块,自然它也支持 WebMail(POP/IMAP,无论什么)。Web 前端看起来像 OutLook Web Services,并且它与 iStuff、Droid(使用文章的 DAV 连接器)配合良好,而 OutLook 根本不知道它不是在与 Exchange 通信。

如果您需要这样的东西,有一个 Appliance(尽管看到这一点,我大约在十分钟内在 Raspberry Pi 上运行了它)。

有一些 Web 界面调整非常明显地带有东欧工作流程的痕迹。

我将其部署为 Exchange/GStuff 杀手。

大多数情况下,它只是运行并且不会打扰我,这转化为:“它就是工作,我的用户不会打扰我。”

有 eGroupware,但我无法忍受丑陋的 UI(而且用户抱怨)。

用于 Outlook 日历与几乎所有东西(如 Owncloud)同步的最佳 Outlook 插件是在 Sourceforge 上维护的 Outlook CalDav Synchronizer。自从该项目发布的第一周以来,我就在客户端站点上的 Owncloud 上使用了它。

https://sourceforge.net/projects/outlookcaldavsynchronizer/

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.