Events Calendar is a user-friendly library that helps you achieve a cool Calendar UI with events mapping.

Overview

Events Calendar

License

Single Selection Mode Range Selection Mode Multiple Selection Mode
Single Selection Mode Range Selection Mode Multiple Selection Mode

What is Events Calendar?

Events Calendar is a user-friendly library that helps you achieve a cool Calendar UI with events mapping. You can customise every pixel of the calendar as per your wish and still achieve in implementing all the functionalities of the native android calendar in addition with adding dots to the calendar which represents the presence of an event on the respective dates. Events Calendar also has multi-lingual support. You are just a few steps away from implementing your own badass looking Calendar for your very own project!

Implementation

[1] In your app module gradle file

dependencies {
    implementation 'com.github.tizisdeepan:eventscalendar:1.6.1'
}

[2] In your project level gradle file

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

[3] Use EventsCalendar in your layout.xml

">
<com.events.calendar.views.EventsCalendar
    android:id="@+id/eventsCalendar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:overScrollMode="never"
    app:datesTextSize="16sp"
    app:eventDotColor="#ff0000"
    app:isBoldTextOnSelectionEnabled="true"
    app:monthTitleColor="#ffffff"
    app:monthTitleTextSize="16sp"
    app:primaryTextColor="#c4c4c4"
    app:secondaryTextColor="#666666"
    app:selectedTextColor="#000000"
    app:selectionColor="#ffe600"
    app:weekHeaderColor="#c6c6c6"
    app:rangeSelectionColor="#ffe600"
    app:rangeSelectionStartColor="#c1ae01"
    app:rangeSelectionEndColor="#c1ae01"
    app:weekHeaderTextSize="16sp" />

[4] Implement EventCalendar.Callback on your Activity/ Fragment

class MainActivity : AppCompatActivity(), EventsCalendar.Callback {
    ...
    override fun onDayLongPressed(selectedDate: Calendar?) {
        Log.e("LONG", "CLICKED")
    }
    
    override fun onMonthChanged(monthStartDate: Calendar?) {
        Log.e("MON", "CHANGED")
    }

    override fun onDaySelected(selectedDate: Calendar?) {
        Log.e("SHORT", "CLICKED")
    }
}

[5] Create instances and set default values for the EventsCalendar in your Activity/ Fragment

eventsCalendar.setSelectionMode(eventsCalendar.MULTIPLE_SELECTION) //set mode of Calendar
              .setToday(today) //set today's date [today: Calendar]
              .setMonthRange(start, end) //set starting month [start: Calendar] and ending month [end: Calendar]
              .setWeekStartDay(Calendar.SUNDAY, false) //set start day of the week as you wish [startday: Int, doReset: Boolean]
              .setCurrentSelectedDate(today) //set current date and scrolls the calendar to the corresponding month of the selected date [today: Calendar]
              .setDatesTypeface(typeface) //set font for dates
              .setDateTextFontSize(16f) //set font size for dates
              .setMonthTitleTypeface(typeface) //set font for title of the calendar
              .setMonthTitleFontSize(16f) //set font size for title of the calendar
              .setWeekHeaderTypeface(typeface) //set font for week names
              .setWeekHeaderFontSize(16f) //set font size for week names
              .setCallback(this) //set the callback for EventsCalendar
              .addEvent(c) //set events on the EventsCalendar [c: Calendar]
              .disableDate(dc) //disable a specific day on the EventsCalendar [c: Calendar]
              .disableDaysInWeek(Calendar.SATURDAY, Calendar.SUNDAY) //disable days in a week on the whole EventsCalendar [varargs days: Int]
              .build()

[6] You can change selection mode of the calendar as you wish

eventsCalendar.setSelectionMode(eventsCalendar.SINGLE_SELECTION)

Available Selection modes are,

  1. SINGLE_SELECTION -> can select single day at a time
  2. RANGE_SELECTION -> can select range of days at a time
  3. MULTIPLE_SELECTION -> can select multiple days at a time (not necessary that the selected days be consequtive)

