Monday, March 12, 2007

Sumatra Pump: The Third Way to get Calendar Data into specific accounts

In Exchange there are two ways to get data into a user calendar:


  1. Invite the user to a meeting which they accept
  2. The user or their delegate types an entry themselves
This was too restrictive for a major graduate business school in the Northeast. There was no way for users to "subscribe" to calendar events relevant to their needs, such as course schedules and assignments, on-campus recruiting, and then have those events appear on their calendars.

They asked Sumatra to develop an Exchange server-based tool we refer to as the Sumatra Pump, suPump.exe.

A bit of background

This school built a web-based calendaring solution that offers its students, faculty, and staff a single source to access all academic calendars and schedules including the academic calendar, class schedules, club events, and one-on-one meetings such as the interview calendar. The web-based solution also provided users with a list of contacts and tasks. Users can personalize the solution by setting preferences to select the calendar data they wish to receive. End users wanted the calendar data in Outlook, so the school built an Outlook add-in that allowed users to merge selected calendar data into their Outlook calendar.

Fine and good, but this was manual -- the user had to initiate the command sequence. The school’s IT department wanted a solution that could be scheduled each night to push the requested data into Outlook.

Sumatra automated the calendar data merge process by implementing a server-based “Push” product on Exchange. The goal of this Push product is to deliver calendar, task, and contact updates to Outlook end users on both a scheduled basis and an on-demand basis.
This solution had the following results:

  • Consolidated scheduling data delivery at the Exchange server level;
  • Reduced system maintenance and management costs;
  • Minimized the negative productivity impact of requiring users to initiate the calendar merge sequence, or by re-keying calendar data into Outlook;
  • Extended support to all Exchange clients on-site not served by the client-side VB macro then in use (including, for example, OWA and Entourage users);

The suPump takes as input an XML file. For Activities the file has the following structure:

ActivityID: alpha numeric identifier (can be left blank)
UserID: SchoolID or mailboxAlias
Name: Activity name
Location:Activity location
Banner:True/False - Is this an all day event
Private:True/False - Should this be marked as private
Label:What color label (0-11) corresponds to Outlook labels
Duration:Duration in minutes
ActivityTime:Activity start date and time
LastTime:Activity end date and time
TimeZone:timezone (see below)
FreeBusy:"Free", "Busy", "Tent","OOF"
RecurType: Not implemented for this client
Ongoing:Not implemented for this client
DaysMask:Not implemented for this client
WeeksMask:Not implemented for this client
DaysFromEndOfMonth:Not implemented for this client
Period:Not implemented for this client
Exceptions: Not implemented for this client
Reminder: number of minutes
NoteInfo: additional information

Contacts and Tasks have similar formats.

We've been thinking of using this for simple calendar / contact / task migrations for formats we do not currently handle (iPlanet calendar migration is one of the cases occasionally requested).

This is also something we've looked at as part of a co-existence strategy for alternate calendar servers and Exchange.

No comments: