Calendaring: Understanding the Client Side

The Outlook Calendar system is in widespread use, but many users and support staff don't understand its capabilities. To get the most out of the Calendar, you need to understand

  • The client-side structure and client/server communication systems
  • Server-side implementation and configuration and free/busy information storage and sharing
  • Resource management, including third-party resource management products

Some important points with regard to client-side structure and client/server communication systems are how Outlook creates a meeting, how it handles free/busy information, how it adjusts to different time zones, and how local calendar mode can improve calendaring performance. I'll cover the other topics in future articles.

How Outlook Handles Appointments
Outlook places calendaring information directly into the Exchange Mailbox Calendar subfolder. Within the Calendar folder, Outlook stores every appointment as a separate item with a special attribute that identifies the item to Outlook as an appointment. Because these entries are items, you can use the Category view to see all the appointments.

The Outlook calendaring system appears to most users as a realtime system: Users think the changes they make are immediately available to everyone. However, Outlook uses a message-based system for appointment exchange instead of a realtime scheduling database system, such as Open Text's OnTime or CrossWind Technologies' Synchronize. Table 1 shows the differences between message-based and database-based calendaring systems.

In a message-based system, appointment requests are subject to the same influences as the mail system; server outages and long mail queues affect their delivery. In realtime systems, everyone can view the current meeting status (e.g., who has accepted or declined) because the messaging system commits appointments to the scheduling database immediately.

Exchange handles calendar items differently: Only the meeting organizer can see the current meeting status. When an invitee accepts, tentatively accepts, or declines an appointment, this action produces a status message, which the program sends directly to the meeting organizer's mailbox. Exchange's calendaring design stores the meeting status in the meeting organizer's original appointment and not to a centrally available folder. Other users can't access the mailbox and, therefore, the appointment information. I doubt that Microsoft will soon let all users view meeting status because Microsoft would have to change its calendaring design to add this often-requested feature.

Free/Busy Information
When Outlook accepts an appointment, it stores the information in the Calendar folder and distributes the appointment to the SCHEDULE+ FREE/ BUSY system public folder. The FREE/BUSY folder stores information about each user's availability in a separate item in encoded format. By default, Exchange stores this folder on the first server of a site; large sites might need to replicate this folder to multiple servers or to other sites (e.g., if your organization expands and users at new locations need other users' free/busy information). Free/busy information includes only the times you're busy and the status of your appointment (i.e., Busy, Tentative, or Out of Office); it doesn't store other calendar data such as appointment subject or invited users.

Although I'm basing this discussion on the Microsoft Outlook client, the information about publishing free/busy Information is also relevant to Microsoft's older Schedule+ system. Schedule+ doesn't support the Tentative and Out of Office appointment types. Schedule+ displays Tentative time blocks as free times and Out of Office time blocks as Busy.

In Outlook 2000, Microsoft addresses a major problem that occurred in earlier versions—namely, that other users couldn't see the exact date range published (i.e., which specific months the calendar showed). This problem resulted in Outlook interpreting dates outside the range as free time. For example, suppose you want to schedule a meeting for October but one invitee has published only September's free/busy information to the server. Outlook 97 and 98 display October as free for this user so you think the user has no appointments. However, when you send a meeting request, you find out that the user is already busy. Outlook 2000 displays the published information, and the dates outside this range show No Information, as Screen 1 shows. No Information means that the client can't access free/busy data.

No Information can appear on the calendar for several reasons. The phrase can mean that the user has never logged in to the mailbox, the administrator configured the client not to publish information, or the mailbox resides on a server in another site that your client's computer can't connect to. Outlook creates the initial free/busy status the first time a user opens the mailbox. Technically, No Information means that your client computer can't access the specific item Exchange stores in the SCHEDULE+ FREE BUSY system folder. So, if you encounter problems accessing free/busy data, first check whether the client publishes free/busy information at all. The user might have configured Outlook not to publish the information, or a network problem might prevent the client from publishing free/busy times to the server. Next, investigate whether the Exchange server hosts the needed free/busy data (especially if the user's mailbox is in another site).

By default, every client computer publishes 2 months of free/busy data to the Exchange server every 15 minutes. You can modify these values within the Free/Busy Options dialog box, as Screen 2 shows. (You access this screen from Tools, Options, Preferences, Calendar Options, Free/Busy Options.) You can choose to not publish your Calendar free/busy information (i.e., by entering 0) or to publish up to 12 months of information.

