SkillAgentSearch skills...

RKCalendar

SwiftUI Simple Calendar / Date Picker for iOS

Install / Use

/learn @RaffiKian/RKCalendar
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

RKCalendar

RKCalendar is a SwiftUI Calendar / Date Picker for iOS.

Features include:

  • minimum and maximum calendar dates selectable,
  • single date selection,
  • range of dates selection,
  • multi-dates selection,
  • disabled dates setting.

Light Mode

<img src="https://github.com/RaffiKian/RKCalendar/blob/master/RKCalendar/Images/demo-app-light-mode-1.png" alt="demo app first screenshot" width="260"/> <img src="https://github.com/RaffiKian/RKCalendar/blob/master/RKCalendar/Images/demo-app-light-mode-2.png" alt="demo app first screenshot" width="260"/>

Dark Mode

<img src="https://github.com/RaffiKian/RKCalendar/blob/master/RKCalendar/Images/demo-app-dark-mode-1.png" alt="demo app first screenshot" width="260"/> <img src="https://github.com/RaffiKian/RKCalendar/blob/master/RKCalendar/Images/demo-app-dark-mode-2.png" alt="demo app first screenshot" width="260"/>

⚠️ WARNING ⚠️ This is an early version of this library that requires Swift 5.1 and Xcode 11

Requirements

  • iOS 13.0+
  • Xcode 11+
  • Swift 5.1+

Installation

Integrate RKCalendar into your project by including the files in the "Manager" group.

Usage

See ContenView.swift for some examples. Typically create a RKManager and pass it to a RKViewController.

Customise the RKManager for the desired effects as follows:

Calendar minimum and maximum date setting

Setting the calendar, minimum and maximum dates that can be selected.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().addingTimeInterval(60*60*24*365), mode: 0)

Single date selection

Use mode 0 to select a single date.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 0)

Range of dates selection

Use mode 1 to select a contiguous range of dates, from a start date to an end date.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 1)

Note, mode 2 is automatically toggled internally and the end date must be greater than the start date.

Multi-dates selection

Use mode 3 for selecting a number of dates.

RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 3)

Disabled-dates setting

Use any mode and set zero or more dates to be disabled (un-selectable).

For example:

var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: maxDate, mode: 0)

rkManager.disabledDates.append(contentsOf: [
    Date().addingTimeInterval(60*60*24*4),
    Date().addingTimeInterval(60*60*24*5),
    Date().addingTimeInterval(60*60*24*7)
])

License

RKCalendar is available under the MIT license. See the LICENSE file for more info.

View on GitHub
GitHub Stars583
CategoryDevelopment
Updated5d ago
Forks72

Languages

Swift

Security Score

100/100

Audited on Apr 6, 2026

No findings