Service: zimbraMail

Command: GetWorkingHours
Namespace: urn:zimbraMail
Description: User's working hours within the given time range are expressed in a similar format to the format used for GetFreeBusy.
Working hours are indicated as free, non-working hours as unavailable/out of office. The entire time range is marked as unknown if there was an error determining the working hours, e.g. unknown user.
Properties:
Authorization token required false - Working hours information considered public if available
Admin Authorization token required false

GetWorkingHoursRequest

    <GetWorkingHoursRequest s="{range-start-millis} (long)" e="{range-end-millis} (long)" [id="{comma-sep-ids}"]
                               [name="{comma-sep-emails}"] /> ## GetWorkingHoursRequest

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

XPath Required / Optional Description
@s Required (only 1) Type: long
Range start in milliseconds since the epoch
@e Required (only 1) Type: long
Range end in milliseconds since the epoch
@id Optional (0 or 1) Type: String
Comma-separated list of Zimbra IDs
@name Optional (0 or 1) Type: String
Comma-separated list of email addresses

GetWorkingHoursResponse

    <GetWorkingHoursResponse> ## GetWorkingHoursResponse
        (<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>)*
    </GetWorkingHoursResponse>

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

XPath Required / Optional Description
/usr Optional (0 or more) Working hours information by user
/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