Last Updated on 2022-07-08 by Joop Beris
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.
The problem
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.
The answer
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:
https://www.example.com/nextcloud/s/bnr9wehf7sdkfn
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.
https://www.example.com/nextcloud/s/bnr9wehf7sdkfn/download
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.
Summary
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
Hi this looks really useful but I can’t work out the link format to output from Outlook – I tried https://mydomain.com/remote.php/dav/files/myusername/ but no joy
Hi Michael,
That does look like the right URL. Do you have 2FA enabled for your Nextcloud user (and I highly recommend this)? If so, you’ll need to generate an app password for uploading to this URL from Outlook.
You can generate app passwords by going to settings and then to security while logged into the Nextcloud web interface.
Thanks for the reply! It asks me for credentials but I’ve tried entered just username and username@mydomain.com but to no avail. It seems fine mapped as a network drive but not through Outlook. Very frustrating!
Don’t mention it. Sorry to hear it’s not working out for you. It’s been a while since I used this setup and I’ve since switched employers so I can no longer verify this set up for you. Perhaps you can try researching the Outlook error message or the Nextcloud server log to see if it yields anything helpful.
If your organization allows you to share your Exchange calendar, you could use the Nextcloud calendar app and subscribe to the published calendar that way.
I just tried this and it worked like a charm. If you are in a domain, you have to use “\username”, if you just type “username” then Outlook will send “domain\username”, which obviously your Nextcloud won’t understand.
[…] would allow me to take notes hassle free and would allow me to sync them to my Nextcloud server (I’ve written about that before). Joplin appears to have me covered in all the areas where I need it […]
In our office we are trying to move from google to a complete on-premise nextcloud environment. the caldav synchronizer works good and I am planning to install it on all of my office desktops and laptops. however I found another useful tool which can copy google contact and calendar entries to my nextcloud system easily. (cloud to cloud copy), and anyone who is doing the same may find it useful.
here is the link: https://us.evomailserver.com/product_eco.php
Thanks for sharing. You’re right, this look like it could be useful to others.
Thanks, worked like charm!
Glad to hear it 🙂