Documentation

XML Kotlin/Java Description
app:primaryTextColor setPrimaryTextColor(color: Int) Primary Text color of the calendar (selectable dates)
app:secondaryTextColor setSecondaryTextColor(color: Int) Secondary Text color of the calendar (disabled dates)
app:selectedTextColor setSelectedTextColor(color: Int) Text color of the Selected date
app:selectionColor setSelectionColor(color: Int) Color for the Selection Circle
app:rangeSelectionColor setRangeSelectionColor(color: Int) Color for the Selection Background
app:rangeSelectionStartColor setRangeSelectionStartColor(color: Int) Color for the Range Start Selection Background
app:rangeSelectionEndColor setRangeSelectionEndColor(color: Int) Color for the Range End Selection Background
app:weekHeaderColor setWeekHeaderColor(color: Int) Text color for the Week Header labels
app:weekHeaderTextSize setWeekHeaderFontSize(size: Float) Text size for the Week Header labels
app:datesTextSize setDateTextFontSize(size: Float) Text size for the Date labels
app:monthTitleColor setMonthTitleColor(color: Int) Text color for the Month Title in the calendar view
app:monthTitleTextSize setMonthTitleFontSize(size: Float) Text size for the Month Title in the calendar view
app:eventDotColor setEventDotColor(color: Int) Color for the Event Dots marked in the calendar view
app:isBoldTextOnSelectionEnabled setIsBoldTextOnSelectionEnabled(isEnabled: Boolean) Sets whether the dates should be highlighted or not

Voila! You have implemented an awesome Events Calendar for your Android Project now!

Developed By

