Need help with RKCalendar?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

RaffiKian
366 Stars 54 Forks MIT License 11 Commits 12 Opened issues

Description

SwiftUI Simple Calendar / Date Picker for iOS

Services available

!
?

Need anything else?

Contributors list

# 135,735
iOS
Swift
swift5-...
wwdc
8 commits
# 153,579
iOS
Swift
swift5-...
wwdc
1 commit
# 226,825
swift5-...
HTML
hugo
cocoapo...
1 commit

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

demo app first screenshot demo app first screenshot

Dark Mode

demo app first screenshot demo app first screenshot

⚠️ 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(6060244), Date().addingTimeInterval(6060245), Date().addingTimeInterval(606024*7) ])

License

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.