kizitonwose /Calendar
A highly customizable calendar view and compose library for Android and Kotlin Multiplatform.
★ 5,625⑂ 590👁 34⑃ 116● 531▤ 64
5,625
stars
+0+1+15
590
forks
34
watchers
116
prs
531
issues
64
releases
–
discussions
README
Calendar A highly customizable calendar library for Android and Compose Multiplatform, backed by RecyclerView for the view system, and LazyRow/LazyColumn for compose. ![Android Library[not(contains(text(),%27-%27))][last()])](https://central.sonatype.com/search?q=g:com.kizitonwose.calendar) ![Multiplatform Library[not(contains(text(),%27-%27))][last()])](https://central.sonatype.com/search?q=g:com.kizitonwose.calendar) With this library, your calendar will look however you want it to. !Preview Phone !Preview Web Tablet Features - [x] Week, month, or year modes - Show a week-based calendar, or the typical month calendar, or a year-based calendar. - [x] Single, multiple, or range selection - Total flexibility to implement the date selection whichever way you like. - [x] Disable desired dates - Prevent selection of some dates by disabling them. - [x] Boundary dates - Limit the calendar date range. - [x] Custom date view/composable - Make your day cells look however you want, with any functionality you want. - [x] Custom calendar view/composable - Make your calendar look however you want, with whatever functionality you want. - [x] Custom first day of the week - Use any day as the first day of the week. - [x] Horizontal or vertical scrolling calendar. - [x] HeatMap calendar - Suitable for showing how data changes over time, like GitHub's contribution chart. - [x] Year/Month/Week headers and footers - Add headers/footers of any kind on each year/month/week. - [x] Easily scroll to any date/week/month/year on the calendar via swipe actions or programmatically. - [x] Use all RecyclerView/LazyRow/LazyColumn customizations since the calendar extends from RecyclerView for the view system and uses LazyRow/LazyColumn for compose. - [x] Design your calendar however you want. The library provides the logic, you provide the views/composables. Sample project It's important to check out the sample app. There are lots of examples provided for both view and compose implementations. Most techniques that you would want to implement are already done in the examples. Download the Android sample app here View the Android sample app's source code here View the multiplatform sample project online at https://calendar.kizitonwose.dev View the multiplatform sample project's source code here Setup The library provides the following artifacts: com.kizitonwose.calendar:compose: The compose artifact for Android projects. This uses the java.time APIs. com.kizitonwose.calendar:compose-multiplatform: The compose artifact for Compose Multiplatform projects. This uses the kotlinx-datetime library and supports Android, iOS, js, WasmJs and Desktop platforms. com.kizitonwose.calendar:view: The view artifact for Android projects. This uses the java.time APIs and can exist alongside the Android compose artifact in an Android project if needed. Step 1 This step is required ONLY if your Android app's minSdkVersion is below 26. Jump to step 2 if this