Follow me on Twitter Add me to Linkedin
Comments
  • In fragment its not working properly

    In fragment its not working properly

    Seems like in fragment its not working properly, whenever I subtract year in calendar for DateRange its show unexpected result, I don't know why its shows 2039 or previous month July 2019

    val start = DateTimeUtils.CalendarInstance()
    start.add(Calendar.YEAR, -10)
    
    val end = DateTimeUtils.CalendarInstance()
    end.add(Calendar.YEAR, 20)
    
    eventsCalendar.setMonthRange(start, end)
    

    but its work in activity. I am using Jetpack Navigation component, and when calendar fragment is start fragment then its work, but when I put directions or navigate() to calendar fragment from other fragment then the behavior is unpredictable.

    opened by DastanIqbal 5
  • Unable to Add Events

    Unable to Add Events

    Describe the bug Adding events not working. eventsCalendar.getDotsForMonth(c) return null

    To Reproduce val c = Calendar.getInstance() c.add(Calendar.DAY_OF_MONTH, 3) eventsCalendar.addEvent(c)

    Expected behavior show event on calender

    opened by nicemak 3
  • Show selected dates

    Show selected dates

    Can i show multiple dates selected like i opened calendar class and i want to show multiple dates selected and also on click that dates i want to deselect that dates.

    Thank you

    opened by gaganAriel 3
  • Single selection bug

    Single selection bug

    When on single selection the selection does not highlight automatically

    To Reproduce Steps to reproduce the behavior:

    1. eventsCalendar.setSelectionMode(eventsCalendar.SINGLE_SELECTION)
    2. Run the app and select a date

    Expected behavior Ideally, the selected date should be highlighted automatically.

    Additional context I went through the EventsCalendar.kt and on 'setCurrentSelectedDate' function the 'SINGLE_SELECTION' option is missing the reset() and refreshTodayDate() functions

    opened by kelvinkioko 2
  • Using add event calendar from background will lead to not showing the red dots

    Using add event calendar from background will lead to not showing the red dots

    I am using your library within an API call that returns all of my events during a specific month.

    The API call takes place in the background and if I add the events there red dots will not show, even if use runOnUIThread{}.

    Here is a peace of my code to show my issue.

    getEventsPromise(month) success {
                try {
    
                    activity?.runOnUiThread {
                        setCalendarEvents(
                            2019,
                            9,
                            2019
                        )
                    }
                } catch (e: Exception) {
                    
                }
            } fail {
                
            }
    
     private fun setCalendarEvents(year: Int, month: Int, day: Int) {
            val currentDateCalendar = Calendar.getInstance()
    
            val calendarInstance = Calendar.getInstance()
            calendarInstance.set(year, month, day)
    
            val timeDifference =
                calendarInstance.get(Calendar.DAY_OF_MONTH) - currentDateCalendar.get(Calendar.DAY_OF_MONTH)
    
            val eventCalendar = Calendar.getInstance()
            eventCalendar.add(Calendar.DAY_OF_MONTH, timeDifference)
    
            //calendarLib is the reference of EventsCalendar
            calendarLib.addEvent(eventCalendar)
        }
    

    These are the code I am trying to use with no success. I try "setCalendarEvents" this function outside the API call functions and it works fine the dots is shows as it should be. Please assist. And thank you in advance.

    opened by ma7moudAziz 2
  • How to add events using array of string

    How to add events using array of string

    hiii, i like the way you design the calendar, we have a array of string containing dates. how to add in your calendar the array of strings.. appreciate your help in advance

    opened by zshadabm 2
  • How to call dot by selected event?

    How to call dot by selected event?

    Hi guys. I am trying to create a point while holding or simply clicking on a date by putting eventsCalendar.addEvents (Calendar.getInstance ()) inside onDaySelected. But this returns the wrong points and only in 1 month. Please, tell me that's wrong. Which code do you use?

    opened by RedRainbowGuy 1
  • SINGLE_SELECTION' has private access in 'com.events.calendar.views.EventsCalendar

    SINGLE_SELECTION' has private access in 'com.events.calendar.views.EventsCalendar

    Set SINGLE SELECTION shows 'SINGLE_SELECTION' has private access in 'com.events.calendar.views.EventsCalendar' as error. Is there anything wrong with the code below.

    Also, if I remove this line ' .setSelectionMode(EventsCalendar.SINGLE_SELECTION)', the '.addEvent(cal)' prevents the Calender from building.

    Can you please explain this

    eventsCalendar.setCallback(this) .setToday(Calendar.getInstance()) .setMonthRange(minMonth, maxMonth) .setCurrentSelectedDate(Calendar.getInstance()) .setSelectionMode(EventsCalendar.SINGLE_SELECTION) .addEvent(cal) .build();

    opened by deLTreeTech 1
  •   kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized

    kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized

    kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized

    Just copy pasted xml code to my layout

    <com.events.calendar.views.EventsCalendar
            android:id="@+id/calendarView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#000000"
            android:overScrollMode="never"
            app:eventDotColor="#ff0000"
            app:isBoldTextOnSelectionEnabled="true"
            app:monthTitleColor="#ffffff"
            app:primaryTextColor="#c4c4c4"
            app:secondaryTextColor="#666666"
            app:selectedTextColor="#000000"
            app:selectionColor="#ffe600"
            app:weekHeaderColor="#c6c6c6"
            app:rangeSelectionColor="#ffe600"
            app:rangeSelectionStartColor="#c1ae01"
            app:rangeSelectionEndColor="#c1ae01" />
    

    kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized at com.events.calendar.utils.Events.getDotsForMonth(Events.kt:60) at com.events.calendar.utils.Events.getDotsForMonth(Events.kt:58) at com.events.calendar.views.DatesGridLayout.getDotsData(DatesGridLayout.kt:130) at com.events.calendar.views.DatesGridLayout.init(DatesGridLayout.kt:97) at com.events.calendar.views.DatesGridLayout.(DatesGridLayout.kt:83) at com.events.calendar.views.MonthView.setMonthGridLayout(MonthView.kt:141) at com.events.calendar.views.MonthView.init(MonthView.kt:91) at com.events.calendar.views.MonthView.(MonthView.kt:79) at com.events.calendar.adapters.MonthsAdapter.instantiateItem(MonthsAdapter.kt:34) at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158) at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092) at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622) at com.events.calendar.views.EventsCalendar.onMeasure(EventsCalendar.kt:111) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:22071) at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:9119) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1583) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:625) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) E: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:761) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2496) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2212) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:723) at android.view.Choreographer.doFrame(Choreographer.java:658) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

    Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    Smartphone (please complete the following information):

    • android emulator
    • OS: Android 8.1.0
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context Add any other context about the problem here.

    opened by nurjan84 1
  • Can we Disable Multiple Date at once.

    Can we Disable Multiple Date at once.

    We can select only one date using disableDate(), here last date which we pass is disable, but not the previous one.

    example: for (Calendar date :AVAILABLE_DATE_LIST) { eventsCalendar.disableDate(date); }
    here only last date is disable not all date from list.

    Question : How can we disable all the date from the list "AVAILABLE_DATE_LIST" ?

    opened by kamleshAvion 1
  • Different event colors possible?

    Different event colors possible?

    I'm looking for a way to display different event points in different colors.

    For example: 06/28/2022 -> Green dot 06/29/2022 -> Red dot

    I wish I could show a different color for each service, like in this example:

      for (service in services!!)
      {
                      val parser = SimpleDateFormat("dd.MM.yyyy hh:mm")
                      val dayFormatter = SimpleDateFormat("d")
                      val monthFormatter = SimpleDateFormat("M")
                      val yearFormatter = SimpleDateFormat("yyyy")
                      val day = dayFormatter.format(parser.parse(service.from)).toInt()
                      val month = monthFormatter.format(parser.parse(service.from)).toInt() - 1
                      val year = yearFormatter.format(parser.parse(service.from)).toInt()
                      val color = Color.parseColor("#" + service.shift!!.shiftColor)
      
                      val c = Calendar.getInstance()
                      c.set(Calendar.MONTH, month)
                      c.set(Calendar.DAY_OF_MONTH, day)
                      c.set(Calendar.YEAR, year)
      
                      calendarView.setEventDotColor(color = color)
                      calendarView.addEvent(c)
      }
    

    However, I have only found out that the event color can be set for the entire calendar.

    opened by cr0wfir3 0
  • Different event dot colors possible?

    Different event dot colors possible?

    I'm looking for a way to display different event points in different colors.

    For example: 06/28/2022 -> Green dot 06/29/2022 -> Red dot

    I wish I could show a different color for each service, like in this example:

    for (service in services!!) { val parser = SimpleDateFormat("dd.MM.yyyy hh:mm") val dayFormatter = SimpleDateFormat("d") val monthFormatter = SimpleDateFormat("M") val yearFormatter = SimpleDateFormat("yyyy") val day = dayFormatter.format(parser.parse(service.from)).toInt() val month = monthFormatter.format(parser.parse(service.from)).toInt() - 1 val year = yearFormatter.format(parser.parse(service.from)).toInt() val color = Color.parseColor("#" + service.shift!!.shiftColor)

                val c = Calendar.getInstance()
                c.set(Calendar.MONTH, month)
                c.set(Calendar.DAY_OF_MONTH, day)
                c.set(Calendar.YEAR, year)
    
                calendarView.setEventDotColor(color = color)
                calendarView.addEvent(c)
    

    }

    However, I have only found out that the event color can be set for the entire calendar.

    opened by cr0wfir3 0
  • app:eventDotColor, app:eventDotColor doesnt work on Android 11

    app:eventDotColor, app:eventDotColor doesnt work on Android 11

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    Smartphone (please complete the following information):

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context Add any other context about the problem here.

    opened by charlyge 0
  • Selected date disable after click

    Selected date disable after click

    When I click on a date and go to next view after I came back the selected date become disable and event dot becomes white. how can I solve this problem. Anyone can help me?

    opened by TanveerAhmed606050 0
  • Multiple event dots not shown on single date

    Multiple event dots not shown on single date

    Is your feature request related to a problem? Please describe. I want to add dots according to number of event on a date. e.g if I have 2 events on 2022-01-11 then 2 dots shown below the date.

    Describe the solution you'd like Event Dots are shown according to number of event on that date.

    opened by QaziAmmar 0
