16.1. Retrieving the List of Calendars
Problem
You want to retrieve the list of calendars available on the user’s device before you attempt to insert new events into them.
Solution
Access the calendars
array
property of an instance of EKEventStore
. Each calendar is of type
EKCalendar
:
-
(
BOOL
)
application:
(
UIApplication
*
)
application
didFinishLaunchingWithOptions:
(
NSDictionary
*
)
launchOptions
{
EKEventStore
*
eventStore
=
[[
EKEventStore
alloc
]
init
];
/* These are the calendar types an iOS Device can have. Please note
that the "type" property of an object of type EKCalendar
is of type EKCalendarType. The values in the "CalendarTypes"
array reflect the exact same values in the EKCalendarType
enumeration, but as NSString values */
NSArray
*
calendarTypes
=
@
[
@"Local"
,
@"CalDAV"
,
@"Exchange"
,
@"Subscription"
,
@"Birthday"
];
/* Go through the calendars one by one */
NSUInteger
counter
=
1
;
for
(
EKCalendar
*
thisCalendar
in
eventStore
.
calendars
){
/* The title of the calendar */
NSLog
(
@"Calendar %lu Title = %@"
,
(
unsigned
long
)
counter
,
thisCalendar
.
title
);
/* The type of the calendar */
NSLog
(
@"Calendar %lu Type = %@"
,
(
unsigned
long
)
counter
,
[
calendarTypes
objectAtIndex:
thisCalendar
.
type
]);
/* The color that is associated with the calendar */
NSLog
(
@"Calendar %lu Color = %@"
,
(
unsigned
long
)
counter
,
[
UIColor
colorWithCGColor:
thisCalendar
.
CGColor
]);
/* And whether the calendar can be modified or not */
if
([
thisCalendar
allowsContentModifications
]){
NSLog
(
@"Calendar %lu can be modified." ...
Get iOS 6 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.