A few weeks back my girlfriend and I were looking to start sharing our calendars. Mostly because I didn’t know when she had to work (department stores, yuk!) and I constantly had to ask her what we were doing on the alternating weekends she didn’t have to work. So, being a developer, my first thoughts were – hey, I could build a calendar sharing app. Ohh, but the daunting task was ahead of me, and I really didn’t feel like taking my personal time to do this. Next thought? Well, that was to setup a VPC with Exchange Server – and after 3 hours I realized that this was overkill for just sharing calendars. So, I tabled the idea for the time being.
Then, a few days back, Sunbird 0.2 was released from the Mozilla organization. I thought, hmm…this could possibly work. And after installing it on my work machine to check it out, I realized this was perfect for what we needed. If you’ve never heard of Sunbird, its, obviously, a calendaring application that is standalone from any of the other Mozilla applications. It allows you to store and share your calendar much like Outlook (well, sharing is a lot easier). The ability to have many calendars open at once was exactly what we needed.
So, last night I installed it on my home machine, and had my girlfriend install it on hers (she’s THAT tech-savvy). Now, to actually share our calendars, I had to do a little bit of custom configuration, which I’ll describe below.
1. Create a shared folder that both (or all) users can access. I used my server, and created a share allowing anyone to read/write to it. I later back this share up in my nightly backup routine.
2. Open up Windows Explorer, and browse to C:\documents and settings\<UserName>\ApplicationData\Mozilla\Sunbird\Profiles\<DEFAULTPROFILE>\Calendar
3. Copy the CalendarDataFile.ics to your shared directory, renaming it to whatever you wish so that its easier to locate for other users. I used Matt.ics for mine and Heather.ics for my girlfriend’s.
4. Open CalendarManager.rdf in Notepad.
5. Find the “My Calendar” RDF:Description element, and change the NC:path attribute’s value to point to the new location of your .ics file on your shared drive.
6. Save and close the .rdf file.
7. Launch Sunbird, and you’re ready to add other calendars.
8. Click the “Calendars” tab.
9. Right click, and choose to add a new calendar. Give it a name, and use the “Browse” button to point to whatever calendar you wish to use. Note, do not pick up your own calendar, but the other person’s calendar.
From there on out, you’re able to see your and the other persons calendar at the same time. It is important to note why my above instructions are so important. Due to (my guess) a bug, trying to edit “My Calendar” to point its location to the shared directory never saves. It’ll revert to the local .ics file that we moved, and modifying the .rdf file manually was the only way to get around this. Also, if you should happen to be entering events in your calendar at the same time that the other person is, it doesn’t dynamically update the calendar. You must close and re-open Sunbird. Same if you change the color of the calendar.
I also realize that there’s an option to “Publish” your calendar to a remote site, but that requires WebDAV to be installed on your destination server. Supposedly, you can use FTP, but I was never able to get that working. A great thing about publishing your calendar, is that it can theoretically live on your website, and anyone can consume that calendar. However, until this gets finalized and working properly, the sharing methods I described above are the best methods.
So, if you’ve been looking for this type of functionality, and didn’t know where to turn, try out Sunbird…it gets the job done.