Releases(1.6.1)
Owner
Deepan
Android Developer
Deepan
📅 Minimal Calendar - This calendar library is built with jetpack compose. Easy, simple, and minimal.

?? Minimal Calendar This calendar library is built with jetpack compose. Easy, simple, and minimal. Latest version The stable version of the library i

Minjae Kim 16 Sep 14, 2022
CustomizableCalendar is a library that allows you to create your calendar, customizing UI and behaviour

CustomizableCalendar This library allows you to create a completely customizable calendar. You can use CustomizableCalendar to create your calendar, c

MOLO17 216 Dec 6, 2022
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Jan 7, 2023
Kmpcalendar - A calendar library and views written for kotlin multiplatform

KMPCalendarView Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compo

Anmol Verma 2 Oct 7, 2022
A Jetpack Compose library for handling calendar component rendering.

Compose Calendar Compose Calendar is a composable handling all complexity of rendering calendar component and date selection. Due to flexibility provi

Bogusz Pawłowski 181 Dec 22, 2022
A better calendar for Android

Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User ca

Roomorama 1.4k Nov 29, 2022
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022
📅 CosmoCalendar is a fully customizable calendar with a wide variety of features and displaying modes.

CosmoCalendar Made by Applikey Solutions Usage Customization Common Selection Current day Navigation buttons Weekend days Connected days Disabled days

