explaingit

prolificinteractive/material-calendarview

5,914JavaAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

An Android library that adds a Material Design-styled calendar widget to your app, with support for single dates, date ranges, and custom day decorators like colored dots and highlights.

Mindmap

mindmap
  root((repo))
    What it does
      Calendar widget
      Material Design style
      Date selection
    Customization
      Single or range mode
      Min and max dates
      Decorators and dots
    Tech
      Java
      Android
      JitPack
    Audience
      Android developers
      App builders
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 date picker to an Android app that matches Material Design guidelines

USE CASE 2

Let users select a continuous date range with minimum and maximum date boundaries

USE CASE 3

Mark specific days with colored dots or custom background shapes to indicate events or availability

USE CASE 4

Control whether users pick a single date, multiple dates, or a date range from the same widget

Tech stack

JavaAndroidJitPack

Getting it running

Difficulty · easy Time to first run · 30min

Add JitPack to your project-level build.gradle repositories block before adding the dependency.

Open source under a permissive license, use freely in personal and commercial projects.

In plain English

Material Calendar View is an Android library that adds a calendar widget to your app, styled to match Google's Material Design guidelines. Android includes a built-in CalendarView, but its appearance does not follow Material Design closely. This library was built to fill that gap, offering a cleaner look while giving developers more control over how the calendar behaves. To add it to an Android project, you include it as a dependency from the JitPack repository and drop the MaterialCalendarView component into any layout file. From there, you can listen for date selections in code or read the currently selected dates whenever you need them. The library offers a wide range of customization options. You can control whether users pick a single date, multiple dates, or a continuous date range. You can restrict which dates are selectable by setting minimum and maximum boundaries. The first day of the week can be changed, the header and weekday labels can be replaced with custom text, and dates from adjacent months can be shown or hidden. A decorator system lets you add colored dots, highlights, or custom background shapes to individual days, which is useful for marking events or availability. Version 2.0 made a significant internal change: the library switched from Java's older Calendar class to the newer LocalDate class for representing dates. Months are now numbered 1 through 12 instead of 0 through 11. Version 1.4 reorganized how certain settings (like date range limits and week start) are applied, grouping them into a state object so they take effect all at once rather than triggering repeated recalculations. The project is maintained by Prolific Interactive, a software agency. The library is open source and available under a permissive license.

Copy-paste prompts

Prompt 1
Add MaterialCalendarView to my Android project using JitPack and show a basic date picker in a fragment
Prompt 2
How do I add colored dots to specific dates in MaterialCalendarView to mark events on a calendar?
Prompt 3
Set up MaterialCalendarView so users can select a continuous date range with min and max date limits
Prompt 4
How do I customize the first day of the week and hide dates from adjacent months in MaterialCalendarView?
Prompt 5
Migrate my MaterialCalendarView code from version 1.x to 2.0 after the switch from Calendar to LocalDate
Open on GitHub → Explain another repo

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

Verify against the repo before relying on details.