In Outlook 2000, Microsoft changed how it calculates the number of months to publish. In earlier Outlook versions, the maximum period of 12 months referred to the previous, current, and next 10 months. (The Microsoft article "XCLN: Publishing 12 Months of Free Busy Information with Outlook" at kb/articles/q216/1/77.asp describes how this system works.) Outlook 2000 discards the previous month from the calculations, so that you can see 11 future months instead of 10. Choosing a publishing period of 0 prevents the client from sending any free/busy data updates to the server. Setting the value to 1 means that other users can see only the current month. Although one month might seem sufficient, the client publishes the information only from the first day to the last day of the current month. Therefore, if you set the value to 1 and today is August 30, your free/busy information for September isn't available.

You can calculate how much traffic each client computer produces when it sends free/busy synchronization data to the server by allocating 100 bytes per month of distribution. For example, I've seen that 12 months of data for 5000 users stored on the server produces 1.2KB of data flow to the server during each free/busy synchronization period. Therefore, setting the update period at too frequent intervals (e.g., every minute) can cause tremendous additional network traffic and lead to problems in large networks.

Making Appointments with External Systems
Creating appointments with attendees within the same Exchange organization is easy, but exchanging meeting requests between different Exchange organizations or sending appointments to the Internet can cause several problems. This process is easier if the recipient uses the Outlook client and you don't need to exchange free/busy information. If you set the recipient's address for Rich Text Format (RTF), you can send an appointment or another Outlook item as an attachment. (Sue Mosher gives more information about this technique in "Outlook Tips and Techniques," June 1998.)

More difficulties occur if you want to exchange appointments with and access free/busy information from a non-Outlook-compliant client. To help you accomplish these tasks, Microsoft has implemented two new Internet scheduling standards since Outlook 98: iCalendar and vCalendar. Any third-party client that complies with these standards can exchange calendaring information with Outlook clients. Although these formats were already available within the Internet mode (IMO) of Outlook 98, the Corporate or Workgroup (CW) mode in Outlook 2000 now supports the iCalendar and vCalendar formats.

vCalendar is an Internet standard that supports exchange of appointments and schedules with users who aren't in the same workgroup or who use scheduling software incompatible with Outlook. Internet Engineering Task Force (IETF) Request for Comments (RFC) 2447 describes this standard. Although Outlook 98 and Outlook 2000 support handling of vCalendar appointments received by mail, Exchange Server doesn't support automatic vCalendar conversions of meeting requests for incoming or outgoing Internet mail or any other external mail. Users must manually convert the appointment to a vCalendar file by exporting the appointment. Specifically, they use File, Save As, select vCalendar (*.vcs) as the file type, and attach the apointment to a message.

In Outlook 2000, users can use Forward as iCalendar in the Actions menu in Folder view to automatically create an iCalendar (*.ics) file and attach the file to a message. Outlook 98 doesn't support this format because Outlook 98 includes only a subset of the iCalendar standard. iCalendar (RFC 245) is the Internet standard for publishing and accessing free/busy information to support cross-platform scheduling. Although Outlook 98 lets you publish or access iCalendar information, Outlook 2000 lets you use this functionality in either IMO or CW mode.

You must install the Microsoft Internet Explorer (IE) Web Publishing Wizard to get the functionality you need to publish Internet free/busy data to a server or the Web. You can install this wizard from Control Panel, Add/Remove Programs, Microsoft Internet Explorer, Web Publishing Wizard. For every user, you must configure the path and filename where you want Outlook to store free/busy information. You configure this location on the Free/Busy Options dialog box you see in Screen 2. You must initiate publishing manually by using Tools, Send/Receive, Free/Busy Information in Outlook.

To access a non-Exchange Server user's free/busy information, you must configure the appropriate path on each contact's Details tab. For example, you enter ftp://jagottnt5/fb/administrator.vfb to access the information you see on Screen 2. If you don't configure this information correctly, the client software looks up the entry in the Search at this URL window on the Free/Busy Options dialog box. For more information about how to configure this service or how to access a public server to share your free/busy information on the Internet, go to windowsworld/freebusy.htm. Unfortunately, this site doesn't include information for Outlook 2000.

Offline Usage of Free/Busy Information
Until recently, you couldn't access someone's free/busy data if you were in Offline Mode. Using an offline folder, you could look at your current appointments and create new ones, but without other users' free/busy information, you couldn't easily schedule meetings with people who use their calendar extensively. Tom Rizzo resolved this problem with his freeware add-in Offline Free/Busy Application. This add-in lets users use Outlook 2000 and Collaboration Data Objects (CDO) to replicate defined free/busy information for offline use on a local computer. The tool lets you configure which users and the period to replicate, as you see in Screen 3, page 11. The tool stores the information on the local hard disk.

