An infinite scrolling timeline to pick a date.



Minimum api level: 14

First, add jitpack in your build.gradle at the end of repositories:

repositories {
   // ...
   maven { url "" }

Then, add the library dependency:

compile 'com.github.badoualy:datepicker-timeline:c6dcd05737'

Now go do some awesome stuff!


Warning: Note that the month value is always between 0 and 11 due to the use of the Calendar API.

Add the view to your xml


Setup the first visible date via the code

timeline.setFirstVisibleDate(2016, Calendar.JULY, 19);

You can also set the limit date

timeline.setLastVisibleDate(2020, Calendar.JULY, 19);

Supply a label adapter to add a label below each date if needed

timeline.setDateLabelAdapter(new MonthView.DateLabelAdapter() {
    public CharSequence getLabel(Calendar calendar, int index) {
        return Integer.toString(calendar.get(Calendar.MONTH) + 1) + "/" + (calendar.get(Calendar.YEAR) % 2000);

Set a listener to be notified when the user select a date

timeline.setOnDateSelectedListener(new DatePickerTimeline.OnDateSelectedListener() {
    public void onDateSelected(int year, int month, int day, int index) {

You can the the date manually

timeline.setSelectedDate(2017, Calendar.JULY, 19);