I use a personal server running Nextcloud, a cloud solution to access, share and protect files, calendars, contacts, communication and more at home and in enterprise environments. There, I keep my personal calendar, which is synced to a variety of mobile devices. However, at work I am forced to use Microsoft Outlook with Exchange for my calendar and contacts. To have access to my work calendar on my personal device would force me to enrol my personal device in a corporate environment. However, that would entail certain policies and restrictions I’m not comfortable with on my personal device. Fortunately, I found a way of sharing Outlook calendar with Nextcloud.
What I need, is a way to display my Outlook work calendar on my personal device. I don’t need to change the calendar but to prevent appointment conflicts I want to see both my personal and work calendars side by side in a single app.
My organisation uses a traditional Microsoft Exchange environment, which runs on premise and can be reached from outside via Exchange’s web interface and ActiveSync. If you want access on a mobile device, ActiveSync really is the way to go. Like I said, that would force me to accept company security policies and restrictions. I don’t feel comfortable with that for various reasons.
Fortunately, Microsoft Outlook 2010 has a function that allows me to publish my calendar to a remote WebDAV server, such as Nextcloud. This will export my current calendar as an iCalendar file and place it in my Nextcloud personal space.
So far, so good. Unfortunately, the generated iCalendar file is suitable for transporting my calendar but it requires manual importing in the Nextcloud calendar module. This has to be done every time the iCalendar file is updated which happens several times per day. That gets old very fast.
I now had a solution for sharing Outlook calendar with Nextcloud but the manual importing of the iCalendar file continued to annoy me. I tried several things, even attempted to write a script to automate the process but ultimately this proved too much of a kludge.
Now, I think I have come up with an effective, automated and cheap solution. I continue to publish my calendar to the Nextcloud server like shown above. Within the Nextcloud web interface, I share the iCalendar file with a link so it can be accessed from the Internet.
The link will look something like this:
This link refers to the file on the Nextcloud server but it doesn’t work when you try to subscribe to it. To make it work, you need to change it to be an actual download link.
Just add “/download” after the random string of characters and you have a link you can actually subscribe to! Even when the file gets updated by the Outlook client, the link continues to work. That means your calendar will always be up to date.
Any iCalendar compatible client will be able to connect to the file on the Nextcloud server. For Android based devices, I recommend the app ICSDroid. For the price of a cup of coffee you get access to your shared calendar, which is definitely worth it to me.
For the TL;DR crowd, here is a quick summary for sharing Outlook calendar with Nextcloud.
- Publish calendar online from MS Outlook to Nextcloud server
- Share file using link in Nextcloud web interface
- Add “/download” (without quote marks) to the end of the link
- Use the modified link in your ICS client