
FSCalendar
A customizable calendar view control for iOS apps, usable from Objective-C or Swift.
- Stars
- 10.6k
- Forks
- 1.9k
- Licence
- MIT
- Language
- Objective-C
- Last update
- 2.2 years ago
- Type
- Library
No commits in over a year — check for forks or alternatives before adopting.
What it is
FSCalendar is a library that lets iOS app developers add a calendar widget to their apps. It can be styled and customized, and it works with both Objective-C and Swift projects. Developers use it when they want users to view or pick dates inside an app instead of building a calendar from scratch.
- Show a month calendar in an iOS app with a delegate that responds when a user taps a date
- Add a calendar to a view built in Interface Builder by setting the custom class to FSCalendar
- Customize the appearance of calendar cells using the DIY example projects in the repository
- Let users select one or several dates, as shown in the README's swipe-to-choose screenshots
Great for
- iOS developers who need a calendar or date-picker view in their app
- Teams with existing Objective-C code that also want Swift support
- Developers who want to customize the calendar's look and cell content
- Developers who use Interface Builder and want the calendar set up visually
Not ideal for
- Non-developers, since this is a code library rather than an app (it has no end-user interface of its own)
- Android or web projects, since the README only describes iOS usage
- Projects that need the calendar to resize itself automatically without extra code, because the README says the calendar does not update its frame by itself and the app must handle height changes
How to get it
- 1
Install with a package manager
You'll need: Xcode · CocoaPods, Carthage, or Swift Package Manager (depending on install route)
Add to a CocoaPods Podfile
pod 'FSCalendar'Add as a Swift Package dependency
.package(url: "https://github.com/WenchaoD/FSCalendar.git", from: "2.8.4")Add to a Cartfile for Carthage
github "WenchaoD/FSCalendar" - 2
Run it
- Install the library using one of the package managers listed in the README
- Import FSCalendar into your view controller
- Create an FSCalendar instance or add one in Interface Builder
- Set the dataSource and delegate, then implement FSCalendarDataSource and FSCalendarDelegate
- Implement boundingRectWillChange so the calendar's height updates correctly
- 3
Get the most out of it
- Run the Example-Swift or Example-Objc projects to see working code before building your own
- Use the DIY example to customize how each calendar cell looks
- Use the boundingRectWillChange delegate method with your layout system (AutoLayout, Masonry, or SnapKit examples are in the README)
- Use Interface Builder with the IBInspectable and IBDesignable support noted in the README for CocoaPods, Carthage and manual installs
Downloads
Strengths
- Widely used according to the README badges (over 10,000 apps and over 500,000 downloads, as stated there)
- Supports several install routes: CocoaPods, Carthage, Swift Package Manager, and manual file copy
- Includes example projects in both Swift and Objective-C to learn from
Trade-offs
- The README says the calendar does not resize itself; the developer must update its height in a delegate method
- The latest release listed is 2.8.3 and the README mentions a newer SPM version (2.8.4), so version details should be checked directly
- Some README build and CI badges link to Travis CI, which may not reflect current testing status
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| FSCalendar (this) | 10.6k | Library | intermediate | 2.2 years ago | iOS developers who need a calendar or date-picker view in their app |
| SVProgressHUD | 12.4k | Library | beginner | 8 months ago | iOS developers who need a quick loading indicator for a blocking task |
| SDWebImage | 25.6k | Library | intermediate | 7 months ago | iOS or macOS app developers who need to show remote images in lists or grids |
| SwifterSwift | 15.3k | Library | beginner | 4 days ago | Swift developers building iOS or macOS apps who want common helper methods ready to use |
| Eureka | 11.8k | Library | intermediate | 2.1 years ago | iOS developers building form-heavy screens in Swift |
| NVActivityIndicatorView | 10.7k | Library | beginner | 8 months ago | iOS developers who want a ready-made loading indicator with many styles |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.