kizitonwose/Calendar

A highly customizable calendar view and compose library for Android and Kotlin Multiplatform.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 58 minutes ago
Added to GitGenius on September 12th, 2026
Created on April 20th, 2019
Open Issues & Pull Requests: 10 (+0)
GitHub issues: Enabled
Number of forks: 581
Total Stargazers: 5,595 (+0)
Total Subscribers: 34 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Calendar is a highly customizable calendar library for Android and Kotlin Multiplatform that provides calendar views backed by RecyclerView for the traditional view system and LazyRow/LazyColumn for Compose.

The library solves the problem of building calendars with custom appearance and behavior by providing the underlying date logic and scrolling infrastructure while leaving all visual presentation to the developer. It supports week, month, or year display modes with single, multiple, or range date selection. Developers can disable specific dates, set boundary ranges, customize individual day cells, add headers and footers, and implement horizontal or vertical scrolling. The tool also includes a heatmap calendar mode suitable for visualizing data changes over time, similar to contribution charts.

The library suits projects where calendar appearance must match specific design requirements rather than conform to a standard widget. It works for both traditional Android View-based projects and modern Compose applications, with a separate multiplatform artifact supporting Android, iOS, JavaScript, WebAssembly, and Desktop platforms. The view artifact uses Java Time APIs, while the multiplatform variant uses kotlinx-datetime for cross-platform compatibility. Developers should review the sample applications and source code examples before adoption, as the library emphasizes that most common implementation patterns are already demonstrated there.

The project maintains separate, well-documented artifacts for different use cases and platforms, allowing developers to choose exactly what they need without unnecessary dependencies. The multiplatform sample is available as a live web application alongside its source code, providing immediate visibility into capabilities across different targets. The library's design philosophy centers on providing calendar logic and infrastructure while explicitly delegating all visual design to the developer, which requires more initial work but enables complete customization.