As noted [elsewhere][], I decided to go on with the `Exchange2iCal` project I *started* almost one year ago.I’m actually getting along nicely, also due to the fact that Jeffrey Harris released the wonderful [VObject][] package some days ago. (Thanks to [Jon][] for the tip!)

So far, the following bits and pieces are working:
* I can get the whole Exchange Calendar as an `ics` file, including recurrence, alarms and meeting status.
* I can parse and compare two iCalendar files and get the following information:
* New Local/Remote Events
* Changed Local/Remote Events
* Deleted Local/Remote Events
The first part can be considered “stable”, that is, if you’re OK w/ read-only access to you calendar, you could basically use that part. You can download these here: [e2i][].
> ## Warning
> These scripts are provided strictly *as is*. It’s *alpha* status at best, hacked together to work on my environment and not tested elsewhere than my Mac. There isn’t a `README` available and I assume that you know how to get the different tidbits needed to make it running, in particular:
> * Python 2.3
> * PyObjC (If you want to profit from Keychain-based authentication to Exchange)
> * Basic knowledge of Python
>
> (If you can’t, then maybe you’re not the *exact* target audience for these scripts and better wait for the moment where I have something a *little* more user-friendly *or* where Apple themselves release an iSync to Exchange. I know there are quite a bunch o’ people in the wild that’d like to see this working, but sorry, it’s just not there yet.).
>
> I further assume that you know how to read a program and change certain parameters.
> There is some documentation in the code, but remember:
> **This is not for the faint-hearted!**
> And now go and run `exchange.py`

The second part (parsing & comparing) is still very buggy and unstable. I get pretty decent results but the parsing & comparing is somewhat unpredictable.
* * *
Now, I am heading for the following:
* Increase the stability of the comparison
[1]
* Implement a first one-way updater
* Wrap the thing up so fetching, comparing and updating will become one monolithic sync process
* Write an iSync plugin
(This last point should be the easiest, as PyObjC can now be used to program NSBundles in Python, as seen [here][].

(Hat tip: [John Gruber][])
Some other tidbits are going along with this as well:
* Increase the stability and usefulness of the
XSLT that transforms the Exchange data to iCalendar
* Bring meeting attendee info into the iCS if possible
* Recur to less file-based transactions (i.e., less data-dumps and more advanced uses of stuff like LibXML2’s Python bindings etc.)
* Lure our Sysadmins to install Exchange 2003 ASAP.
* Become better in Python programming

* Set-up some project space with a constant
URL so people can find this — if they want

* * *
## Rationale
You might ask yourself the question what the rationale of this project is? I’ll admit, I’m only doing this to get `/.`ed once in my life.

But before you go and call the dot to slash me, bear in mind that this project is not yet finished — some more time is needed to get something that’s worth a `/.`

(Actually, getting Exchange on my Mac desktop would be great, too … )
* * *
[elsewhere]:
http://mycvs.org/archives/2004/11/20/more-on-exchange-os-x/ “More on Exchange & OS X”
[VObject]:
http://vobject.skyhouseconsulting.com/ “VObject Project Home”
[Jon]:
http://weblog.infoworld.com/udell/2004/12/09.html#a1130 “Jon Udell on CalDAV”
[here]:
http://www.pycs.net/bbum/2004/12/10/ “PyObjC, py2app, and bundle”
[John Gruber]:
http://daringfireball.net “John Gruber”
[e2i]:
http://mycvs.org/wp/wp-content/e2i-0.1.tgz “Exchange2iCal”
[1] That is, better understand the [VObject][] architecture
Mike
June 12th, 2007 at 15:24
PLEASE PLEASE PLEASE! Don’t stop developing this!!
Stephen
August 1st, 2007 at 22:07
This could be huge. There are thousands of people who hate the exchange environment but don’t have any alternatives. Hopefully one day Macs will rule the world. How ’bout them Apples.
Mike
September 2nd, 2007 at 4:38
PLEASE PLEASE! Don’t stop. How much money do you want? I keep checking back…
Don’t make me DIGG you!
jr
September 2nd, 2007 at 12:44
Hi Mike
I’m flattered by the interest my not even alpha project generates.
I am actually waiting to see what enterprise integration the upcoming Leopard will bring.
jr
Stephen Hultquist
October 27th, 2007 at 3:13
No help from Leopard. The Snerdware stuff broke and they weren’t ready for the upgrade (it was a performance pig, anyway). What do you say?
David
November 2nd, 2007 at 16:08
I’m with Stephen, Snerdware is not up for the challenge with Leopard. Their current “workaround” is literally not to upgrade to Leopard.
So, will you be the Stallion of Exchange in iCal??? It is up for grabs. I’m serious.
Lancer
November 10th, 2007 at 8:49
Did GroupCal3 work well before Lepard?
Joel
November 21st, 2007 at 3:35
Yes, GroupCal3 worked reasonably well, although it was a bit of a resource hog. Although that may have been the fault of Apple’s Sync Services.
Seriously, I have now tested the stable functionality of e2i, and am EAGER for the synchronization to get worked out. I would be happy to contribute code to help out. (not sure if there is already a sourceforge or googlecode project set up for this.)
PLEASE!
As an aside, has anyone found the easy way to install python modules for libxml2 and libxslt? I ended up using MacPorts, but it installs its own version of Python which seems like overkill.
Allan
December 6th, 2007 at 18:00
Dude, you need to get going with this… i would pay for my copy for sure… like a lot of people, i’m stuck using windozz at work but at home, i want to only use my mac and entourage is horrible. I have tried to setup shared cal between exchange and Ical from every direction but in the end, its pathetic that address book will sync with exchange but ical will not, i think its a high level thing between bill and steve.. but at the end of the day, every is right…this is a gap that is up for grabs and you should hit it hard…
John
December 6th, 2007 at 19:49
Is there a status update on this project? I’ve been looking for a better solution than GroupCal (I’m willing to pay.)
I have a WM smartphone that I want to do over-the-air sync with my home computer using a thrid-party hosted exchange solution… so long story short – this is the missing link in my evil plan.
Allan
December 12th, 2007 at 13:36
Like many of you who found your way to this site, I use exchange and outlook at work and OS X and ical at home. I was going mad looking for a solution and then I tried Plaxo… solution found and peace I have… just http://www.plaxo.com and wala
hope this helps
taking the red pill - » Most popular posts ever
January 3rd, 2008 at 10:42
[...] Synching Exchange to iCal [...]
Stephen Hultquist
January 4th, 2008 at 23:33
Any word on this? You could have a real winner here, with all the movement in the direction of the Mac, both in the enterprise and in home use.
This is a project whose time has come. Snerdware has dropped the ball. You could win!
…and besides, I really need it!
Stephen Hultquist
January 4th, 2008 at 23:40
Allan, how does Plaxo help? How can I get my Mac to sync to Exchange using Plaxo? I don’t use a PC at all anywhere. I have to use an Exchange account with my primary client…
Care to enlighten me?
Stephen Hultquist
January 4th, 2008 at 23:45
YAI only works on Tiger. No Leopard version. It won’t even install on Leopard.
Jacob
March 6th, 2009 at 16:24
What’s all this fuss? It’s really easy getting all the data from your exchange calendar into iCal. I wrote a year ago a PHP-application which downloads every event and put em’ into and ics-file really easy. Then just write an schedual process (CRON) which opens this file once an hour.
Ölbaum
March 6th, 2009 at 23:41
Can you read? The post was written in 2004.