6 open source alternatives for Google Calendar

938 readers like this
938 readers like this
Poll: Upcoming open source conferences

by Dafne Cholet. CC BY-SA 2.0.

 

For many of us, our calendar is our lifeblood. While some people can get away with a wall calendar or a paper day planner to organize their schedule, a whole lot of us have turned the process of managing time allotments over to a digital calendar.

Most of the major vendor ecosystems provide some sort of calendaring solution which can sync across devices. Among them, Google Calendar is perhaps the most prevalent. For many people, it just works, making it easy to keep track of their schedule across multiple computer and mobile devices, and to share appropriate information with others with whom they need to coordinate.

As with countless other tools, though, you don't have to use a proprietary hosted solution for your calendar needs. There might just be an open source project that works for you. But before we dive in, let's take a look at what a calendar actually is.

Internet Calendaring and Scheduling

If you are using a tool like Google Calendar, you're actually using two separate tools: a user interface (the website or mobile app) and a calendaring server. The calendaring server generates events, accepts invites, and sends reminders to you when something you have scheduled is about to happen.

An event in the iCalendar format (no relation to Apple's iCal application) is a simple text file. It's a surprisingly simple format. Here's an example of a basic event:

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

If you copy and paste that text into a file ending in .ics, you can import it into your calendar and it will appear on your schedule. A good calendar app automates that process so you're rarely aware that it's happening, but that's really all there is to the apparent magic of sharing calendars.

It's not uncommon to receive an .ics file in an email inviting you to an event or meeting. If your email client doesn't manage this format automatically for you, then you can download and import it into your calendaring application of choice. You can even let other people view and edit your appointments by running a CalDAV server, which is an extension of WebDAV, a protocol for making edits of remote files across HTTP.

Knowing how the tasks are divided, you must decide what functionality is essential to you. If you're just looking for a quick and easy way to share calendar events with others, then all you really need is an iCalendar-compliant calendaring application. If you want to allow others to view and edit your calendar, then you need a CalDAV service as well.

Nextcloud (Desktop, Web)

Nextcloud is your home away from home, or at least your workspace away from your desk. It's your own personal cloud storage, text editor, photo gallery, file share, calendaring app, and much more. Because Nextcloud includes a CalDAV component, you can create, export, import, and subscribe to iCalendar events and feeds. Nextcloud's calendar offers all the usual options you'd expect from a digital calendar: color-coding, private and public events, importing and exporting .ics files, repeating events, location tags, descriptions, and so on.

You don't have to use Google Calendar to receive and accept invitations from friends and colleagues, or to share your own calendars with others. And better yet, you don't even have to use Nextcloud on all of your devices. You could use Nextcloud on your desktop, the built-in calendar on your phone, and something else entirely on your laptop. Thanks to open specifications, they're all compatible.

You can install Nextcloud on your own server or hosting account, or you can join an existing Nextcloud provider's server, or pay for a private instance of your own.

Thunderbird (Desktop)

Thunderbird and Lightning

The creators of Firefox also maintain the Thunderbird email client, a desktop application for Linux, Windows, and Mac for reading email outside of your web browser. Like Firefox, you can customize Thunderbird with plugins, and one of the most popular plugins is Lightning, a calendaring component. Lightning lets you create events and even publish them to a CalDAV service if you're using one (like Nextcloud). It also supports color coding your different calendar feeds, has a variety of views, and even has a side panel for quick reference when you're browsing your email.

The strength of Thunderbird, aside from its plugin architecture, is that it's cross-platform. If you use different operating systems throughout the day, you can grant yourself a little bit of UI stability by using Thunderbird across all of them. You can't make Windows or macOS change how they operate, but at least you can ensure that no matter what computer you're on, your email and calendar, at least, will be exactly the same.

Evolution and Kontact (Desktop)

Evolution

opensource.com

If you've used a desktop email client on any modern Linux distribution, then you've probably encountered GNOME's Evolution. In addition to deftly handling enormous amounts of email, Evolution also has a calendar component. The calendar is iCalendar-coant, so you can import and export iCalendar events, and you can also subscribe to CalDAV feeds. Because it's using the iCalendar specification, it features familiar options, such as repeating events, description, location, and so on.

The Evolution calendar offers several ways to view your scheduled events. The usual week and month views are available, but you can also view the "work week" (omitting the weekends, which admittedly only applies to a subset of workers), the day, and just a task list with no empty space. It also provides a task list for the current day in its email pane, so you don't have to click over to your calendar just to see what's coming up later on.

For KDE users, Kontact contains the Korganizer, a similar calendar component similar to the one in Evolution.

Etar (Mobile)

Etar

The stock Android calendar itself is actually open source, so you may already be using an open source client for your calendar on your mobile. However, not all devices ship with that calendar, so you can download a similar one from the F-Droid repository or check out the source on GitHub. It uses the same visual style as Android itself, so it looks and feels completely integrated with the rest of your mobile OS. It has views for the month, week, day, and just your daily agenda. It's iCalendar-compliant, so you can share calendars, import and export .ics files, and subscribe to CalDAV feeds.

AgenDAV (Web)

AgenDAV

In the modern world, many of us depend on being able to access our calendar from anywhere, regardless of what device we happen to have in hand, and there's little substitute for a solid web calendar. While there are many web tools that can pull in data from CalDAV, my favorite is AgenDAV, which has a similar look and feel to Google Calendar. Unlike Nextcloud, there aren't any AgenDAV hosts out there that you can join. If you want to run an AgenDAV server, you have to host and install it yourself. Also unlike Nextcloud, however, AgenDAV is just a calendar, so you don't have the added complexity or bloat of a bunch of web apps you may have no intention of using.

AgenDAV talks CalDAV, and it does so fluently. It has all the CalDAV features you need to interface with other CalDAV calendars, and the other features (like color coding) that most of us have come to expect from a calendar web app.


These are far from the only tools you might consider for keeping a calendar using open source. There are plenty of others offering their own selection of features. Which open source tools do you use for keeping a calendar? Have you hacked together a solution using org-mode and Git? Or have you done something more inventive? Let us know in the comment below!


Note from the Editor: This article was originally published in 2016 and has been updated with new information.

I use technology to make the world more open. Linux desktop enthusiast. Map/geospatial nerd. Raspberry Pi tinkerer. Data analysis and visualization geek. Occasional coder. Sysadmin. Web maker. Red Hatter since 2013.
Seth Kenlon
Seth Kenlon is a UNIX geek, free culture advocate, independent multimedia artist, and D&D nerd. He has worked in the film and computing industry, often at the same time.

11 Comments

I use org-mode in Emacs. Its diary function is great, but admittedly I don't really calendar that much and my calendar doesn't often need to stay in sync with anyone else's.

Zimbra is what we used at my old job, and it worked exactly as you would expect; email, calendaring, integration throughout. Highly recommended (and open source, although Zimbra has an 'open core' model as well).

I was interested in including something about options for the terminal, but I wasn't familiar enough with them and I didn't want to send people towards something I don't know much about. My experience using calendars at the terminal is pretty much summed up by `cal`. Can Emacs org-mode sync with remote calendars, or perhaps, sync with another local calendar that you could then use a headless CalDAV tool to sync with in cron?

In reply to by Seth Kenlon

An option for self-hosting is ownCloud/Nextcloud.

I have difficulty with calendars because of the different systems I use them in.

While I am at home I run my calendar through the desktop (Lightning/Evolution/kOrganizer on Linux, built-in/default apps on Windows 10 and Android).

When I am at work, however, I use the web to access everything (email, calendar, files, etc.).

So I use Google as my primary, and share with the desktop apps and even Outlook.com because it is available on all of the environments and integrates well with email/etc. online. The downside is having to configure my multiple calendars and set them up for read-write (which doesn't always work).

It is very tempting the idea of putting ownCloud / Nextcloud somewhere publicly accessible and try to eliminate my reliance on Google. I'm just too nervous about putting that much of my life into the "wilds".

seriously! Owncloud is super easy if you are used to install things from the command-line. I think the only major issue you have to contend with is to check out any issues after major upgrades cause sometimes you might find some problems. But that happens with any open source.

Then alongside, LetsEncrypt (free SSL) you essentially have yourself the most solid and best system. One that doesn't willinglingly share your data to whomever or sell it to advertisers.

In reply to by Drew Kwashnak

I use NextCloud on the server and the calendar is treated as first class (never was under ownCloud). I paired it with Thunderbird/Lightning on the Desktops and Etar (from f-droid) on android. Fantastic combo!

Back in the day, I used ownCloud as a self-hosted calendar provider.
Later, I used radicale: http://radicale.org
For calendar clients, on PC I used Thunderbird with the Lightning calendar add-on (now built-in). On Android, which doesn't natively support CalDAV, I used a for-pay (unfortunately) CalDAV Sync adapter, but it worked well and integrated with any calendar app. It looks like there is a free sync adapter in F-Droid now.
I was never able to get a solution with "push" synchronization, although I tried, and there were various options available, like z-push. They all either required a hefty amount of setup, or a setup process I simply wasn't able to sort out myself. That means the clients had to poll the calendar at regular intervals (e.g. every 15 minutes) to stay in sync with each other.
This was 3+ years ago. The situation may have changed.

What i have used for many years is something of a retro calendar, Remind. On Fedora, get remind and remind-gui to get the visual interactive way to enter things I need to remember. I don't want anything that puts things in my calendar for me, and I don't want spontaneous notifications when I least expect and want them.
I always used it from the command line.
Type in tkremind in a terminal and a calendar pops up ready to enter items. You can enter one-time or recurrent events. For things like a dentist appointment, I would create it once, then just edit date and time for the next appointment.
On the commandline, typing 'remind -c+4 -w85,0,0 /home/me/.reminders' prints out the next 4 weeks with a width of 85 columns. I made an alias for it to make it easy, and can then send to a file which I can print.
.reminders is the default calendar, but you can create others, like .work and use those separately.
When I need what's in remind I have it. When I don't it's not bothering me.

heh, I've just been using date and cronie

I'm a big fan of ownCloud for my personal stuff. For more of a Corporate functionality, Tine2.0 does Calendar, Tasks, Contacts (Private and Shared) via *DAV, and ActiveSync (though that connector is not entirely *legal* in the US). Project Management/Human Resources/Asset&Inventory/Sales CRM arecontributed modules and naturally it does WebMail (POP/IMAP, whatever). The web front-end looks like OutLook Web Services and it plays nice with iStuff, Droid (using article's DAV connectors), and OutLook has No Clue it's not talking to Exchange.

There's an Appliance if you need such a thing (though seeing that, I got it running on a Raspberry Pi in about ten minutes).

There are a Few web interface tweeks that are very clearly of Eastern European workflow.

I deploy it as an Exchange/GStuff killer.

Mostly it just runs and doesn't bother me, which translates to: "It just work and my useers don't bother me."

There is eGroupware, but I cannot abide by an ugly UI (and the users gripe).

The best Outlook plug-in for Outlook Calendar to synchronize with almost everything (like Owncloud) is Outlook CalDav Synchronizer maintained on the Sourceforge. I have used this at client sites on Owncloud since the first week the project was posted.

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

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.