Sorry, not got back sooner. Struggling to find time with juggling work and house renovation !
Anyway, my events all include the gd:when endTime="..." startTime="...". So don't have a need to look at the <gd:recurrence> element. Sorry if this was not clear.
If I do look in the recurrence element, I can see the correct date and time in DTSTART, see below.
<gd:when endTime="
2012-04-19T06:00:00.000+01:00" startTime="
2012-04-19T05:00:00.000+01:00">
<gd:recurrence>
DTSTART;TZID=Europe/London:
20120418T050000DTEND;TZID=Europe/London:
20120418T060000RRULE:FREQ=DAILY;COUNT=4 BEGIN:VTIMEZONE TZID:Europe/London X-LIC-LOCATION:Europe/London BEGIN:DAYLIGHT TZOFFSETFROM:+0000 TZOFFSETTO:+0100 TZNAME:BST DTSTART:19700329T010000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+0100 TZOFFSETTO:+0000 TZNAME:GMT DTSTART:19701025T020000 RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU END:STANDARD END:VTIMEZONE</gd:recurrence>
Did you try creating some new items, and are they populating the gd:when ?
I'm wondering because it's a birthday, it does not have a start or end time, so does not populate the when tag. If this is the case, you could add some code so that if the gd:when\@startTime is missing then pull the date from DTSTART;VALUE=DATE:20120801 and add 00:00 time. Let me know if you want me to do some scripting for this.*
*EDIT, Here is the additional script to pull from gd:recurrence:
Code: Select all
If Not (NodeEntriy.selectSingleNode("gd:when/@startTime") Is Nothing) Then
MsgBox NodeEntriy.selectSingleNode("gd:when/@startTime").Text
Else
MsgBox ParseRecurrence(NodeEntriy.selectSingleNode("gd:recurrence").Text,"DTSTART")
End If
...
...
...
Function ParseRecurrence (recurrenceData, valueToReturn)
Dim sLine
'Step through the lines
For Each sLine in Split(recurrenceData,vbLf)
If InStr(sLine,valueToReturn) = 1 Then
ParseRecurrence = Mid(sLine,Len(valueToReturn)+2)
Exit Function
End If
Next
End Function