Although most Lotus Notes/Domino users and administrators are familiar with Notes Calendar and Scheduling (C&S) features, many do not realize that there is a separate specialized Domino system that it relies upon called the busytime system. The busytime system is responsible for providing an accurate picture of the availability of a person, room, or resource so that C&S can function efficiently.
This article presents an overview of the busytime system in Lotus Domino 6. We begin with a brief examination of the basic Notes/Domino busytime system, and then get into the enhancements found in Lotus Domino 6. If you are unfamiliar with the busytime system, you may find it useful to read some of the previous developerWorks: Lotus articles on C&S (most recently, "Lotus Notes Calendar and Scheduling explained! Part 1" and "Lotus Notes Calendar and Scheduling explained! Part 2"). However, you do not need any previous experience with C&S or the busytime system to follow along with the concepts and terminology discussed in this article.
General busytime design
The busytime system consists of three functional components: the Notes client/Domino server, the Schedule Manager (SchedMgr), and the Calendar Connector (CalConn). Figure 1 is a high-level diagram of how busytime requests are handled. The Notes client makes a single busytime request to the user's home Domino server, and the home server is responsible for fulfilling the request. This means that the information is either found locally and returned immediately, or the request is passed along to the Domino server that can fulfill it. When the requested busytime data is not found locally, CalConn is used to communicate between the home server and the appropriate Domino servers.
Figure 1. Busytime request handling
SchedMgr is the background part of the busytime system. It is responsible for monitoring local calendars for updates and updating the busytime database to keep it in sync with the calendar contents. It operates independently of any busytime lookups because its job is to maintain the busytime data, not serve it up.
Figure 2 illustrates the relationships between C&S components:
Figure 2. C&S components
A busytime request consists of a list of users to get busytime data for, the interval of time the client is interested in, and a few other parameters. The Domino server attempts to fulfill the request while respecting access controls set by each user of who can see his busytime. Any information about calendar entries outside the specified interval is not returned. Besides actual calendar entries, other information such as the user's profiled work hours and time zone are also returned to the requesting client. The client is responsible for taking all the data that is returned and using it to provide the user with an accurate view of each person's availability.
For servers that are in a cluster, the request is automatically sent to a cluster mate if the desired server is unavailable. This means that even when a user's home server is down, the busytime lookup can still proceed by getting the data from a cluster mate.
Changes to the busytime system for Lotus Notes/Domino 6
The original busytime design was useful in most cases, but there was one limitation to the system: The level of detailed information available to the requesting user was at the "Mary is busy from 9:30 AM - 11:00 AM tomorrow" level. There was no detailed data about the actual entry or entries that made up that block of time.
With Lotus Notes/Domino 6, the busytime system was extended to return detailed data about each entry in addition to the data already returned. This means that you can now see entry specific data in addition to the availability of other users.
To enable this feature, the Domino administrator must first set this option in the Configuration Settings document. By default, in the interest of possible privacy concerns, this feature is disabled on all Domino 6 servers. To enable (and configure) this feature, the Domino administrator must select the Extract calendar details option on the Basics tab of the default Configuration Settings document in the Domino Directory. The administrator is given the option to select which items should be harvested from calendar entries; the default list is Chair, Categories, Location, and Room.
Figure 3. Configuration Settings document
After the Configurations Settings options have been configured and saved, the SchedMgr begins to harvest these items from calendar entries in users' mail files. The Notes 6 mail template was updated to enable users to both disable this feature and to control who can see the harvested data. This allows a Notes 6 user the ability, for example, to allow only people in his division to see his busytime and only people in his group to see any details about his calendar entries.
Some C&S users have developed the habit of putting all kinds of information into the subject of a calendar entry. Sometimes this data is benign, such as Weekly Team Meeting. Other times this includes a lot of details, including potentially sensitive or confidential data that they likely would not want just anyone to see. For this reason, Lotus Notes gives individual users the ability to decide whether or not SchedMgr should also extract the Subject item of each calendar entry. All user selectable settings are found by opening your Inbox or Calendar and choosing Actions - Tools - Preferences. In the Preferences dialog box, select the Access & Delegation tab and the Access to Your Schedule subtab.
Figure 4. Access to Your Schedule settings
After the SchedMgr is enabled, it extracts data about each calendar entry and stores it in busytime. This does not happen, however, if the user has chosen not to allow this feature in the Calendar Preferences or if the user is not using a Notes 6 or later mail template. The latter was done so that data for pre-Notes 6 users is not harvested because they have no ability to disable this feature or control who can see what data. After users upgrade to a Notes 6 or later mail template, SchedMgr harvests details according to their preferences.
How to see busytime data
Now that the busytime has been enhanced to provide more detailed information about each user's calendar entries, just how do you see that information? Along with the enhanced busytime system, Lotus Notes/Domino 6 enhanced the GUI on the Notes client to better display busytime data.
When you create a new meeting invitation in Lotus Notes 6, you see a larger Scheduler control that displays the names and busytime data for all invitees.
Figure 5. Scheduler control
This new control allows you to get a better picture of each user you intend to invite. If you right-click any busy entry for a given user, you can see the number of calendar entries she has scheduled for the time slot where you clicked and can also get details about each of them. Figure 6 shows what you would see when you right-click the 11 AM - 12 PM time slot for the top user.
Figure 6. Busytime information menu
If the user whose busytime you are looking at is running Lotus Notes 6 and has not disabled the harvesting feature, then you get a dialog box with the particulars of the entry you selected.
Figure 7. Busytime details
Depending upon the information available on each entry, not all entries have the same items displayed. If an entry is only sparsely filled in, the results may look more like Figure 8.
Figure 8. Busytime details (sparse information)
There may also be times when you see a server message.
Figure 9. Busytime information unavailable message
This can be due to several factors, such as:
- The user is not using a Notes 6 or later mail template.
- The user is using Lotus Notes 6 or later, but has disabled the detail harvesting feature, or he has not given you access to see the details (but you can still see his busytime).
- The request for that user went through a pre-Notes 6 server. Because these servers do not understand the enhanced busytime requests, it is not possible to have them ask for the details.
Finally, there may be times when a calendar entry is marked Private in a user's mail file. SchedMgr does not harvest details for this entry. So there may be entries in which some details are returned and some in which you see the following message instead:
Figure 10. Busytime information private message
API programs can access the Domino busytime, so it is possible for them to request any number of items of any data type. As long as these items are configured for harvesting in the Default Configuration document and the user has not disabled detail harvesting, that data is returned to them. Any API program that currently accesses the busytime APIs should have little trouble being enhanced to handle detailed data. However, that?s a topic for another time.
All of this power is also available in the Notes 6 Group Calendar feature. So it is possible for a manager to create a Group Calendar of all her direct reports and to quickly and easily see a lot of information about what they are doing.
A few odds and ends
To keep the busytime data to a manageable size, data is only extracted once per instance of a repeating meeting. There is a 1 KB limit to each item's contents. This means that although users may have several weekly meetings that repeat for four years into the future, only one copy of the data is harvested.
Also, the intent of harvesting detailed information about each calendar entry is to make the C&S and Group Calendar features much more user-friendly. (No need to open someone's calendar on her home server just to find out that the entry is a team meeting.) If you want to see all of the details, read the actual calendar entry. After all, who really wants to struggle with a dialog box that has 5.2 KB of data in it when he only wants to see who is chairing a particular meeting?
In this article, we looked at both the basic busytime system components and related features introduced in Lotus Notes/Domino 6, including detail harvesting settings, individual user controls, and the Notes 6 interface. While many users have used the Notes 6 C&S, some may not have realized the nifty new features hiding just under their right mouse button. With Lotus Notes 6, users now have access to much more information about each other's calendars, so they can make more informed decisions about when to schedule meetings with each other.
- The developrWorks: Lotus articles, "Lotus Notes Calendar and Scheduling explained! Part 1" and "Lotus Notes Calendar and Scheduling explained! Part 2," explain the basics of how Notes/Domino Calendar and Scheduling works.
- Also, the article "Saving time with Notes 6 Calendar and Scheduling" offers a good basic introduction to the Notes C&S system.
- Get involved in the developerWorks community by participating in developerWorks blogs.
- Browse for books on these and other technical topics.
Dig deeper into IBM collaboration and social software on developerWorks
Experiment with new directions in software development.
Read and subscribe for the best and latest technical info to help you deal with your development challenges.
Software development in the cloud. Register today and get free private projects through 2014.
Evaluate IBM software and solutions, and transform challenges into opportunities.