Calendars made simple (SwiftUI)
Create fully customisable calendar in no time. Keep your code clean
Try demo we prepared | Roadmap | Propose a new feature
CalendarView is a free and open-source library designed for SwiftUI that makes the process of creating calendars easier and much cleaner.
MCalendarView
constructor and pass the selected date / range to it. Simple as never!Platforms | Minimum Swift Version |
---|---|
iOS 14+ | 5.0 |
iPadOS 14+ | 5.0 |
macOS 11+ | 5.0 |
watchOS 7+ | 5.0 |
Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the Swift compiler.
Once you have your Swift package set up, adding CalendarView as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/Mijick/CalendarView.git", branch(“main”))
]
Cocoapods is a dependency manager for Swift and Objective-C Cocoa projects that helps to scale them elegantly.
Installation steps:
pod init
Podfile
pod 'MijickCalendarView'
.xcworkspace
file pod install
.xcworkspace
To declare a CalendarView, call the constructor:
struct ContentView: View {
@State private var selectedDate: Date? = nil
@State private var selectedRange: MDateRange? = .init()
var body: some View {
MCalendarView(selectedDate: $selectedDate, selectedRange: $selectedRange)
}
}
Your MCalendarView can be customised by calling configBuilder
inside the initialiser:
struct ContentView: View {
@State private var selectedDate: Date? = nil
@State private var selectedRange: MDateRange? = .init()
var body: some View {
MCalendarView(selectedDate: nil, selectedRange: $selectedRange) {
$0
(...)
.dayView(NewDayView.init)
.firstWeekday(.wednesday)
.monthLabelToDaysDistance(12)
.weekdaysView(NewWeekdaysView.init)
(...)
}
}
}
Each calendar element can be easily customised by creating your own view by inheriting the protocol (check Demo Project for more details).
See for yourself how does it work by cloning project we created
CalendarView is released under the MIT license. See LICENSE for details.
PopupView - The most powerful popup library that allows you to present any popup
NavigationView - Easier and cleaner way of navigating through your app
GridView - Lay out your data with no effort
CameraView - The most powerful CameraController. Designed for SwiftUI
Timer - Modern API for Timer