Service: zimbraMail
Namespace: "urn:zimbraMail"
GetFreeBusy SOAP Command

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>

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="{zimbra-id}"] [name="{email}"] /> ## FreeBusyUserSpec)*
    </GetFreeBusyRequest>

The following table describes 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)" /> ## FreeBusyFREEslot
                <b s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" /> ## FreeBusyBUSYslot
                <t s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" /> ## FreeBusyBUSYTENTATIVEslot
                <u s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" /> ## FreeBusyBUSYUNAVAILABLEslot
                <n s="{start-millis-gmt} (long)" e="{end-millis-gmt} (long)" /> ## FreeBusyNODATAslot
            }
          </usr>)*
    </GetFreeBusyResponse>

The following table describes 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/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/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/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/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