Service: zimbraMail

Command: GetFreeBusy
Namespace: urn:zimbraMail
Description: Get Free/Busy information.
For accounts listed using uid,id or name attributes, f/b search will be done for all calendar folders.
To view free/busy for a single folder in a particular account, use <usr>
Properties:
Authorization token required false - Freebusy information considered public if available
Admin Authorization token required false

GetFreeBusyRequest

    <GetFreeBusyRequest s="{range-start-millis-gmt} (long)" e="{range-end-millis-gmt} (long)"
                           [uid="{comma-sep-zimbraId-or-email}"] [id="{comma-sep-id}"] [name="{comma-sep-emails}"]
                           [excludeUid="{exclude-uid}"]> ## GetFreeBusyRequest
        (<usr [l="{calendar-folder-id} (Integer)"] [id="{id}"] [name="{email}"] /> ## FreeBusyUserSpec)*
    </GetFreeBusyRequest>

elements and attributes you can define within a <GetFreeBusyRequest> element:

XPath Required / Optional Description
@s Required (only 1) Type: long
Range start in milliseconds
@e Required (only 1) Type: long
Range end in milliseconds
@uid Optional (0 or 1) Type: String
DEPRECATED. Comma-separated list of Zimbra IDs or emails. Each value can be a Ziimbra ID or an email.
@id Optional (0 or 1) Type: String
Comma separated list of Zimbra IDs
@name Optional (0 or 1) Type: String
Comma separated list of Emails
@excludeUid Optional (0 or 1) Type: String
UID of appointment to exclude from free/busy search
/usr Optional (0 or more) To view free/busy for a single folders in particular accounts, use these.
/usr@l Optional (0 or 1) Type: Integer
Calendar folder ID; if omitted, get f/b on all calendar folders
/usr@id Optional (0 or 1) Type: String
Zimbra ID Either "name" or "id" must be specified
/usr@name Optional (0 or 1) Type: String
Email address. Either "name" or "id" must be specified

GetFreeBusyResponse

    <GetFreeBusyResponse> ## GetFreeBusyResponse
        (<usr id="{account-email}"> ## FreeBusyUserInfo
            List of any of: {
                <f s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" [eventId="{id}"] [subject="{subject}"]
                       [location="{location}"] [isMeeting="{isMeeting} (boolean)"] [isRecurring="{isRecurring} (boolean)"]
                       [isException="{isException} (boolean)"] [isReminderSet="{isReminderSet} (boolean)"]
                       [isPrivate="{isPrivate} (boolean)"] [hasPermission="{hasPermission} (boolean)"] /> ## FreeBusyFREEslot
                <b s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" [eventId="{id}"] [subject="{subject}"]
                       [location="{location}"] [isMeeting="{isMeeting} (boolean)"] [isRecurring="{isRecurring} (boolean)"]
                       [isException="{isException} (boolean)"] [isReminderSet="{isReminderSet} (boolean)"]
                       [isPrivate="{isPrivate} (boolean)"] [hasPermission="{hasPermission} (boolean)"] /> ## FreeBusyBUSYslot
                <t s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" [eventId="{id}"] [subject="{subject}"]
                       [location="{location}"] [isMeeting="{isMeeting} (boolean)"] [isRecurring="{isRecurring} (boolean)"]
                       [isException="{isException} (boolean)"] [isReminderSet="{isReminderSet} (boolean)"]
                       [isPrivate="{isPrivate} (boolean)"] [hasPermission="{hasPermission} (boolean)"] /> ## FreeBusyBUSYTENTATIVEslot
                <u s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" [eventId="{id}"] [subject="{subject}"]
                       [location="{location}"] [isMeeting="{isMeeting} (boolean)"] [isRecurring="{isRecurring} (boolean)"]
                       [isException="{isException} (boolean)"] [isReminderSet="{isReminderSet} (boolean)"]
                       [isPrivate="{isPrivate} (boolean)"] [hasPermission="{hasPermission} (boolean)"] /> ## FreeBusyBUSYUNAVAILABLEslot
                <n s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" [eventId="{id}"] [subject="{subject}"]
                       [location="{location}"] [isMeeting="{isMeeting} (boolean)"] [isRecurring="{isRecurring} (boolean)"]
                       [isException="{isException} (boolean)"] [isReminderSet="{isReminderSet} (boolean)"]
                       [isPrivate="{isPrivate} (boolean)"] [hasPermission="{hasPermission} (boolean)"] /> ## FreeBusyNODATAslot
            }
          </usr>)*
    </GetFreeBusyResponse>

elements and attributes you can define within a <GetFreeBusyResponse> element:

XPath Required / Optional Description
/usr Optional (0 or more) Freebusy information for users
/usr@id Required (only 1) Type: String
"id" is always account email; it is not zimbraId as the attribute name may suggest
/usr/f Optional (0 or 1)
/usr/f@s Required (only 1) Type: long
GMT Start time for slot in milliseconds
/usr/f@e Required (only 1) Type: long
GMT End time for slot in milliseconds
/usr/f@eventId Optional (0 or 1) Type: String
calendar event id
/usr/f@subject Optional (0 or 1) Type: String
Appointment subject
/usr/f@location Optional (0 or 1) Type: String
location of meeting
/usr/f@isMeeting Optional (0 or 1) Type: boolean
returns a boolean value whether this calendar event is a meeting or not.
/usr/f@isRecurring Optional (0 or 1) Type: boolean
returns a boolean indicating whether it is continuous or not.
/usr/f@isException Optional (0 or 1) Type: boolean
returns a boolean indicating whether there is any exception or not.
/usr/f@isReminderSet Optional (0 or 1) Type: boolean
returns a boolean indicating whether any reminder has been set or not.
/usr/f@isPrivate Optional (0 or 1) Type: boolean
returns a boolean indicating whether this meeting is private or not.
/usr/f@hasPermission Optional (0 or 1) Type: boolean
returns a boolean indicating hasPermission to view FreeBusy information
/usr/b Optional (0 or 1)
/usr/b@s Required (only 1) Type: long
GMT Start time for slot in milliseconds
/usr/b@e Required (only 1) Type: long
GMT End time for slot in milliseconds
/usr/b@eventId Optional (0 or 1) Type: String
calendar event id
/usr/b@subject Optional (0 or 1) Type: String
Appointment subject
/usr/b@location Optional (0 or 1) Type: String
location of meeting
/usr/b@isMeeting Optional (0 or 1) Type: boolean
returns a boolean value whether this calendar event is a meeting or not.
/usr/b@isRecurring Optional (0 or 1) Type: boolean
returns a boolean indicating whether it is continuous or not.
/usr/b@isException Optional (0 or 1) Type: boolean
returns a boolean indicating whether there is any exception or not.
/usr/b@isReminderSet Optional (0 or 1) Type: boolean
returns a boolean indicating whether any reminder has been set or not.
/usr/b@isPrivate Optional (0 or 1) Type: boolean
returns a boolean indicating whether this meeting is private or not.
/usr/b@hasPermission Optional (0 or 1) Type: boolean
returns a boolean indicating hasPermission to view FreeBusy information
/usr/t Optional (0 or 1)
/usr/t@s Required (only 1) Type: long
GMT Start time for slot in milliseconds
/usr/t@e Required (only 1) Type: long
GMT End time for slot in milliseconds
/usr/t@eventId Optional (0 or 1) Type: String
calendar event id
/usr/t@subject Optional (0 or 1) Type: String
Appointment subject
/usr/t@location Optional (0 or 1) Type: String
location of meeting
/usr/t@isMeeting Optional (0 or 1) Type: boolean
returns a boolean value whether this calendar event is a meeting or not.
/usr/t@isRecurring Optional (0 or 1) Type: boolean
returns a boolean indicating whether it is continuous or not.
/usr/t@isException Optional (0 or 1) Type: boolean
returns a boolean indicating whether there is any exception or not.
/usr/t@isReminderSet Optional (0 or 1) Type: boolean
returns a boolean indicating whether any reminder has been set or not.
/usr/t@isPrivate Optional (0 or 1) Type: boolean
returns a boolean indicating whether this meeting is private or not.
/usr/t@hasPermission Optional (0 or 1) Type: boolean
returns a boolean indicating hasPermission to view FreeBusy information
/usr/u Optional (0 or 1)
/usr/u@s Required (only 1) Type: long
GMT Start time for slot in milliseconds
/usr/u@e Required (only 1) Type: long
GMT End time for slot in milliseconds
/usr/u@eventId Optional (0 or 1) Type: String
calendar event id
/usr/u@subject Optional (0 or 1) Type: String
Appointment subject
/usr/u@location Optional (0 or 1) Type: String
location of meeting
/usr/u@isMeeting Optional (0 or 1) Type: boolean
returns a boolean value whether this calendar event is a meeting or not.
/usr/u@isRecurring Optional (0 or 1) Type: boolean
returns a boolean indicating whether it is continuous or not.
/usr/u@isException Optional (0 or 1) Type: boolean
returns a boolean indicating whether there is any exception or not.
/usr/u@isReminderSet Optional (0 or 1) Type: boolean
returns a boolean indicating whether any reminder has been set or not.
/usr/u@isPrivate Optional (0 or 1) Type: boolean
returns a boolean indicating whether this meeting is private or not.
/usr/u@hasPermission Optional (0 or 1) Type: boolean
returns a boolean indicating hasPermission to view FreeBusy information
/usr/n Optional (0 or 1)
/usr/n@s Required (only 1) Type: long
GMT Start time for slot in milliseconds
/usr/n@e Required (only 1) Type: long
GMT End time for slot in milliseconds
/usr/n@eventId Optional (0 or 1) Type: String
calendar event id
/usr/n@subject Optional (0 or 1) Type: String
Appointment subject
/usr/n@location Optional (0 or 1) Type: String
location of meeting
/usr/n@isMeeting Optional (0 or 1) Type: boolean
returns a boolean value whether this calendar event is a meeting or not.
/usr/n@isRecurring Optional (0 or 1) Type: boolean
returns a boolean indicating whether it is continuous or not.
/usr/n@isException Optional (0 or 1) Type: boolean
returns a boolean indicating whether there is any exception or not.
/usr/n@isReminderSet Optional (0 or 1) Type: boolean
returns a boolean indicating whether any reminder has been set or not.
/usr/n@isPrivate Optional (0 or 1) Type: boolean
returns a boolean indicating whether this meeting is private or not.
/usr/n@hasPermission Optional (0 or 1) Type: boolean
returns a boolean indicating hasPermission to view FreeBusy information