explaingit

kizitonwose/calendar

5,531KotlinAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

An Android calendar library for Kotlin developers that handles all display and selection logic while you control the visual design, supporting week, month, and year views plus Jetpack Compose and Compose Multiplatform.

Mindmap

mindmap
  root((calendar))
    What it does
      Calendar library
      Android display
      Logic handled
    Tech Stack
      Kotlin
      Jetpack Compose
      Compose Multiplatform
    Display Modes
      Week view
      Month grid
      Year view
      Heatmap
    Selection
      Single date
      Multi date
      Date range
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a fully working calendar picker to an Android app without building date-grid logic from scratch.

USE CASE 2

Build a hotel booking date-range selector that lets users pick check-in and check-out dates.

USE CASE 3

Display a GitHub-style heatmap calendar showing user activity intensity across dates in an Android app.

USE CASE 4

Use the same calendar component across Android, iOS, and desktop with Compose Multiplatform.

Tech stack

KotlinJetpack ComposeAndroid

Getting it running

Difficulty · easy Time to first run · 30min

Check the version compatibility table in the README to match the library version with your Compose version.

Open source and free to use in any project including commercial Android apps.

In plain English

This is a calendar library for Android app developers. Rather than building a calendar from scratch, a developer adds this library to their project and gets a fully working calendar display that they can style and configure to match whatever the app requires. The description sums it up well: the library handles the logic, and the developer supplies the visual design. The library supports several display formats. You can show a single week at a time, the standard month grid, or a full year view. Scrolling can go horizontally or vertically depending on the app design. There is also a heatmap mode, similar to the contribution graph on GitHub, which shows varying intensities across dates, useful for visualizing activity over time. Date selection is flexible. You can allow a user to pick one date, multiple individual dates, or a continuous range of dates like a hotel check-in and check-out window. You can also disable specific dates so users cannot select them, and you can set boundary limits so the calendar does not extend beyond a certain date range. The library works with both the traditional Android view system and with Jetpack Compose, which is the newer way to build Android UIs. It also supports Compose Multiplatform, meaning the same code can run on Android, iOS, desktop, and the web. Installation involves adding a dependency line to your project's build file. The README includes a version compatibility table so developers know which version of the library pairs with which version of Compose. A sample app ships with the project and is available as a downloadable file. It demonstrates many of the configurations the library supports, so developers can see the results before writing any code. The source code for the sample is also publicly available in the same repository.

Copy-paste prompts

Prompt 1
How do I add the kizitonwose calendar library to my Android Jetpack Compose project and show a basic month calendar?
Prompt 2
Using kizitonwose/calendar, help me implement a date range picker where users can select a start and end date for a booking.
Prompt 3
How do I disable specific dates in the kizitonwose calendar library so users cannot select past dates or holidays?
Prompt 4
Show me how to use kizitonwose/calendar in Compose Multiplatform so the same calendar works on both Android and iOS.
Open on GitHub → Explain another repo

← kizitonwose on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.