GitPedia

CalendarView

Calendars made simple (SwiftUI)

From Mijick·Updated June 15, 2026·View on GitHub·

Create fully customisable calendar in no time. Keep your code clean The project is written primarily in Swift, distributed under the MIT License license, first published in 2023. Key topics include: calendar, calendar-component, calendar-view, cocoapods, ios-sdk.

Latest release: 1.1.1
September 10, 2025View Changelog →
<br> <p align="center"> <!-- CalendarView Logo --> <p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Mijick/Assets/blob/main/CalendarView/Logo/Dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/Mijick/Assets/blob/main/CalendarView/Logo/Light.svg"> <img alt="CalendarView Logo" width="200"> </picture> </p> <!-- Library Name --> <h3 align="center"> Calendar View </h3> <!-- Library Description --> <p align="center"> Create fully customisable calendar in no time. Keep your code clean </p> <!-- Demo Link --> <p align="center"> <a href="https://github.com/Mijick/CalendarView-Demo" rel="nofollow">Try demo we prepared</a> | <a href="https://mijick.notion.site/c55a759a632e495baf43ab2d956e66ea?v=f1dd812b22874b7e875b963aab33b90f&pvs=25" rel="nofollow">Roadmap</a> | <a href="https://github.com/Mijick/CalendarView/issues/new" rel="nofollow">Propose a new feature</a> </p> <br> <!-- Labels --> <p align="center"> <img alt="SwiftUI logo" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/Language.svg"/> <img alt="Platforms: iOS, iPadOS, macOS, tvOS" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/Platforms.svg"/> <img alt="Current Version" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/Version.svg"/> <img alt="License: MIT" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/License.svg"/> </p> <p align="center"> <img alt="Made in Kraków" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/Origin.svg"/> <a href="https://github.com/Mijick/CalendarView/stargazers"> <img alt="Stargazers" src="https://github.com/Mijick/Assets/blob/main/CalendarView/Labels/Stars.svg"/> </a> </p> <!-- GIFs --> <p align="center"> <img alt="Calendar Example 1" src="https://github.com/Mijick/Assets/blob/main/CalendarView/GIFs/1.gif" width="23%"/> <img alt="Calendar Example 2" src="https://github.com/Mijick/Assets/blob/main/CalendarView/GIFs/2.gif" width="23%"/> <img alt="Calendar Example 3" src="https://github.com/Mijick/Assets/blob/main/CalendarView/GIFs/3.gif" width="23%"/> <img alt="Calendar Example 4" src="https://github.com/Mijick/Assets/blob/main/CalendarView/GIFs/4.gif" width="23%"/> </p> <br> <!-- Summary -->

CalendarView is a free and open-source library designed for SwiftUI that makes the process of creating calendars easier and much cleaner.

  • Improves code quality. Create a calendar using MCalendarView constructor and pass the selected date / range to it. Simple as never!
  • Customize calendar in no time. We know how important customisation is; that's why we give you the opportunity to design your calendar in any way you like.
  • Designed for SwiftUI. While developing the library, we have used the power of SwiftUI to give you powerful tool to speed up your implementation process.
<br> <!-- Getting Started -->

Getting Started

✋ Requirements

PlatformsMinimum Swift Version
iOS 14+5.0
iPadOS 14+5.0
macOS 11+5.0
watchOS 7+5.0
<!-- Installation -->

⏳ Installation

Swift Package Manager

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.

Swift
dependencies: [ .package(url: "https://github.com/Mijick/CalendarView.git", branch(“main”)) ]
<!-- Cocoapods -->

Cocoapods

Cocoapods is a dependency manager for Swift and Objective-C Cocoa projects that helps to scale them elegantly.

Installation steps:

Swift
pod init
  • Add CocoaPods dependency into your Podfile
Swift
pod 'MijickCalendarView'
  • Install dependency and generate .xcworkspace file
Swift
pod install
  • Use new XCode project file .xcworkspace <br>
<!-- Usage -->

Usage

1. Call initialiser

To declare a CalendarView, call the constructor:

Swift
struct ContentView: View { @State private var selectedDate: Date? = nil @State private var selectedRange: MDateRange? = .init() var body: some View { MCalendarView(selectedDate: $selectedDate, selectedRange: $selectedRange) } }

2. Customise Calendar

Your MCalendarView can be customised by calling configBuilder inside the initialiser:

Swift
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) (...) } } }

3. Customizing WeekdaysView / WeekdayLabel / MonthLabel / DayView

Each calendar element can be easily customised by creating your own view by inheriting the protocol (check Demo Project for more details).

<br>

Try our demo

See for yourself how does it work by cloning project we created

License

CalendarView is released under the MIT license. See LICENSE for details.

<br><br>

Our other open source SwiftUI libraries

Popups - The most powerful popup library that allows you to present any popup
<br>
NavigationView - Easier and cleaner way of navigating through your app
<br>
GridView - Lay out your data with no effort
<br>
Camera - The most powerful CameraController. Designed for SwiftUI
<br>
Timer - Modern API for Timer

Contributors

Showing top 3 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Mijick/CalendarView via the GitHub API.Last fetched: 6/16/2026