Applikey Solutions 1.6k Dec 22, 2022
Demo app for a horizontal schedule(event) calendar

This is a demo project that showcases a horizontally laid out calendar that shows events in a timeline fashion. It is not a library, just a reference implementation for curious developers.

Halil Ozercan 188 Dec 26, 2022
Android open source calendar

Etar Calendar Etar (from Arabic: إِيتَار) is an open source material designed calendar made for everyone! Why? Well, I wanted a simple, material desig

null 1.5k Jan 4, 2023
Solutions for Muetzilla's Advent Calendar

Solutions for Muetzilla's Advent Calendar Link To the Advents Calendar Content Solutions for Muetzilla's Advent Calendar Content Problem 1 Problem 2 P

Marc Andri Fuchs 1 Mar 23, 2022
Calendar - A component for compose desktop

日历 一个用于compose-desktop的日历组件。 截图 feature DayPicker的动画 月份选择器错误提示 点击非本月的时间会跳到上个月 to

wwalkingg 1 Feb 7, 2022
A material-styled android view that provisions picking of a date, time & recurrence option, all from a single user-interface.

SublimePicker A customizable view that provisions picking of a date, time & recurrence option, all from a single user-interface. You can also view 'Su

Vikram 2.3k Jan 4, 2023
Tanya Gupta 1 Aug 16, 2022
A simple library which gives you custom design CalendarView with dialog functionality and event handlers.

CalendarView A simple library which gives you custom design CalendarView with dialog functionality and event handlers. 1: CalendarView Demo Screen 1.1

Shahzad Afridi (Opriday) 49 Oct 28, 2022
Asimov-flagz-kt - Feature flags library based on Togglz library

Asimov Flagz Feature flags library based on Togglz library. Installation Gradle

Nicolas Bottarini 1 Jan 8, 2022
Joda-Time library with Android specialization

Android has built-in date and time handling - why bother with a library? If you've worked with Java's Date and Calendar classes you can probably answer this question yourself, but if not, check out Joda-Time's list of benefits.

Daniel Lew 2.6k Dec 9, 2022
Android NTP time library. Get the true current time impervious to device clock time changes

TrueTime for Android Make sure to check out our counterpart too: TrueTime, an NTP library for Swift. NTP client for Android. Calculate the date and ti

Instacart 1.3k Jan 4, 2023
Android library for better Picker DialogFragments

DialogFragments modeled after the AOSP Clock and Calendar apps to improve UX for picking time, date, numbers, and other things.

Code-Troopers 2.7k Dec 29, 2022