tl:dr: By using Outlook’s Publish Calendar function, Box.com’s webdav service and Google Calendar, I have been able to publish, store and subscribed to my calendar automatically.
Once Upon a Time in Some Office, Somewhere…
So, the powers that be at my job have decided to drop the use of activesync for corporate email and security, if so implemented, for some proprietary service/app combo because why not spend money unnecessarily on an additional service when not needed; but I digress. Things are what they are and I will be losing one of the biggest tools I need to do my job and balance it with my personal life, a simple way to put all my calendars together into a single view so I know what’s going on and when I have to be where.
My current setup is pretty nice and does the job, and more. I tested probably 8+ android apps looking for one that met the needs I had. The clear winner for me is Nine by 9Folders. The setup was no different than any other client but their implementation was. On top of all the features I liked, like per folder syncing and notifications, finger print unlock among others, the biggest advantage to using Nine was the way it handled the option by your activesync admin to wipe your device to save company information. While most other clients seemed to implement it so that the company has to have device administration access, which, in my opinion, was unnecessary. Nine adheres to the requirement by almost containerizing the application; that way if your company needs to preform the remote wipe in case you loose your device or whatever, you only use the emails “they own” while not affecting the rest of your device. Because of the use of the activesync protocol, I was also able to add my work calendar as a data source within the calendar app so I could see my entire agenda in a single view.
With the loss of activesync, means the loss of the merged calendar on my phone… or so I thought.
Let me be honest – I can be called cheap, but in this case, I cannot see why I need to pay, even if there were an option to recreate this feature, just to have calendar information accessible as a quick glance with the other items in my life. After much research (Google searches and reading) I came across a option that is working for me without a problem, at least so far.
To accomplish this, I needed a few things:
- Outlook client to setup the Publish Calendar routine
- A Webdav compatible storage service
- A calendar service that is capable of subscribing to a published iCalendar (ICS) file
The first and the last one were the easy ones to accomplish, the webdav and resulting publishing of the file was a little more tricky. Let me explain:
Finding and Setting-up a Webdav Storage Service
This one took some research. I needed an Internet accessible service that could be accessed both by regular web access via a public link (so I could subscribe to my own calender – I know, sounds crazy) as well as allow Outlook to save/deploy/publish the ICS file via Webdav as that is one of the only ways Outlook can publish the file. It ended up being that I already had an account that would do both these things – Box.com met all the criteria. Since I already had this account (back when it was still Box.net), I was good to go. If you need an acount, follow the Box.com account creation process. As of the time that I am writing this, they offer a free personal account with 10GB of storage and a 250MB file size limit.
This is more than enough in both respects, at least for my needs. My calendar file for 90 days into the future and 90 days back is only 644KB (less than a megabyte). Remember your username and password as you will need this later on.
Setting up Outlook to Publish your Calendar
With Outlook in the Calendar view, there is a prominent button that says Publish Calendar.
From there you are presented with some options via a dialog box.
For my setup, in the Location box you need to enter in the WebDav path from Box. The default to the root of your Box account will be [https://dav.box.com/dav/]. I wanted in a subdirectory, just to keep things organized for myself, so my path ended up being [https://dav.box.com/dav/work/calendar].
I also tweaked the deployment options to what I needed them to be. In my case, I switched the Time Span from 30 days old to 60 days into the future to 60 days previous and 90 days out. I also set the Detail level to full details so I can see links or any event information.
When you click the OK button, you will be prompted for your Box.com login credentials, enter them so that Outlook can publish the file automatically on your behalf. Once entered correctly, the calendar should publish in a short amount of time. When done you will get a confirmation prompt and the ability to share the path with others; unfortunately the link there cannot be used for subscribing to calendar on Box as subscriptions to calendars cannot have login credentials.
Setting up the Share Link from Box
Because of the way Box stores and shares files, just using the link or knowing the file path from the WedDav setup will not get us the link we need to share/subscribe to the calendar. It takes a little behind the code investigation work but is completely possible.
Log into your Box.com account from their website and navigate to wherever you have your file being stored. You will see the file name and some faint items to the right of the file name.
Copy that link and open it in yet another browser tab, preferably an private browsing session as to make sure you have the correct access . You should get a page similar to this.
I am using Google Chrome. I can right click anywhere on the page and bring up an option called Inspect. This shows all the various rendered page code elements. You will need to scroll down until you see the iframe element.
When you hover over the iframe element, you will see the rendered code look something like [https://app.box.com/index.php?rm=box_download_shared_file&shared_name=zcnmbe83u1ss56q2rbmndkelv5s5v4w2&file_id=f_100543743976]. This is the link you need. From Chrome, I right-click on the iframe element and select Copy Link Address as this is the link into what we will need.
Time to Subscribe to Your Own Calendar
The home stretch. With the link you copied, open up Google Calendar on the web. Under [Other Calendars] in the left navigation pane, select the drop-down arrow and choose [Add by URL].
You will then see the Add by URL dialog box. Paste the Box iframe file address from above into this box and click Add Calendar.
It may take a moment, but eventually you should now see the new calendar listed.
From there, you can give it any color you wish, name it as you would like, whatever. Easy, right?!?! 😉
Limitations/Considerations – Just some things to keep in mind:
- Outlook will publish the calendar after nearly any change; however Google will not actively refresh the calendar, it appears to only sync daily. So, if you had a calendar event for tomorrow but the date changed to today, it will not reflect in the calender immediately, possibly until tomorrow, when it is too late.
- All this is based on current (2016-02-20) information. Changes by anyone along the line will/can break this process.
- If you have Outlook remove the publishing or change the file within Box, you will need to re-follow the process again as Box will generate a new shared name and file id for the file and the old link will no longer be valid.
[2017-10-02] Well there appears to have been some changes, that or I am missing something, but I started having some issues (items were not showing up in my calendar that I was subscribed to). As a result, since I recently changed hosting options (see The Need for a Homepage ) I ended up rolling my own solution that I am hosting. I am using a service like OwnCloud or NextCloud, since both have webdav access options and are secured (and encrypted). So far, so good though time will tell and I will have to maintain this (upgrades, service changes, etc) instead of relying on someone else to do it (though the install was pretty straight forward thanks to Softaculous within cPanel).
[2018-08-21] As with all things, the only constant is change, so my “hack” of using this started to develop issues (odd errors, update response times, etc). While not 100% bullet-proof, I took it a completely different route that has been working well – directly copying the calendar(s) into its own Google Calendar; that has seemed to be the most direct and effective way to date to accomplish this ‘want’ of mine. I have used two separate applications – both have worked well, one is free and the other is a paid application:
- Outlook ↔ Google Calendar Sync: Free and Open Source
- It worked well and did the job. The ONLY reason I do not use it exclusively was I discovered I paid for GSyncIt (below) so I figured I might as well use it.
- GSyncIT: Starting at $19.99 for a single license
- It also works well. While not free, they do provide updates and support.
I have been happy with both solutions. The software connects to your Outlook calendar and then asks what Google Calendar you want to copy your Outlook calendar to (I have a separate ‘work’ calendar in Google that the changes/events get written to), what direction (Outlook to Google only, Google to Outlook only or fully bi-directional) you want the changes to flow and how to handle conflicts. Both have worked well and automatically in the background without any notable issues that I can recall. I would recommend either to anyone looking for a solution in a similar situation.