medabdellahi / google-caldav-issues

Automatically exported from code.google.com/p/google-caldav-issues
0 stars 0 forks source link

Changed occurences are not reported properly #10

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I'm not sure how did I manage to create this calendar, but it was something
along the lines of creating a recurring event and then changing one occurance.

This it the calendar-query REPORT used:

<?xml version="1.0" encoding="utf-8"?>
<C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav">
  <D:prop xmlns:D="DAV:">
    <D:getetag />
  </D:prop>
  <C:filter>
    <C:comp-filter name="VCALENDAR">
      <C:comp-filter name="VEVENT" />
    </C:comp-filter>
  </C:filter>
</C:calendar-query>

...and the server reply was...

207 Multi-Status
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
  <D:response>

<D:href>/calendar/dav/john.goldfinch@gmail.com/events/tjb714759js7uo8olplul9gpl0
@google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>63353534661</D:getetag>
      </D:prop>
    </D:propstat>
  </D:response>
  <D:response>

<D:href>/calendar/dav/john.goldfinch@gmail.com/events/tjb714759js7uo8olplul9gpl0
@google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>63353534002</D:getetag>
      </D:prop>
    </D:propstat>
  </D:response>
</D:multistatus>

Note that two identical URLs are returned which is wrong. Changed
occurences should only appear as additional VEVENT components in the same
VCALENDAR object as the master item (the one containing UID and RRULE).

Original issue reported on code.google.com by filip.na...@gmail.com on 4 Aug 2008 at 12:22

GoogleCodeExporter commented 9 years ago
Ok, some more info. I create a new empty calendar and added an event into it. I 
set
the event as repeating every two days and then moved the second occurance to
different hour.

After that I issued this CalDAV REPORT:

<calendar-query xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:caldav">
  <D:prop>
    <D:getetag/>
    <calendar-data/>
  </D:prop>
  <filter>
    <comp-filter name="VCALENDAR">
      <comp-filter name="VEVENT"/>
    </comp-filter>
  </filter>
</calendar-query>

... and got this response:

DAV:1, calendar-access, calendar-schedule
Content-Length:2731
Cache-Control:private, max-age=0
Content-Type:application/xml; charset=UTF-8
Date:Mon, 04 Aug 2008 21:07:50 GMT
Expires:Mon, 04 Aug 2008 21:07:50 GMT
Server:GFE/1.3

<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
  <D:response>

<D:href>/calendar/dav/oua1qdkngbgc9oh611pu5uqcoc@group.calendar.google.com/event
s/vdnp0kkmnfj221k9eg09mmqcp8@google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>63353567267</D:getetag>
        <C:calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME:CalDAV Test
X-WR-TIMEZONE:Europe/Prague
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Europe/Prague
X-LIC-LOCATION:Europe/Prague
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Prague:20080806T110000
DTEND;TZID=Europe/Prague:20080806T120000
DTSTAMP:20080804T210747Z
UID:vdnp0kkmnfj221k9eg09mmqcp8@google.com
RECURRENCE-ID:20080806T080000Z
CLASS:PRIVATE
CREATED:20080804T210733Z
LAST-MODIFIED:20080804T210747Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR</C:calendar-data>
      </D:prop>
    </D:propstat>
  </D:response>
  <D:response>

<D:href>/calendar/dav/oua1qdkngbgc9oh611pu5uqcoc@group.calendar.google.com/event
s/vdnp0kkmnfj221k9eg09mmqcp8@google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>63353567253</D:getetag>
        <C:calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME:CalDAV Test
X-WR-TIMEZONE:Europe/Prague
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Europe/Prague
X-LIC-LOCATION:Europe/Prague
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Prague:20080804T100000
DTEND;TZID=Europe/Prague:20080804T110000
RRULE:FREQ=DAILY;INTERVAL=2;WKST=SU
DTSTAMP:20080804T210733Z
UID:vdnp0kkmnfj221k9eg09mmqcp8@google.com
CLASS:PRIVATE
CREATED:20080804T210733Z
LAST-MODIFIED:20080804T210733Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR</C:calendar-data>
      </D:prop>
    </D:propstat>
  </D:response>
</D:multistatus>

... which is obviously wrong (two identical URLs, the occurence is not listed 
along
the master event). Expected output:

<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
  <D:response>

<D:href>/calendar/dav/oua1qdkngbgc9oh611pu5uqcoc@group.calendar.google.com/event
s/vdnp0kkmnfj221k9eg09mmqcp8@google.com.ics</D:href>
    <D:propstat>
      <D:status>HTTP/1.1 200 OK</D:status>
      <D:prop>
        <D:getetag>"xyxxz"</D:getetag>
        <C:calendar-data xmlns:C="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME:CalDAV Test
X-WR-TIMEZONE:Europe/Prague
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Europe/Prague
X-LIC-LOCATION:Europe/Prague
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Prague:20080804T100000
DTEND;TZID=Europe/Prague:20080804T110000
RRULE:FREQ=DAILY;INTERVAL=2;WKST=SU
DTSTAMP:20080804T210733Z
UID:vdnp0kkmnfj221k9eg09mmqcp8@google.com
CLASS:PRIVATE
CREATED:20080804T210733Z
LAST-MODIFIED:20080804T210733Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=Europe/Prague:20080806T110000
DTEND;TZID=Europe/Prague:20080806T120000
DTSTAMP:20080804T210747Z
UID:vdnp0kkmnfj221k9eg09mmqcp8@google.com
RECURRENCE-ID:20080806T080000Z
CLASS:PRIVATE
CREATED:20080804T210733Z
LAST-MODIFIED:20080804T210747Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Test
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR</C:calendar-data>
      </D:prop>
    </D:propstat>
  </D:response>
</D:multistatus>

Original comment by filip.na...@gmail.com on 4 Aug 2008 at 9:13

GoogleCodeExporter commented 9 years ago
Tested again. PROPFIND returns correct href's and ETags. Calendar-query REPORT
returns duplicate hrefs and different ETags.

Original comment by filip.na...@gmail.com on 5 Sep 2008 at 11:30

GoogleCodeExporter commented 9 years ago
This appears to still be a problem more than a year later, and it has a 
practical impact: I end up missing 
meetings.

This is super easy to reproduce: create a recurring meeting in the Google web 
UI and change one 
instance. The web UI renders this data correctly.

Now use Sunbird/iPhone/iCal to view the calendar via CalDAV. The exception has 
disappeared and the 
recurring meeting shows as having no exceptions.

Any chance this can be made a priority? It is incredibly annoying at least and 
business interrupting at 
worst.

Original comment by chad.sc...@gmail.com on 12 Nov 2009 at 8:27

GoogleCodeExporter commented 9 years ago
And almost another year later this is still a problem!  iPhone and CalDAV for 
iCal still doesn't work properly. iPhone syncing of recurring events doesn't 
happen.  If you make the change on the iPhone, nothing syncs up to google.  If 
you make a change on google, it WILL sync over to the iPhone.  

In iCal and thunderbird/sunbird, you get errors when changing specific 
occurrences of recurring events. This happens in both the paid and unpaid 
google calendars.  How long does it take to fix? Or has the CalDAV project been 
abandoned?

Original comment by coreyh...@gmail.com on 10 Sep 2010 at 12:52

GoogleCodeExporter commented 9 years ago
This is a problem with multiple CalDAV accounts of mine. Please let me know if 
there is a solution or explanation yet.

Original comment by dleiber...@gmail.com on 4 Jan 2011 at 11:47