When you created google calendar event, you will get google event id. something like below :
http://www.google.com/calendar/feeds/default/private/full/yyyyy
After you created non-primary google calendar event, you will get event id similar with following :
http://www.google.com/calendar/feeds/liho.tw_xxxxx%40group.calendar.google.com/
private/full/yyyyy
Following is part of Calendar.php which only supports the google default event :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function deleteEventById ($client, $eventId)
{
$event = getEvent($client, $eventId);
$event->delete();
}
function getEvent($client, $eventId)
{
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$query->setProjection('full');
$query->setEvent($eventId);
try {
$eventEntry = $gdataCal->getCalendarEventEntry($query);
return $eventEntry;
} catch (Zend_Gdata_App_Exception $e) {
var_dump($e);
return null;
}
} |
You need to un-commet the following :
$query->setUser(‘default’);
And add your calendar id to similar below :
$query->setUser(‘liho.tw_xxxxx%40group.calendar.google.com’);
After you modified, you are able to delete non-primary google calendar event. However, above example is not smart enough. You should rewrite the getEvent function to add non-primary google calendar id. like below :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function deleteEventById ($client, $eventId, $calendarid = "default")
{
$event = getEvent($client, $eventId, $calendarid);
$event->delete();
}
function getEvent($client, $eventId, $calendarid)
{
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser($calendarid);
$query->setVisibility('private');
$query->setProjection('full');
$query->setEvent($eventId);
try {
$eventEntry = $gdataCal->getCalendarEventEntry($query);
return $eventEntry;
} catch (Zend_Gdata_App_Exception $e) {
var_dump($e);
return null;
}
} |