# Kalendar A calendar library *Week* or *Month* views. ## Introduction Kalendar is a Calendar component designed to integrate directly with Jetpack Compose. Kalendar is all about customization and design. ## Implementation ### 1: Add Dependency To add Kalendar, add [this dependency](https://search.maven.org/artifact/com.himanshoe/kalendar), ```gradle dependencies { ..... implementation("com.himanshoe:kalendar:1.1.0") } ``` ### 2: Usage Add the `Kalendar` composable to your code: ```kotlin Kalendar(kalendarType = KalendarType.Oceanic) ``` Preview: In this example `Oceanic` sets the *Week* view, or ```kotlin Kalendar(kalendarType = KalendarType.Firey) ``` will set the `Month` view Preview: ### 3: Customization > KalendarHeader If you want to configure the KalendarHeader, use: ```kotlin kalendarHeaderConfig : KalendarHeaderConfig ``` It is simple to customize Kalendar to suit your needs. There are many optional parameters you can use. > Setting up Events ```kotlin kalendarEvents: List = emptyList(), ``` Here, `KalendarEvent` can be used to pass events to mark specific days. `KalendarEvent` looks like, ```kotlin data class KalendarEvent( val date: LocalDate, val eventName: String, val eventDescription: String? = null, ) ``` > Setting up KalendarThemeColors ```kotlin kalendarThemeColors: List = KalendarColors.defaultColors(), ``` Here, `KalendarThemeColor` list is used to pass the common theming colors that will be used for all the Views. Note: Check the `defaultColors` used > `KalendarThemeColor` looks like, ```kotlin data class KalendarThemeColor( val backgroundColor: Color, val dayBackgroundColor: Color, val headerTextColor: Color, ) ``` Alternatively, if you dont want each month having its own color set, you can use: ```kotlin kalendarThemeColor: KalendarThemeColor = , ``` > Individual Date Click Listener ```kotlin onCurrentDayClick: (KalendarDay, List) -> Unit = { _, _ -> }, ``` > Use this lambda to get values of the specific day ```kotlin class KalendarDay(val localDate: LocalDate) ``` and the list of events for that particular day. > Setting up Colors for Individual Day ```kotlin kalendarDayColors: KalendarDayColors = KalendarDayDefaultColors.defaultColors() ``` This will have list of two colors, * First one for default color * Second one for the color it will come when it is selected. > Navigate to Date ``` kotlin takeMeToDate: LocalDate? ``` It will make the date the first day to be displayed in the view.