Flexible Calendar widget that makes custom a Calendar much easier! Based on the StatefulWidget, this widget works on both Android & iOS.


Add the following to your pubspec.yaml file:

  flexible_calendar: 1.0.0

Simple Usage

After implement, you just use it like a normal child widget. Like this



Choose a date

Screen Shot 2021-07-24 at 20 56 31

Select date range

Screen Shot 2021-07-24 at 20 56 31

Custom Usage

There are several options that allow for more control:

initialStartDateInitialize the start date of the calendar, you need to update it every time you select a date in the calendar.
initialEndDateInitialize the start date of the calendar. If use selection mode to select only one date, you can set initialEndDate = null.
startEndDateChangeEvery time you click on the date, it will jump into this function for you to update the variable.
minimumDateLimit minimum date can choose.
maximumDateLimit maximum date can choose.
isConvertDateOfWeekToVietnameseDefault date of week is "Mon, Tue, ...", please set true if you like it show "T2, T3, T4, ..."
formatMonthTitleFormat title show top of calendar. Example: DateFormat("MM, yyyy") will show 07, 2021
textPreMonthTitleSet text pre title. Example: textPreMonthTitle: "Month", will show Month 07, 2021
decorationOfSelectedDayYou can custom decoration of selected widget to suil design.
colorOfDayInMonthSet color of date in current month.
colorDayInAnotherMonthSet color of date in anothe month.
colorOfSelectedDaySet color of selected date.
styleOfDayCommon style of all dates in the calendar.
isSelectedOnlyOneDayEnable mode select a date, default is select range.
colorInRangeSet backgroundColor of range date, not contains StartDate and EndDate.