When you're in Offline Mode, you must use a custom form available in the Actions menu in Folder view to plan offline meetings with the replicated free/busy times available. Because Outlook is restricted in changing the default buttons and functions, this form doesn't replace the New Appointment option in the Actions menu in Offline Mode. This add-in is a useful tool for mobile or home users who don't have a permanent, direct connection to their Exchange Server to schedule meetings. You can obtain this add-in from Sue Mosher's Web site at addins/gallery/offlinefb.htm.

Using Local Calendar Mode
Since Outlook 98 initiated background synchronization, Outlook can significantly improve the client's performance for users who work primarily while connected to an Exchange server if users use the new Local Calendar feature. If users use locally stored offline folders (.ost) files, Outlook first resolves all calendar requests locally, thereby decreasing server workload. Outlook 2000 introduces an option that lets you activate this feature. Go to Options, Calendar Options, which you see in Screen 4, and select Always use local calendar. Using this feature lets you display Calendar information more quickly and produces less network traffic. This mode is faster because Outlook stores every calendar entry as an item on the Exchange server and Outlook must open each item first before displaying it. You can notice the difference between offline and online work if you attempt to open up a month view, which includes multiple items—as many as 50 items if you use the calendar extensively. Moving from month to month generates multiple requests of this nature. You can see why it's much faster to fetch the data from a local .ost file.

You can't see Calendar Options in Outlook 98, but the Primarily Offline mode is the default. To disable this function, you must change the Registry. The Microsoft article "OL98: (CW) Outlook Slow to Start While Downloading Calendar" ( articles/q192/9/81.asp) explains how to deactivate this mode.

If you enable this mode, Outlook stores changes to the calendar locally and starts a background synchronization thread after about 10 seconds to synchronize this folder with the Exchange server. The synchronization speed varies with the amount of data and type of connection. If a delegate or another user makes changes to the server calendar folder, Outlook synchronizes this information during this synchronization period. Although this feature creates an .ost file on your local system similar to the one it creates for offline use, you can access appointments when you're not connected to a server. Select the Enable offline use check box on the Advanced tab of the Exchange Server Service Properties page to access appointments.

Using Different Time Zones
Outlook stores appointment items in the Calendar in Greenwich Mean Time (GMT). Outlook calculates the time to display by offsetting GMT by the local time zone setting, the computer's clock setting, and the computer's daylight-saving time adjustment setting. Therefore, if you change your current time zone, Outlook adjusts all your appointments to this time zone. For example, if you change the time zone from Berlin's to London's, Outlook displays all appointments as starting 1 hour earlier. If you're planning a meeting for a different time zone, you need to be aware of that behavior.

Another confusing behavior of Outlook is how it stores All Day Events: It stores not only the flag of an all-day event but also stores the start and end time as midnight local time. If you change the time zone, Outlook adjusts all-day events to start and end no longer at midnight but at midnight plus or minus the difference of the new time from the default time. You can change the meeting's time to your current local time only by exporting all events, changing the time zone, and importing everything again. The Microsoft article "OL98: Changing the Time Zone Without Changing Appointment Times" ( kb/articles/q181/1/70.asp) describes this approach in detail.

If you're traveling but don't want to change the time zone, you can add another time zone to your calendar. Go to Tools, Options, Calendar, and select the Show an additional time zone check box. In the Time Zone dialog box, enter the name of the current time zone and your home time zone in the Label box, and Outlook will display both zones in the Folder view.

When you print your appointments, however, you'll see the disadvantage of using this method. If you use the daily view, Outlook prints both time zones, but if you print a weekly or monthly view, Outlook prints only the primary zone. To change this behavior, you must make your current time zone the primary time zone. Remember that every time zone setting involved in the process of the appointment affects the display time of the meeting request. Making an appointment with a user in another time zone who has the wrong settings in time zone, daylight-saving time adjustment, or the local computer's time will result in Outlook calculating the wrong meeting time and therefore will cause confusion. To avoid this problem, large organizations can configure all client computers in each time zone the same way and use system policies to restrict users from changing the configuration. Time zone settings on Exchange servers don't affect the meeting times a client sets.

Outlook Add-Ons
Many developers have created add-ons for Outlook. Some of the best add-ons for calendaring are available at Slipstick Systems, which maintains a Calendar Tools page at

Coming Soon
In a future article, I'll look into the Exchange calendaring infrastructure and how to plan a reliable, fast calendaring structure for medium- to large-sized Exchange organizations. I'll discuss replication traffic and which type of replication is best suited for specific types of organizations. I'll also outline how to connect two Exchange organizations to share free/busy information.

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.