gitmyhub

FSCalendar

Objective-C ★ 11k updated 1y ago

A fully customizable iOS calendar library, compatible with Objective-C and Swift

FSCalendar is a customizable calendar component for iOS apps that supports monthly and weekly views, animated transitions, date selection, and event dot indicators, usable in both Objective-C and Swift.

Objective-CSwiftCocoaPodsCarthageSwift Package ManagerXcodesetup: easycomplexity 2/5

FSCalendar is a calendar display component for iOS apps, written in Objective-C and usable in Swift projects as well. It provides a fully customizable calendar view that developers can drop into an iPhone or iPad app, then style and configure to match the rest of their design.

The library handles the visual rendering of a calendar grid, including month and week views, date selection, and animated transitions between the two. Developers can switch the calendar between a full monthly layout and a compact weekly strip using a gesture or programmatic call. There is also support for marking specific dates with dots or custom indicators, which is useful for apps that track events, habits, or appointments.

Installation is available through CocoaPods, Carthage, or Swift Package Manager, as well as by dragging the source files directly into an Xcode project. The README includes setup steps for Interface Builder (Xcode's visual layout editor) and for writing the setup entirely in code. Both Objective-C and Swift code examples are provided.

Customization is a central feature. Developers can change fonts, colors, and cell appearance, and can build entirely custom calendar cells by subclassing the default cell class. The library calls back into the app through a delegate pattern, meaning the developer's code is notified when the user selects or deselects a date, when the calendar scrolls to a new month, or when the visible scope changes between weekly and monthly modes.

According to the badge in the README, more than 10,000 apps have used this library and it has accumulated over 500,000 downloads through CocoaPods. The project supports iOS 7 and later, though some features require iOS 8 or above.

Where it fits