MGC Graphical Calendars Library (CalendarLib) is a set of views and controllers for displaying and scheduling events on iOS.
- Create and schedule events with iCal-like views and controllers
- 3 kinds of views are available (a day planner view, a month planner view and a year view)
- Scroll infinitely through days / months, or restrict scrolling to a given date range
- Restrict range of displayed hours in the day planner view
- Page through weeks in the day planner view
- Use a standard view for event cells or create your own custom views
- Easily customize appearance and layout (date format, size of headers, number of visible days...)
- Create events by tap-and-hold on the view
- Drag-and-drop events to another date or time
- Scroll through days / months while dragging
- Specialized controllers for EventKit data source but can easily work with any custom event provider
- Background event loading for the EventKit controllers
- Ability to show an activity indicator for days while events are loading
- Restrict ability to create or move events to certain dates through datasource protocol methods (currently only in day planner view)
- Zoom in/out the day planner view to increase or decrease the height of hour slots
iPad / iPhone with iOS 8 or higher.
The best way is to use CocoaPods. Add the following line to your Podfile
:
pod 'CalendarLib', '~> 1.0'
If you don't want to use CocoaPods, you need to copy the content of the CalendarLib folder into your project, as well as the source of the two dependencies: OSCache and OrderedDictionary.
-
If you want to use EventKit as a data source, create an instance of
MGCDayPlannerEKViewController
orMGCMonthPlannerEKViewController
, or subclass them for your own needs.Don't forget to add the following frameworks to the project:
- EventKit.framework
- EventKitUI.framework
-
If you want to use another event provider, subclass one of
MGCDayPlannerViewController
orMGCMonthPlannerViewController
and implement the data source protocol methods. -
If you want to use a custom event cell, subclass
MGCEventView
orMGCStandardEventView
and register the class with the day / month planner view.
See the demo project to get an idea of how to use the library.
Have a look at the CalendarDocs folder for (incomplete) documentation on the day planner view.
MGC Graphical Calendars Library is available under the MIT license. See the LICENSE file.