I am working on a small side project that will help with a calendar synchronization issue I’ve had for a while. When I want to add an appointment to my personal Google Calendar, I normally don’t want to set it to a time where I have an event scheduled in my work calendar. So, I need to have visibility into my work calendar from within my personal calendar.
This is a challenge for me because the two calendars are hosted in different environments. I access my work calendar though Microsoft Outlook, which connects to a private Microsoft Exchange server. I cannot import my personal Google calendar into Outlook, nor can I import my work calendar into the personal calendar. In addition, I want to keep the data of each calendar secured in their respective servers. I don’t want the work data in the personal calendar or the personal data in the work calendar.
My solution for now has been to manually open the work and personal calendars side by side and choose a time in the personal calendar when nothing is scheduled in the work calendar. But I think it would be nice to have an automated indication in the personal calendar of the times when I am busy in my work calendar. It would be enough to show those times as reserved, without displaying the details of the work events, which I want to keep secured on the internal Exchange Server.
So, I decided to create software to alleviate the side-by-side back and forth between the two calendars. The software would allow me to highlight on my personal calendar the times when I have scheduled events in my work calendar.
Considering what I told you earlier about the two environments and the need to keep work and personal data separate, the software will perform these functions:
- Read the scheduled events in my work calendar, starting at a date, preferably configurable.
- Access the personal calendar and mark the times when the work events are taking place. It will label then as “Busy at work”, or something similar, without disclosing the details of the work events.
The process will run several times a day, probably off a timer with a configurable interval. The goal would be to keep the personal calendar updated to the extent possible without consuming large amounts of resources on the host computer or the Exchange Server that stores the work calendar.
My first take will be an executable written in .NET. The program will use the Office interop libraries to read events from my Outlook calendar. It will use the Google Calendar APIs to mark the “busy at work” times in my personal calendar.
I know there are many calendar synchronization programs out there that I can buy to accomplish this, but I want to experiment with my own version. If you would be interested in testing the software when it is ready, please leave a comment below. Make sure to enter your email address so I can send you the download link.