I'm the author of a calendar library for iOS, and I'm thinking about how I can improve it, because it's become obvious that people aren't understanding it.
Right now, I have a datasource protocol that consists of just one method, and it returns the events to show on a given date:
- (NSArray *)calendarView:(CKCalendarView *)calendarView eventsForDate:(NSDate *)date;
But, I've found that in the two years of the library being available, most of the feedback I've gotten has been, "how do I make events appear on the calendar?"
I always thought it was pretty intuitive:
- Create some events. The framework has an "event" object to work with.
- Keep your events sorted by date in some data source, like a dictionary, or Core Data.
- Return the appropriate event objects in the datasource.
What else can I do to make it clearer to other developers how I intended this to work?