Hi cosmo, This turned out to be a lot harder than I thought. After some digging I found a couple links [1-2] but I wasn't satisfied so I put together some sample code in Java. I know you're working in PHP, but you should be able to get the general idea.
The sample code below implements the following process: 1) Create a recurring event entry and insert it. 2) Create a new single event entry that will be the modified instance. 3) To this single event, add a <gd:originalEvent> element with the id of the recurring event and the start time of the instance of the recurring event that you want to modify. 4) Modify the elements of the single event as desired (the sample code just sets a new start/end time). 5) Insert the single event. When you get this working in PHP, I'd love to see the code. Let me know if you have questions along the way. Cheers, Lane [1] http://code.google.com/support/bin/answer.py?answer=64266&topic=10365 [2] http://groups.google.com/group/google-calendar-help-dataapi/browse_frm/thread/a2d74fc0f0402e5d/fc09c05cf5784046 Java sample code: // Create a recurring event to work with CalendarEventEntry recurringEvent = new CalendarEventEntry(); recurringEvent.setTitle(new PlainTextConstruct("recurrenceException example")); String recurStr = "DTSTART;TZID=America/Los_Angeles: 20070826T060000\r\n" + "DTEND;TZID=America/Los_Angeles:20070826T070000\r\n" + "RRULE:FREQ=DAILY;UNTIL=20070831T130000Z\r\n" + "BEGIN:VTIMEZONE\r\n" + "TZID:America/Los_Angeles\r\n" + "X-LIC-LOCATION:America/Los_Angeles\r\n" + "BEGIN:DAYLIGHT\r \n" + "TZOFFSETFROM:-0800\r\n" + "TZOFFSETTO:-0700\r\n" + "TZNAME:PDT\r\n" + "DTSTART:19700308T020000\r\n" + "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\n" + "END:DAYLIGHT\r \n" + "BEGIN:STANDARD\r\n" + "TZOFFSETFROM:-0700\r\n" + "TZOFFSETTO:-0800\r\n" + "TZNAME:PST\r\n" + "DTSTART:19701101T020000\r\n" + "RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\n" + "END:STANDARD \r\n" + "END:VTIMEZONE"; Recurrence recur = new Recurrence(); recur.setValue(recurStr); recurringEvent.setRecurrence(recur); recurringEvent = service.insert(new URL(PRIVATE_EVENT_FEED_LOCATION), recurringEvent); // To create an exception, create a new entry, add an originalEvent element // to specify the recurring event to modify, and add a when element to // specify the time of the exception. Then POST the new entry. CalendarEventEntry exceptionEntry = new CalendarEventEntry(); // Specify the instance of the recurring event to change by setting the // the startTime of the originalEvent. OriginalEvent originalEvent = new OriginalEvent(); String urlId = recurringEvent.getId(); originalEvent.setOriginalId(urlId.substring(urlId.lastIndexOf('/') + 1)); When originalWhen = new When(); originalWhen.setStartTime(DateTime .parseDateTime("2007-08-28T06:00:00.000-07:00")); originalEvent.setOriginalStartTime(originalWhen); exceptionEntry.setOriginalEvent(originalEvent); // Specify the new time for the instance we're changing When when = new When(); when.setStartTime(DateTime.parseDateTime("2007-08-28T11:00:00.000-07:00")); when.setEndTime(DateTime.parseDateTime("2007-08-28T12:00:00.000-07:00")); exceptionEntry.addTime(when); // POST the new exception entry service.insert(new URL(PRIVATE_EVENT_FEED_LOCATION), exceptionEntry); On Aug 23, 11:26 am, cosmo <[EMAIL PROTECTED]> wrote: > I have a set of recurring events, and I want to change the title of > _one_ of the events in the series. > How can I do this? > I'm using Zend_GData with PHP. > When I try to save an event in the series after changing its title, I > get a "409 Conflict" response. > Please help. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Calendar Data API" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-calendar-help-dataapi?hl=en -~----------~----~----~----~------~----~------~--~---
