Use Google and Exchange Calendars in the Same Domain

I can hear you asking already, “Why would you want to do that?”

Well, the problem is if you use shared calendaring and you want to migrate your organization off of Exchange on to Google Apps, everyone has to get moved over to Google Apps at the same time, and in one weekend. Not too bad if we’re talking about 10 people. If we’re talking about 600 people or thousands of people, that’s another story. If you have a fairly large organization like mine – that’s not going to happen. Well, while maybe technically it could happen… there’s that whole human side of the equation. You have to roll out training. And then there’s fear of the unknown. You have to help people see that they can do the same things they used to do, just better and faster. Of course we all know that Google rocks, but as far as everyone else is concerned, we’re just the geeks and our opinion on matters such as these is not to be trusted. So we have to find a way to get some internal champions who aren’t techies. Unless you want to create a riot and send productivity into the toilet for the next couple of weeks or months (not recommended if you want to keep working), you have to do the migration gradually. That means at least for a while you’ll have users on both systems.

Generally, everything works fine across two different systems – email, tasks, instant messaging, and so on, even with Microsoft® involved. The folks in Redmond have give the occasional nod to adhering to some standards. Even sending appointments between the two systems generally works – if only because Google took the effort to make it work. But shared calendaring – seeing the free/busy information, now that’s the issue. If you are on Exchange and I’m on Google Calendar, you can’t see my schedule and I can’t see yours. If we’re in the same organization, we’ve just moved back to the dark ages. I’m calling you to see if your schedule works with mine to get a meeting – OK, well maybe we’d be using IM, so we’re not quite back to the dark ages. This folks, is a show stopper.

Enter Google Calendar Connectors! If you have a premiere Google Apps account (or an Educational/Non-profit account) and at least Exchange 2003, you’re in luck. Over at Google Code, you’ll find the Google Calendar Connectors project. You’ll also need a Windows 2003 server with .NET 2.0 to run the Connectors.

From the Google Code Project website:

This open source project is a developer and partner release and is not targeted for direct customer or end-user installation. The Google Calendar Connectors represent a set of tools and should not be considered native functionality of Google Apps Premier Edition.

* Google Calendar Connector Web Service: This connector allows users in Google Calendar to see free/busy information for users who maintain their calendars in Exchange. It is a .NET web service that takes requests sent from the browser with Google Calendar and returns free/busy obtained from a Microsoft Exchange 2003 server.

* Google Calendar Connector Sync Service: This connector allows users of Microsoft Exchange to see free/busy information for users who maintain their calendars in Google Calendar. It is a Windows Service that periodically queries the Google Calendar GData API to get updated free/busy information and publishes this information as free/busy information in Exchange.

* Google Calendar Connector Plug-in: This connector allows users of Microsoft Exchange to see free/busy information for users who maintain their calendars in Google Calendar. This product is an Exchange plug-in that adapts Exchange requests for Calendar free/busy information into a request to the Google Calendar GData API. This has the advantage over the Sync Service of not needing to poll Google Calendar and the free/busy information is more current. However, installation requires modifications to the Exchange server environment, which some customers are not comfortable with.

We have the Connectors up and running in our organization. It took a little work to get them going, but once up, we are happily co-existing on two systems.

Now, with Google, I can potentially share my free/busy information with the world. If a vendor wants to schedule an appointment, they can just check my Google calendar. Of course, if your calendar is like mine, good luck with finding the “free” part of that free/busy information.

One other thing I forgot to mention, there is a little foo that needs to happen in order to have Exchange happily share a domain. For those users who you migrate to Google Apps, you need to set up Exchange so that it will forward their emails to another server when it see that they don’t have an email address in AD. Normally, if someone in the organization sends an email to someone else in the domain, Exchange assumes that Active Directory is the only place to look for the email address. If the email address doesn’t exist in AD, Exchange normally assumes it doesn’t exist anywhere and send the appropriate error message. A little work has to be done to teach Exchange how to share nicely.

With that hurdle overcome, I’m back to thinking about what we’d be missing if we moved off of Exchange and whether we really can use Google Apps as an Exchange/Sharepoint/Blackberry Server replacement. See my initial thoughts on that in may post on Google Apps as a Viable Replacement for Exchange.

Microsoft’s death grip on the desktop just got a lot weaker.

Advertisements

2 thoughts on “Use Google and Exchange Calendars in the Same Domain

  1. Hello,

    Is there some way to see the exchange calendars from specific users in Google calendar, with the google presentation off the google calender users in different collers?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s