14.4. Removing Events From Calendars

Problem

You want to be able to delete a specific event or series of events from users’ calendars.

Solution

Use the removeEvent:span:commit:error: instance method of EKEventStore.

Discussion

The removeEvent:span:commit:error: instance method of EKEventStore can remove an instance of an event or all instances of a recurring event. For more information about recurring events, please refer to Recipe 14.5. In this recipe, we will only remove an instance of the event and not the other instances of the same event in the calendar.

The parameters that we can pass to this method are:

removeEvent

This is the EKEvent instance to be removed from the calendar.

span

This is the parameter that tells the event store whether we want to remove only this event or all the occurrences of this event in the calendar. To remove only the current event, specify the EKSpanThisEvent value for the removeEvent parameter. To remove all occurrences of the same event from the calendar, pass the EKSpanFutureEvents value for the parameter.

commit

A boolean value that tells the event store if the changes have to be saved on the remote/local calendar immediately or not.

error

This parameter can be given a reference to an NSError object that will be filled with the error (if any), when the return value of this method is NO.

To demonstrate this, let’s use the event creation method that we implemented in Recipe 14.2. What we can do then is to create an event in our Google CalDAV calendar and after ...

Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.