@interface CalAlarm : NSObject
// Class Members
+ (id)alarm;
// Instance Members
- (NSDate*)triggerDateRelativeTo:(NSDate*)date;
@interface CalAttendee : NSObject
@interface CalCalendar : NSObject
// Class Members
+ (id)calendar;
@interface CalCalendarItem : NSObject
// Instance Members
- (BOOL)hasAlarm;
- (NSDate*)nextAlarmDate;
- (void)addAlarm:(CalAlarm*)alarm;
- (void)addAlarms:(NSArray*)alarms;
- (void)removeAlarm:(CalAlarm*)alarm;
- (void)removeAlarms:(NSArray*)alarms;
@interface CalCalendarStore : NSObject
// Class Members
+ (CalCalendarStore*)defaultCalendarStore;
+ (NSPredicate*)eventPredicateWithStartDate:(NSDate*)startDate endDate:(NSDate*)endDate calendars:(NSArray*)calendars;
+ (NSPredicate*)eventPredicateWithStartDate:(NSDate*)startDate endDate:(NSDate*)endDate UID:(NSString*)UID calendars:(NSArray*)calendars;
+ (NSPredicate*)taskPredicateWithCalendars:(NSArray*)calendars;
+ (NSPredicate*)taskPredicateWithTasksCompletedSince:(NSDate*)completedSince calendars:(NSArray*)calendars;
+ (NSPredicate*)taskPredicateWithUncompletedTasks:(NSArray*)calendars;
+ (NSPredicate*)taskPredicateWithUncompletedTasksDueBefore:(NSDate*)dueDate calendars:(NSArray*)calendars;
// Instance Members
- (BOOL)removeCalendar:(CalCalendar*)calendar error:(NSError**)error;
- (BOOL)removeEvent:(CalEvent*)event span:(CalSpan)span error:(NSError**)error;
- (BOOL)removeTask:(CalTask*)task error:(NSError**)error;
- (BOOL)saveCalendar:(CalCalendar*)calendar error:(NSError**)error;
- (BOOL)saveEvent:(CalEvent*)event span:(CalSpan)span error:(NSError**)error;
- (BOOL)saveTask:(CalTask*)task error:(NSError**)error;
- (CalCalendar*)calendarWithUID:(NSString*)UID;
- (CalEvent*)eventWithUID:(NSString*)uid occurrence:(NSDate*)date;
- (CalTask*)taskWithUID:(NSString*)uid;
- (NSArray*)calendars;
- (NSArray*)eventsWithPredicate:(NSPredicate*)predicate;
- (NSArray*)tasksWithPredicate:(NSPredicate*)predicate;
@interface CalEvent : CalCalendarItem
// Class Members
+ (id)event;
@interface CalRecurrenceEnd : NSObject
// Class Members
+ (id)recurrenceEndWithEndDate:(NSDate*)endDate;
+ (id)recurrenceEndWithOccurrenceCount:(NSUInteger)occurrenceCount;
@interface CalNthWeekDay : NSObject
@interface CalRecurrenceRule : NSObject
// Instance Members
- (id)initDailyRecurrenceWithInterval:(NSUInteger)interval end:(CalRecurrenceEnd*)end;
- (id)initMonthlyRecurrenceWithInterval:(NSUInteger)interval forDayOfTheWeek:(NSUInteger)weekDay
:(forWeekOfTheMonth:)NSInteger monthWeek
:() :() :() :() :() :() :() :() :() :() :() :() end:(CalRecurrenceEnd*)end;
- (id)initMonthlyRecurrenceWithInterval:(NSUInteger)interval end:(CalRecurrenceEnd*)end;
- (id)initMonthlyRecurrenceWithInterval:(NSUInteger)interval :() :() :() :() :() :() :() :(forDaysOfTheMonth:)NSArray* monthDays:(
) :() :() :() :() :() :() :() :() :() :() :() :(end:)CalRecurrenceEnd* end;
- (id)initWeeklyRecurrenceWithInterval:(NSUInteger)interval :() :() :() :() :() :() :() :(forDaysOfTheWeek:)NSArray* days
:() :() :() :() :() :() :() :() :() :() :() :()end: CalRecurrenceEnd*:(end;)
- (id)initWeeklyRecurrenceWithInterval:(NSUInteger)interval end:(CalRecurrenceEnd*)end;
- (id)initYearlyRecurrenceWithInterval:(NSUInteger)interval end:(CalRecurrenceEnd*)end;
- (id)initYearlyRecurrenceWithInterval:(NSUInteger)interval :() :() :() :() :() :() :()forMonthsOfTheYear: NSArray*:(months)
:() :() :() :() :() :() :() :() :() :() :() :(end:)CalRecurrenceEnd* end;
- (id)initYearlyRecurrenceWithInterval:(NSUInteger)interval :() forDayOfTheWeek:(NSUInteger)weekDay
forWeekOfTheMonth:(NSInteger)monthWeek
:() :() :() :() :() :() :(forMonthsOfTheYear:)NSArray* months:(
) :() :() :() :() :() :() :() :() :() :() :() end:(CalRecurrenceEnd*)end;
@interface CalTask : CalCalendarItem
// Class Members
+ (id)task;