Service: zimbraMail

Command: GetRecur
Namespace: urn:zimbraMail
Description: Retrieve the recurrence definition of an appointment
Properties:
Authorization token required true
Admin Authorization token required false

GetRecurRequest

    <GetRecurRequest id="{calendar-item-id}" /> ## GetRecurRequest

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

XPath Required / Optional Description
@id Required (only 1) Type: String
Calendar item ID

GetRecurResponse

    <GetRecurResponse> ## GetRecurResponse
        <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> ## CancelItemRecur
                <exceptId d="{DATETIME-YYYYMMDD['T'HHMMSS[Z]]}" [tz="{timezone-identifier}"]
                              [rangeType="{range-type} (Integer)"] /> ## ExceptionRecurIdInfo
                <s [d="{YYYYMMDD['T'HHMMSS[Z]]}"] [tz="{timezone-identifier}"] [u="{utc-time} (Long)"] /> ## DtTimeInfo
                <e ... /> ## See /cancel/s [ ## DtTimeInfo]
                <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 ... /> ## See /cancel/s [ ## DtTimeInfo]
                                                <e ... /> ## See /cancel/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>
            <except> ## ExceptionItemRecur
                <exceptId ... /> ## See /cancel/exceptId [ ## ExceptionRecurIdInfo]
                <s ... /> ## See /cancel/s [ ## DtTimeInfo]
                <e ... /> ## See /cancel/s [ ## DtTimeInfo]
                <dur ... /> ## See /cancel/dur [ ## DurationInfo]
                <recur> ... </recur> ## See /cancel/recur [ ## RecurrenceInfo]
             </except>
            <comp> ## InviteItemRecur
                <exceptId ... /> ## See /cancel/exceptId [ ## ExceptionRecurIdInfo]
                <s ... /> ## See /cancel/s [ ## DtTimeInfo]
                <e ... /> ## See /cancel/s [ ## DtTimeInfo]
                <dur ... /> ## See /cancel/dur [ ## DurationInfo]
                <recur> ... </recur> ## See /cancel/recur [ ## RecurrenceInfo]
             </comp>
        }
    </GetRecurResponse>

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

XPath Required / Optional Description
/tz Optional (0 or 1) Timezone
/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/exceptId Optional (0 or 1) Information for iCalendar RECURRENCE-ID
/cancel/exceptId@d Required (only 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/exceptId@rangeType Optional (0 or 1) Type: Integer
Range type - 1 means NONE, 2 means THISANDFUTURE, 3 means THISANDPRIOR
/cancel/s Optional (0 or 1) Start time
/cancel/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/s@tz Optional (0 or 1) Type: String
Java timezone identifier
/cancel/s@u Optional (0 or 1) Type: Long
UTC time as milliseconds since the epoch. Set if non-all-day
/cancel/e Optional (0 or 1) End time
See /cancel/s for more details.
/cancel/dur Optional (0 or 1) Duration information
/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) Recurrence 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
See /cancel/s for more details.
/cancel/recur/add/exclude/dates/dtval/e Optional (0 or 1) Start DATE-TIME
See /cancel/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.
/except Optional (0 or 1)
/except/exceptId Optional (0 or 1) Information for iCalendar RECURRENCE-ID
See /cancel/exceptId for more details.
/except/s Optional (0 or 1) Start time
See /cancel/s for more details.
/except/e Optional (0 or 1) End time
See /cancel/s for more details.
/except/dur Optional (0 or 1) Duration information
See /cancel/dur for more details.
/except/recur Optional (0 or 1) Recurrence information
See /cancel/recur for more details.
/comp Optional (0 or 1)
/comp/exceptId Optional (0 or 1) Information for iCalendar RECURRENCE-ID
See /cancel/exceptId for more details.
/comp/s Optional (0 or 1) Start time
See /cancel/s for more details.
/comp/e Optional (0 or 1) End time
See /cancel/s for more details.
/comp/dur Optional (0 or 1) Duration information
See /cancel/dur for more details.
/comp/recur Optional (0 or 1) Recurrence information
See /cancel/recur for more details.