MoveCalendarEvent Method
Moves one calendar resource to a new location.
Object Oriented Interface
public function doMoveCalendarEvent($sourceresourceuri, $destinationresourceuri);
Procedural Interface
ipworks_caldav_do_movecalendarevent($res, $sourceresourceuri, $destinationresourceuri);
Remarks
This method will move the resource indicated by SourceResourceURI to a new location under the resource indicated by DestinationResourceURI.
This method is associated with the Depth property. If Depth is set to "0", the class will move only SourceResourceURI. If Depth is set to "infinity", the class will move SourceResourceURI and its entire subtree to locations relative to it.
If the user has acquired a lock of infinite depth (via LockCalendar) on either DestinationResourceURI or any collection it is under, SourceResourceURI will be added to that lock.
Note that neither Yahoo nor Google CalDAV servers support locking, copying, or moving calendar resources.
There is no standard format for resource URIs. Google for instance, uses "https://www.google.com/calendar/dav/" plus your
email address to access the default calendar. So "https://www.google.com/calendar/dav/username@gmail.com/"
is the base URI for the default calendar. If you have multiple calendars, replace the email address portion above with the
Id of the calendar, plus "@group.calendar.google.com/". For instance:
"https://www.google.com/calendar/dav/ev3nkr4ua83jej7q32oumn5eeo@group.calendar.google.com/".
For Google, calendar events are stored in the "/events/" path. To retrieve a report on a calendar, you'd add "/events/" to
one of the above paths. For example:
CalDAV.GetCalendarReport("https://www.google.com/calendar/dav/username@gmail.com/events/");Leaving the "/events/" out of the URI will result in an HTTP protocol error: 405 Method not allowed.
To add or retrieve an event, add the UID of the event you're creating or retrieving plus ".ics" to the path.
Note that when putting an event with the PutCalendarEvent method, if the resourceURI and the UID do not match
Google will create the event using the UID stored in the UID property. The actual location of will be newly
added event will be returned in a "Location" header. This is the resource URI you must use to retrieve the event
with GetCalendarEvent. For example:
CalDAV.UID = "1234567890"; CalDAV.PutCalendarEvent("https://www.google.com/calendar/dav/username@gmail.com/events/1234567890.ics");
Yahoo uses a different format for CalDAV access. Yahoo's ResourceURIs always start with "https://caldav.calendar.yahoo.com/dav/"
plus your user name, plus "/Calendar/" plus the name of your calendar. For
instance: "https://caldav.calendar.yahoo.com/dav/username/Calendar/Your_Name" for the default calendar. (Yahoo uses your name
to create the default calendar). When using the CreateCalendar event to create a new calendar, replace "Your_Name" in the
URI with the desired name of your new calendar. Event resources are located directly under the "/Calendar/Calendar_Name/" path.
Like Google, the UID and filename portion of the resource URI must match, but Yahoo will actually return an HTTP protocol error
if they differ. The examples below show a few possible transactions:
CalDAVS1.User = "username"; CalDAVS1.Password = "password"; CalDAV.DisplayName = "My Hockey Calendar"; CalDAV.CreateCalendar("https://caldav.calendar.yahoo.com/dav/username/Calendar/Hockey_Calendar/"); CalDAV.StartDate = "20100401T040000"; CalDAV.EndDate = "20100401T060000"; CalDAV.UID = "qwerty1234567"; CalDAV.Summary = "First Practice"; CalDAV.Location = "Rink on 1st and main"; CalDAV.EventType = vEvent; CalDAV.PutCalendarEvent("https://caldav.calendar.yahoo.com/dav/username/Calendar/Hockey_Calendar/qwerty1234567.ics"); CalDAV.GetCalendarReport("https://caldav.calendar.yahoo.com/dav/username/Calendar/Hockey_Calendar/");