I started working on recurring appointments tonight. Google Calendar uses the iCalendar protocol for providing recurrence rules. The EventEntry.Recurrence property will either be null or have a string representation of the recurrence rule. Here’s an example of what it looks like if it’s populated:
DTSTART;TZID=America/New_York:20061213T080000
DURATION:PT3600S
RRULE:FREQ=DAILY;INTERVAL=4;WKST=SU
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701025T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
END:DAYLIGHT
END:VTIMEZONE
The RRULE line has all of the information needed to create the recurrence rule in PocketOutlook. PocketOutlook does not support the iCalendar protocol, so the string needs to be parsed and the appropriate Appointment.RecurrencePattern properties must be set. I should be able to get basic recurrence working tonight. From the feedback I’ve been getting, it looks like more people are interested in two-way synchronization. I may focus on that before implementing full recurrence rule functionality.