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

Check conflicts in recurrence against list of users.
Set all attribute to get all instances, even those without conflicts. By default only instances that have conflicts are returned.

Authorization token required true
Admin Authorization token required false

CheckRecurConflictsRequest

    <CheckRecurConflictsRequest [s="{start-time-millis} (Long)"] [e="{end-time-millis} (Long)"]
                                   [all="{get-all-instances} (0|1)"] [excludeUid="{exclude-uid}"]> ## CheckRecurConflictsRequest
        (<tz id="{timezone-id}" stdoff="{timezone-std-offset} (Integer)" dayoff="{timezone-daylight-offset} (Integer)"
                 [stdname="..."] [dayname="..."]> ## CalTZInfo
            <standard [week="{tzonset-week} (Integer)"] [wkday="{tzonset-day-of-week} (Integer)"]
                          mon="{tzonset-month} (Integer)" [mday="{tzonset-day-of-month} (Integer)"]
                          hour="{tzonset-hour} (Integer)" min="{tzonset-minute} (Integer)" sec="{tzonset-second} (Integer)" /> ## TzOnsetInfo
            <daylight ... /> ## See /tz/standard [ ## TzOnsetInfo]
          </tz>)*
        List of any of: {
            <cancel [s="{dtstart-millis} (Long)"] [e="{dtend-millis} (Long)"]> ## ExpandedRecurrenceCancel
                <exceptId [range="{range-THISANDFUTURE|THISANDPRIOR}"] [d="{DATETIME-YYYYMMDD['T'HHMMSS[Z]]}"]
                              [tz="{timezone-identifier}"] /> ## InstanceRecurIdInfo
                <dur [neg="{duration-negative} (0|1)"] [w="{duration-weeks} (Integer)"] [d="{duration-days} (Integer)"]
                         [h="{duration-hours} (Integer)"] [m="{duration-minutes} (Integer)"]
                         [s="{duration-seconds} (Integer)"] [related="{alarm-related}"]
                         [count="{alarm-repeat-count} (Integer)"] /> ## DurationInfo
                <recur> ## RecurrenceInfo
                    List of any of: {
                        <add> ## AddRecurrenceInfo
                            List of any of: {
                                <add> ... </add> ## See /cancel/recur/add [ ## AddRecurrenceInfo] # [inside itself]
                                <exclude> ## ExcludeRecurrenceInfo
                                    List of any of: {
                                        <add> ... </add> ## See /cancel/recur/add [ ## AddRecurrenceInfo] # [inside itself]
                                        <exclude> ... </exclude> ## See /cancel/recur/add/exclude [ ## ExcludeRecurrenceInfo] # [inside itself]
                                        <except rangeType="{range-type} (int)" recurId="{YYMMDD[THHMMSS[Z]]}"
                                                    [tz="{timezone-name}"] [ridZ="{YYMMDDTHHMMSSZ}"]> ## ExceptionRuleInfo
                                            <add> ... </add> ## See /cancel/recur [ ## RecurrenceInfo] # [inside itself]
                                            <exclude> ... </exclude> ## See /cancel/recur [ ## RecurrenceInfo] # [inside itself]
                                         </except>
                                        <cancel rangeType="{range-type} (int)" recurId="{YYMMDD[THHMMSS[Z]]}"
                                                    [tz="{timezone-name}"] [ridZ="{YYMMDDTHHMMSSZ}"] /> ## CancelRuleInfo
                                        <dates [tz="{TZID}"]> ## SingleDates
                                            (<dtval> ## DtVal
                                                <s [d="{YYYYMMDD['T'HHMMSS[Z]]}"] [tz="{timezone-identifier}"]
                                                       [u="{utc-time} (Long)"] /> ## DtTimeInfo
                                                <e ... /> ## See /cancel/recur/add/exclude/dates/dtval/s [ ## DtTimeInfo]
                                                <dur ... /> ## See /cancel/dur [ ## DurationInfo]
                                              </dtval>)*
                                         </dates>
                                        <rule freq="{freq}"> ## SimpleRepeatingRule
                                            <until d="{YYYYMMDD[ThhmmssZ]}" /> ## DateTimeStringAttr
                                            <count num="{num} (int)" /> ## NumAttr
                                            <interval ival="{rule-interval} (int)" /> ## IntervalRule
                                            <bysecond seclist="{second-list}" /> ## BySecondRule
                                            <byminute minlist="{minute-list}" /> ## ByMinuteRule
                                            <byhour hrlist="{hour-list}" /> ## ByHourRule
                                            <byday> ## ByDayRule
                                                (<wkday day="{weekday}" [ordwk="{ord-wk-[[+]|-]num} (Integer)"] /> ## WkDay)*
                                             </byday>
                                            <bymonthday modaylist="{modaylist}" /> ## ByMonthDayRule
                                            <byyearday yrdaylist="{byyearday-yrdaylist}" /> ## ByYearDayRule
                                            <byweekno wklist="{byweekno-wklist}" /> ## ByWeekNoRule
                                            <bymonth molist="{month-list}" /> ## ByMonthRule
                                            <bysetpos poslist="{bysetpos-list}" /> ## BySetPosRule
                                            <wkst day="{weekday}" /> ## WkstRule
                                            (<rule-x-name [name="{xname-name}"] [value="{xname-value}"] /> ## XNameRule)*
                                         </rule>
                                    }
                                 </exclude>
                                <except ... > ... </except> ## See /cancel/recur/add/exclude/except [ ## ExceptionRuleInfo]
                                <cancel ... /> ## See /cancel/recur/add/exclude/cancel [ ## CancelRuleInfo]
                                <dates [tz="{TZID}"]> ... </dates> ## See /cancel/recur/add/exclude/dates [ ## SingleDates]
                                <rule freq="{freq}"> ... </rule> ## See /cancel/recur/add/exclude/rule [ ## SimpleRepeatingRule]
                            }
                         </add>
                        <exclude> ... </exclude> ## See /cancel/recur/add/exclude [ ## ExcludeRecurrenceInfo]
                        <except ... > ... </except> ## See /cancel/recur/add/exclude/except [ ## ExceptionRuleInfo]
                        <cancel ... /> ## See /cancel/recur/add/exclude/cancel [ ## CancelRuleInfo]
                        <dates [tz="{TZID}"]> ... </dates> ## See /cancel/recur/add/exclude/dates [ ## SingleDates]
                        <rule freq="{freq}"> ... </rule> ## See /cancel/recur/add/exclude/rule [ ## SimpleRepeatingRule]
                    }
                 </recur>
             </cancel>
            <comp [s="{dtstart-millis} (Long)"] [e="{dtend-millis} (Long)"]> ## ExpandedRecurrenceInvite
                <exceptId ... /> ## See /cancel/exceptId [ ## InstanceRecurIdInfo]
                <dur ... /> ## See /cancel/dur [ ## DurationInfo]
                <recur> ... </recur> ## See /cancel/recur [ ## RecurrenceInfo]
             </comp>
            <except [s="{dtstart-millis} (Long)"] [e="{dtend-millis} (Long)"]> ## ExpandedRecurrenceException
                <exceptId ... /> ## See /cancel/exceptId [ ## InstanceRecurIdInfo]
                <dur ... /> ## See /cancel/dur [ ## DurationInfo]
                <recur> ... </recur> ## See /cancel/recur [ ## RecurrenceInfo]
             </except>
        }
        (<usr [l="{calendar-folder-id} (Integer)"] [id="{zimbra-id}"] [name="{email}"] /> ## FreeBusyUserSpec)*
    </CheckRecurConflictsRequest>

The following table describes elements and attributes you can define within a <CheckRecurConflictsRequest> element:

XPath Required / Optional Description
@s Optional (0 or 1) Type:Long
Start time in millis. If not specified, defaults to current time
@e Optional (0 or 1) Type:Long
End time in millis. If not specified, unlimited
@all Optional (0 or 1) Type:0|1
Set this to get all instances, even those without conflicts. By default only instances that have conflicts are returned.
@excludeUid Optional (0 or 1) Type:String
UID of appointment to exclude from free/busy search
/tz Optional (0 or more) Timezones
/tz@id Required (only 1) Type:String
Timezone ID. If this is the only detail present then this should be an existing server-known timezone's ID Otherwise, it must be present, although it will be ignored by the server
/tz@stdoff Required (only 1) Type:Integer
Standard Time's offset in minutes from UTC; local = UTC + offset
/tz@dayoff Required (only 1) Type:Integer
Daylight Saving Time's offset in minutes from UTC; present only if DST is used
/tz@stdname Optional (0 or 1) Type:String
Standard Time component's timezone name
/tz@dayname Optional (0 or 1) Type:String
Daylight Saving Time component's timezone name
/tz/standard Optional (0 or 1) Time/rule for transitioning from daylight time to standard time. Either specify week/wkday combo, or mday.
/tz/standard@week Optional (0 or 1) Type:Integer
Week number; 1=first, 2=second, 3=third, 4=fourth, -1=last
/tz/standard@wkday Optional (0 or 1) Type:Integer
Day of week; 1=Sunday, 2=Monday, etc.
/tz/standard@mon Required (only 1) Type:Integer
Month; 1=January, 2=February, etc.
/tz/standard@mday Optional (0 or 1) Type:Integer
Day of month (1..31)
/tz/standard@hour Required (only 1) Type:Integer
Transition hour (0..23)
/tz/standard@min Required (only 1) Type:Integer
Transition minute (0..59)
/tz/standard@sec Required (only 1) Type:Integer
Transition second; 0..59, usually 0
/tz/daylight Optional (0 or 1) Time/rule for transitioning from standard time to daylight time
See /tz/standard for more details.
/cancel Optional (0 or 1)
/cancel@s Optional (0 or 1) Type:Long
DTSTART time in milliseconds since the Epoch
/cancel@e Optional (0 or 1) Type:Long
DTEND time in milliseconds since the Epoch
/cancel/exceptId Optional (0 or 1) RECURRENCE_ID
/cancel/exceptId@range Optional (0 or 1) Type:String
Range - THISANDFUTURE|THISANDPRIOR
/cancel/exceptId@d Optional (0 or 1) Type:String
Date and/or time. Format is : YYYYMMDD['T'HHMMSS[Z]]
where:
     YYYY - 4 digit year
     MM   - 2 digit month
     DD   - 2 digit day
 Optionally:
     'T' the literal char "T" then 
     HH - 2 digit hour (00-23)
     MM - 2 digit minute (00-59)
     SS - 2 digit second (00-59)
     ...and finally an optional "Z" meaning that the time is UTC,
     otherwise the tz="TIMEZONE" param MUST be specified with the DATETIME
     e.g:
         20050612  June 12, 2005
         20050315T18302305Z  March 15, 2005 6:30:23.05 PM UTC
 
/cancel/exceptId@tz Optional (0 or 1) Type:String
Java timezone identifier
/cancel/dur Optional (0 or 1) DURATION
/cancel/dur@neg Optional (0 or 1) Type:0|1
Set if the duration is negative.
/cancel/dur@w Optional (0 or 1) Type:Integer
Weeks component of the duration
Special note: if WEEKS are specified, NO OTHER OFFSET MAY BE SPECIFIED (weeks must be alone, per RFC2445)
/cancel/dur@d Optional (0 or 1) Type:Integer
Days component of the duration
/cancel/dur@h Optional (0 or 1) Type:Integer
Hours component of the duration
/cancel/dur@m Optional (0 or 1) Type:Integer
Minutes component of the duration
/cancel/dur@s Optional (0 or 1) Type:Integer
Seconds component of the duration
/cancel/dur@related Optional (0 or 1) Type:String
Specifies whether the alarm is related to the start of end.
Valid values are : START|END
/cancel/dur@count Optional (0 or 1) Type:Integer
Alarm repeat count
/cancel/recur Optional (0 or 1) RRULE/RDATE/EXDATE information
/cancel/recur/add Optional (0 or 1)
/cancel/recur/add/add Optional (0 or 1) See /cancel/recur/add for more details.
/cancel/recur/add/exclude Optional (0 or 1)
/cancel/recur/add/exclude/add Optional (0 or 1) See /cancel/recur/add for more details.
/cancel/recur/add/exclude/exclude Optional (0 or 1) See /cancel/recur/add/exclude for more details.
/cancel/recur/add/exclude/except Optional (0 or 1)
/cancel/recur/add/exclude/except@rangeType Required (only 1) Type:int
Recurrence range type
/cancel/recur/add/exclude/except@recurId Required (only 1) Type:String
Recurrence ID in format : YYMMDD[THHMMSS[Z]]
/cancel/recur/add/exclude/except@tz Optional (0 or 1) Type:String
Timezone name
/cancel/recur/add/exclude/except@ridZ Optional (0 or 1) Type:String
Recurrence-id in UTC time zone; used in non-all-day appointments only
Format: YYMMDDTHHMMSSZ
/cancel/recur/add/exclude/except/add Optional (0 or 1) Dates or rules which ADD instances. ADDs are evaluated before EXCLUDEs
See /cancel/recur for more details.
/cancel/recur/add/exclude/except/exclude Optional (0 or 1) Dates or rules which EXCLUDE instances
See /cancel/recur for more details.
/cancel/recur/add/exclude/cancel Optional (0 or 1)
/cancel/recur/add/exclude/cancel@rangeType Required (only 1) Type:int
Recurrence range type
/cancel/recur/add/exclude/cancel@recurId Required (only 1) Type:String
Recurrence ID in format : YYMMDD[THHMMSS[Z]]
/cancel/recur/add/exclude/cancel@tz Optional (0 or 1) Type:String
Timezone name
/cancel/recur/add/exclude/cancel@ridZ Optional (0 or 1) Type:String
Recurrence-id in UTC time zone; used in non-all-day appointments only
Format: YYMMDDTHHMMSSZ
/cancel/recur/add/exclude/dates Optional (0 or 1)
/cancel/recur/add/exclude/dates@tz Optional (0 or 1) Type:String
TZID
/cancel/recur/add/exclude/dates/dtval Optional (0 or more) Information on start date/time and end date/time or duration
/cancel/recur/add/exclude/dates/dtval/s Optional (0 or 1) Start DATE-TIME
/cancel/recur/add/exclude/dates/dtval/s@d Optional (0 or 1) Type:String
Date and/or time. Format is : YYYYMMDD['T'HHMMSS[Z]]
where:
     YYYY - 4 digit year
     MM   - 2 digit month
     DD   - 2 digit day
 Optionally:
     'T' the literal char "T" then
     HH - 2 digit hour (00-23)
     MM - 2 digit minute (00-59)
     SS - 2 digit second (00-59)
     ...and finally an optional "Z" meaning that the time is UTC,
     otherwise the tz="TIMEZONE" param MUST be specified with the DATETIME
     e.g:
         20050612  June 12, 2005
         20050315T18302305Z  March 15, 2005 6:30:23.05 PM UTC
 
/cancel/recur/add/exclude/dates/dtval/s@tz Optional (0 or 1) Type:String
Java timezone identifier
/cancel/recur/add/exclude/dates/dtval/s@u Optional (0 or 1) Type:Long
UTC time as milliseconds since the epoch. Set if non-all-day
/cancel/recur/add/exclude/dates/dtval/e Optional (0 or 1) Start DATE-TIME
See /cancel/recur/add/exclude/dates/dtval/s for more details.
/cancel/recur/add/exclude/dates/dtval/dur Optional (0 or 1) Duration information
See /cancel/dur for more details.
/cancel/recur/add/exclude/rule Optional (0 or 1)
/cancel/recur/add/exclude/rule@freq Required (only 1) Type:String
Frequency - SEC,MIN,HOU,DAI,WEE,MON,YEA
/cancel/recur/add/exclude/rule/until Optional (0 or 1) UNTIL date specification
/cancel/recur/add/exclude/rule/until@d Required (only 1) Type:String
Date in format : YYYYMMDD[ThhmmssZ]
/cancel/recur/add/exclude/rule/count Optional (0 or 1) Count of instances to generate
/cancel/recur/add/exclude/rule/count@num Required (only 1) Type:int
Number
/cancel/recur/add/exclude/rule/interval Optional (0 or 1) Interval specification
/cancel/recur/add/exclude/rule/interval@ival Required (only 1) Type:int
Rule interval count - a positive integer
/cancel/recur/add/exclude/rule/bysecond Optional (0 or 1) BYSECOND rule
/cancel/recur/add/exclude/rule/bysecond@seclist Required (only 1) Type:String
Comma separated list of seconds where second is a number between 0 and 59
/cancel/recur/add/exclude/rule/byminute Optional (0 or 1) BYMINUTE rule
/cancel/recur/add/exclude/rule/byminute@minlist Required (only 1) Type:String
Comma separated list of minutes where minute is a number between 0 and 59
/cancel/recur/add/exclude/rule/byhour Optional (0 or 1) BYHOUR rule
/cancel/recur/add/exclude/rule/byhour@hrlist Required (only 1) Type:String
Comma separated list of hours where hour is a number between 0 and 23
/cancel/recur/add/exclude/rule/byday Optional (0 or 1) BYDAY rule
/cancel/recur/add/exclude/rule/byday/wkday Optional (0 or more) By day weekday rule specification
/cancel/recur/add/exclude/rule/byday/wkday@day Required (only 1) Type:String
Weekday - SU|MO|TU|WE|TH|FR|SA
/cancel/recur/add/exclude/rule/byday/wkday@ordwk Optional (0 or 1) Type:Integer
Week number. [[+]|-]num num: 1 to 53
/cancel/recur/add/exclude/rule/bymonthday Optional (0 or 1) BYMONTHDAY rule
/cancel/recur/add/exclude/rule/bymonthday@modaylist Required (only 1) Type:String
Comma separated list of day numbers from either the start (positive) or the end (negative) of the month - format : [[+]|-]num[,...] where num between 1 to 31
e.g. modaylist="1,+2,-7"
means first day of the month, plus the 2nd day of the month, plus the 7th from last day of the month.
/cancel/recur/add/exclude/rule/byyearday Optional (0 or 1) BYYEARDAY rule
/cancel/recur/add/exclude/rule/byyearday@yrdaylist Required (only 1) Type:String
BYYEARDAY yearday list. Format : [[+]|-]num[,...]" where num is between 1 and 366
e.g. <byyearday yrdaylist="1,+2,-1"/> means January 1st, January 2nd, and December 31st.
/cancel/recur/add/exclude/rule/byweekno Optional (0 or 1) BYWEEKNO rule
/cancel/recur/add/exclude/rule/byweekno@wklist Required (only 1) Type:String
BYWEEKNO Week list. Format : [[+]|-]num[,...] where num is between 1 and 53
e.g. <byweekno wklist="1,+2,-1"/> means first week, 2nd week, and last week of the year.
/cancel/recur/add/exclude/rule/bymonth Optional (0 or 1) BYMONTH rule
/cancel/recur/add/exclude/rule/bymonth@molist Required (only 1) Type:String
Comma separated list of months where month is a number between 1 and 12
/cancel/recur/add/exclude/rule/bysetpos Optional (0 or 1) BYSETPOS rule
/cancel/recur/add/exclude/rule/bysetpos@poslist Required (only 1) Type:String
Format [[+]|-]num[,...] where num is from 1 to 366
<bysetpos> MUST only be used in conjunction with another <byXXX> element.
/cancel/recur/add/exclude/rule/wkst Optional (0 or 1) Week start day - SU,MO,TU,WE,TH,FR,SA
/cancel/recur/add/exclude/rule/wkst@day Required (only 1) Type:String
Weekday - SU|MO|TU|WE|TH|FR|SA
/cancel/recur/add/exclude/rule/rule-x-name Optional (0 or more) X Name rules
/cancel/recur/add/exclude/rule/rule-x-name@name Optional (0 or 1) Type:String
XNAME Name
/cancel/recur/add/exclude/rule/rule-x-name@value Optional (0 or 1) Type:String
XNAME Value
/cancel/recur/add/except Optional (0 or 1) See /cancel/recur/add/exclude/except for more details.
/cancel/recur/add/cancel Optional (0 or 1) See /cancel/recur/add/exclude/cancel for more details.
/cancel/recur/add/dates Optional (0 or 1) See /cancel/recur/add/exclude/dates for more details.
/cancel/recur/add/rule Optional (0 or 1) See /cancel/recur/add/exclude/rule for more details.
/cancel/recur/exclude Optional (0 or 1) See /cancel/recur/add/exclude for more details.
/cancel/recur/except Optional (0 or 1) See /cancel/recur/add/exclude/except for more details.
/cancel/recur/cancel Optional (0 or 1) See /cancel/recur/add/exclude/cancel for more details.
/cancel/recur/dates Optional (0 or 1) See /cancel/recur/add/exclude/dates for more details.
/cancel/recur/rule Optional (0 or 1) See /cancel/recur/add/exclude/rule for more details.
/comp Optional (0 or 1)
/comp@s Optional (0 or 1) Type:Long
DTSTART time in milliseconds since the Epoch
/comp@e Optional (0 or 1) Type:Long
DTEND time in milliseconds since the Epoch
/comp/exceptId Optional (0 or 1) RECURRENCE_ID
See /cancel/exceptId for more details.
/comp/dur Optional (0 or 1) DURATION
See /cancel/dur for more details.
/comp/recur Optional (0 or 1) RRULE/RDATE/EXDATE information
See /cancel/recur for more details.
/except Optional (0 or 1)
/except@s Optional (0 or 1) Type:Long
DTSTART time in milliseconds since the Epoch
/except@e Optional (0 or 1) Type:Long
DTEND time in milliseconds since the Epoch
/except/exceptId Optional (0 or 1) RECURRENCE_ID
See /cancel/exceptId for more details.
/except/dur Optional (0 or 1) DURATION
See /cancel/dur for more details.
/except/recur Optional (0 or 1) RRULE/RDATE/EXDATE information
See /cancel/recur for more details.
/usr Optional (0 or more) Freebusy user specifications
/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

CheckRecurConflictsResponse

    <CheckRecurConflictsResponse> ## CheckRecurConflictsResponse
        (<inst [s="{start-time-millis} (Long)"] [dur="{duration-millies} (Long)"] [allDay="{is-all-day} (0|1)"]
                   [tzo="{tz-offset-millis} (Integer)"] [ridZ="{utc-recurrence-id}"]> ## ConflictRecurrenceInstance
            (<usr name="{email}" fb="{freebusy-status-B|T|O}" /> ## FreeBusyUserStatus)*
          </inst>)*
    </CheckRecurConflictsResponse>

The following table describes elements and attributes you can define within a <CheckRecurConflictsResponse> element:

XPath Required / Optional Description
/inst Optional (0 or more) Information on conflicting instances
/inst@s Optional (0 or 1) Type:Long
Start time in milliseconds
/inst@dur Optional (0 or 1) Type:Long
Duration in milliseconds
/inst@allDay Optional (0 or 1) Type:0|1
Set if the instance is for an all day appointment
/inst@tzo Optional (0 or 1) Type:Integer
GMT offset of start time in milliseconds; returned only when allDay is set
/inst@ridZ Optional (0 or 1) Type:String
Recurrence ID string in UTC timezone
/inst/usr Optional (0 or more) Free/Busy user status
/inst/usr@name Required (only 1) Type:String
Email address for a user who has a conflict with the instance
/inst/usr@fb Required (only 1) Type:String
Free/Busy status - B|T|O (Busy, Tentative or Out-of-office)