Sun Java System Calendar Server 6 2005Q4 Developer's Guide

Free-busy Calendars

Calendars can be displayed in free-busy format instead of showing details of scheduled events and todos. Free-busy calendars are used to facilitate scheduling of events or todos in the event and todo creation dialogs in the user interface. They can also be used by calendar owners to prevent other users from viewing the details of their calendars.

This can be accomplished in two separate ways that are not mutually exclusive:

In free-busy calendars, instead of event or todo details, just the word “Busy” appears by the time block. Blocks of time without any scheduled events are listed also, with the word “Free” next to them.

For example, a calendar called jdoe has the following events:

10:00-11:00 

first meeting 

12:00-1:00 

lunch 

3:00-4:00 

second meeting 

If user john has only free-busy access to the calendar jdoe, user john gets only a free-busy version of the calendar. The free-busy time for jdoe (from 9:00 to 6:00) would appear as the following:

9:00-10:00 

Free 

10:00-11:00 

Busy 

11:00-12:00 

Free 

12:00-1:00 

Busy 

1:00-3:00 

Free 

3:00-4:00 

Busy 

4:00-6:00 

Free 

Notice that john does not know the details of why the user is busy, but knows when the user is busy.

The get_freebusy command allows selection of which calendars to use in the calculation in two ways: using the calid parameter, or the mail parameter. One of the parameters is required, but not both. If both are present, the calid value is used.

When an email address is passed in using the mail parameter, all calendars, for which this user is the primary owner and which have fbinclude=1 in their calendar properties settings, are included in the free-busy calculation.

When the calid parameter is used, specific calendars can be named rather than using all of owners calendars. Note that the calid parameter can take an email address (by specifying mailto:ref822address, where rfc822address is any valid email address that maps to a single calendar in the local LDAP directory).

The command returns the busy data only. The rest of the time slots are presumed to be free.