The ABCalendarPicker is a versatile and flexible calendar picker component for iOS applications. It allows users to easily select dates and navigate through months with a smooth and intuitive interface.


Using Cocoapods

  1. Add the following line to your Podfile:
  2. pod 'ABCalendarPicker'
  3. Run the command:
  4. pod install
  5. Import the ABCalendarPicker module in your Swift or Objective-C file:
  6. import ABCalendarPicker

Manual Installation

  1. Download the latest version of ABCalendarPicker from the GitHub repository.
  2. Drag and drop the ABCalendarPicker.xcodeproj into your Xcode project.
  3. In your project’s Build Phases, add ABCalendarPicker.framework under “Link Binary With Libraries”.

Getting Started

To start using the ABCalendarPicker, follow these steps:

  1. Create an instance of ABCalendarPickerViewController.
  2. let calendarPicker = ABCalendarPickerViewController()
  3. Configure any desired customization options:
  4. calendarPicker.calendarDelegate = self
    calendarPicker.selectedDates = [Date()]
    // Additional customization options...
  5. Present the calendar picker:
  6. present(calendarPicker, animated: true, completion: nil)

Delegate Methods

The ABCalendarPicker provides delegate methods to handle user interactions and retrieve selected dates.

func calendarPickerDidCancel(_ calendarPicker: ABCalendarPickerViewController)

Called when the user cancels the calendar picker.

func calendarPicker(_ calendarPicker: ABCalendarPickerViewController, didSelectDates dates: [Date])

Called when the user selects one or more dates.

Example Implementation

extension YourViewController: ABCalendarPickerDelegate {
    func calendarPickerDidCancel(_ calendarPicker: ABCalendarPickerViewController) {
        dismiss(animated: true, completion: nil)
    func calendarPicker(_ calendarPicker: ABCalendarPickerViewController, didSelectDates dates: [Date]) {
        // Handle selected dates


The ABCalendarPicker allows for various customization options to suit your application’s style.


Customize the behavior and appearance using the following properties:

  • selectedDates: [Date] – Sets the initially selected dates.
  • minimumDate: Date? – Sets the minimum selectable date.
  • maximumDate: Date? – Sets the maximum selectable date.
  • showsCancelButton: Bool – Determines whether to show the cancel button.
  • cancelButtonTitle: String? – Sets the title text for the cancel button.

Delegate Methods

Use these delegate methods to further customize or handle events:

  • func calendarPicker(_ calendarPicker: ABCalendarPickerViewController, backgroundColorForDate date: Date) -> UIColor? – Called when determining the background color for a specific date.
  • func calendarPicker(_ calendarPicker: ABCalendarPickerViewController, didSelectDate date: Date) – Called when the user selects a single date only.
  • func calendarPicker(_ calendarPicker: ABCalendarPickerViewController, shouldEnableDate date: Date) -> Bool – Called when determining whether a specific date should be enabled for selection.


For bug reports, feature requests, or any other support, please visit the GitHub repository.