☕️ Support My Work!

Buy Me a Coffee


🚀 horizontal_weekly_calendar v1.2.6 — All-New Features!

v1.2.5 is here! This update brings two powerful new calendar types:

  • TableWeeklyCalendar: A full table-style monthly calendar with week rows, focus dates, and custom header support.
  • EventCalendar: A professional event calendar view with time slots, event blocks, and full customization.

All previous styles (Standard, Outlined, Minimal, Elevated) are still available and improved! Now you can showcase and compare all calendar types in your app.


📅 Horizontal Weekly Calendar

🌟 Project Overview

A feature-rich, highly customizable horizontal calendar widget for Flutter applications, designed to provide seamless date selection and beautiful UI experiences.

Note: This widget supports multiple display modes and offers smooth animations!

🎨 Visual Demonstration

✨ Key Features

  • 6 Built-in Styles
    • Standard
    • Outlined
    • Minimal
    • Elevated
    • TableWeeklyCalendar (NEW)
    • EventCalendar (NEW)
Style Preview
Standard Standard Style
Outlined Outlined Style
Minimal Minimal Style
Elevated Elevated Style
Table Calendar Table Style
Event Calendar Event Style
  • Flexible Date Selection
  • Month Navigation Controls
  • Fully Customizable Theming
  • Table & Event Views (NEW!)
  • Focus Dates, Custom Headers, and More!

🆕 What's New in 1.2.6

  • Date Range Restrictions: Set minDate and maxDate on all calendar widgets to restrict selectable dates.
  • Disabled Date Styling: Customize disabled dates with disabledDayTextStyle and disabledDayColor in HorizontalCalendarStyle.
  • Non-Clickable Disabled Dates: Dates outside the allowed range are visually distinct and cannot be selected.

🔧 Installation

Add to your pubspec.yaml:

dependencies:
  horizontal_weekly_calendar: ^1.2.6

💡 Quick Start

HorizontalWeeklyCalendar(
  initialDate: DateTime.now(),
  selectedDate: _selectedDate,
  onDateSelected: (date) => setState(() => _selectedDate = date),
)

🛠 Customization Options

Style Configuration

HorizontalCalendarStyle(
  activeDayColor: Colors.blue,
  dayIndicatorSize: 40,
  monthHeaderStyle: TextStyle(
    fontSize: 18,
    fontWeight: FontWeight.bold,
  ),
)

🌈 Theming Support

The calendar adapts seamlessly to your app's theme:

Theme(
  data: ThemeData(
    colorScheme: ColorScheme.light(
      primary: Colors.purple,
      secondary: Colors.orange,
    ),
  ),
  child: HorizontalWeeklyCalendar(...),
)

📚 API Reference

Parameter Description Type Required
initialDate Starting display month DateTime
selectedDate Currently selected date DateTime
onDateSelected Date selection callback Function(DateTime)
calendarType Display style type HorizontalCalendarType
minDate Minimum selectable date DateTime?
maxDate Maximum selectable date DateTime?

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch
  3. 💾 Commit your changes
  4. 📤 Push to the branch
  5. 🔀 Open a Pull Request

📄 License

MIT License - See LICENSE file for details.


Crafted with ❤️ by github.com/ahmedzaeem

Libraries

weekly_calendar