📆 m_calendar
A customizable and lightweight Flutter calendar widget package for list-based day selections with user-defined decorations.
🖼️ Previews
✨ Features
- 📅 Month View – Display any month in a responsive calendar layout.
- ✅ Marked Days – Highlight days using a simple list.
- 🎨 Custom Decorations – Style each cell using
BoxDecoration. - 🔥 User Selection – Customize picked day styles and icons.
- 📆 Selection Modes – Supports both single and range selections.
- 💼 State Management – Powered by
provider. - 🧩 Easy Integration – Embeddable in any UI and layout.
- 📱 ** Horizontal View** - A horizontal calendar view that allows you to view the entire month at once.
Monthly Calendar
MCalendar(
selectedMonth: DateTime.now(),
onUserPicked: (value) {
debugPrint('User Get: $value');
},
),
Weekly Calendar View
MCalendar.weekly(
startDay: Day.sunday,
isRangeSelection: false,
selectedMonth: DateTime.now(),
onUserPicked: (value) {
debugPrint('User Get: $value');
},
),
Horizontal Calendar View
SizedBox(
width: double.maxFinite,
height: 300,
child: MCalendar.horizontal(
selectedMonth: DateTime.now(),
onUserPicked: (value) {
debugPrint('User Get: $value');
},
),
),
🚀 Getting Started
1️⃣ Add Dependency
Add this to your pubspec.yaml:
dependencies:
m_calendar: ^1.2.1
Libraries
- m_calendar
- model/marked_date_model
- provider/calendar_header_provider
- provider/horizontal_calendar_provider
- provider/monthly_calender_table_provider
- provider/weekly_calendar_table_provider
- utils/range_decoration
- view/calendar_header_view
- view/horizontal_view
- view/monthly_view
- view/weekly_view
- widgets/calendar_date_cell
- widgets/calendar_week_cell