dynamo_calendar 1.0.1 copy "dynamo_calendar: ^1.0.1" to clipboard
dynamo_calendar: ^1.0.1 copied to clipboard

A Flutter project that Supports flexible and customizable calendar/date-time picker widget for Flutter applications, supporting multiple modes

dynamo_calendar #

A powerful, multi-mode Flutter calendar widget designed for flexibility. Whether you need a simple date picker, a precise time picker, or a full-scale event scheduler, Dynamo Calendar handles the complexity so you can focus on your app's logic.

Optimized for desktop, tablets, and small-screen apps; android, iOS, and web.

pub package License

๐ŸŒŸ Features #

Four distinct modes:

  • Simple date selection

  • Time selection only

  • Combined date + time selection

  • Full scheduler with event visualization & interaction

  • ๐Ÿ“… Date Picker: Selection of single dates with a clean, modern UI.

  • โฐ Time Picker: Precise hour and minute selection.

  • ๐ŸŒ“ Date & Time: Combined picker for appointments and deadlines.

  • ๐Ÿ—“๏ธ Scheduler Mode: View and interact with a list of events assigned to specific dates.

  • ๐Ÿ“ฑ Responsive: Built-in support for both Mobile and Desktop/Web layouts.

๐Ÿ“ฆ Installation #

Add the dependency to your pubspec.yaml:

dependencies:
  dynamo_calendar: ^1.0.0

Or run:

flutter pub add dynamo_calendar

๐Ÿš€ Usage #

Import the library

import 'package:dynamo_calendar/dynamo_calendar.dart';

Datepicker Example

    showDialog(
      context: context,
      builder: (context) => Material(
        type: MaterialType.transparency,
        child: DynamoCalendar(
          calendarMode: CalendarMode.datePicker,
          selectedDate: selectedDate,
          onDateSelected: (datePicked) {
            selectedDate = datePicked;
            _updateText(selectedDate != null ? DateUtil.getStandardDate(selectedDate) : "");
          },
        ),
      ),
    );

Timepicker Example

    showDialog(
      context: context,
      builder: (context) => Material(
        type: MaterialType.transparency,
        child: DynamoCalendar(
          key: ValueKey(++_counter),
          calendarMode: CalendarMode.timePicker,
          selectedTime: selectedTimeOfDay,
          onTimeSelected: (timePicked) {
            selectedTimeOfDay = timePicked;
            _updateText(selectedTimeOfDay?.format(context) ?? "");
          },
        ),
      ),
    );

Date & Time Picker Example

    showDialog(
      context: context,
      builder: (context) => Material(
        type: MaterialType.transparency,
        child: DynamoCalendar(
          calendarMode: CalendarMode.dateAndTimePicker,
          selectedDate: selectedDate,
          onDateSelected: (datePicked) {
            selectedDate = datePicked;
            _updateText(selectedDate != null ? DateUtil.getStandardDate(selectedDate, verbose: true) : "");
          },
        ),
      ),
    );

Scheduler Example

      DynamoCalendar(
        calendarMode: CalendarMode.scheduler,
        selectedDate: selectedDate,
        calendarEvents: myCalendarEvents,
        onShowDetailsPressed: (events) => _showEventDetails(context, events),
        onDateSelected: (date) {
          // Navigator logic for new event
        },
      ),

Implementation Tips

ReadOnly TextFields: When using a TextField as a trigger, set readOnly: true. 
This prevents the system keyboard from overlapping your beautiful calendar.

Event Handling: In scheduler mode, the onShowDetailsPressed returns a list of events. 
You can use this to show a detail sheet or a custom popup with event description details.

๐Ÿงช Example #

A complete working example is available in /example, showcasing:

  • Datepicker
  • Timepicker
  • Date & Time Picker
  • Scheduler

๐ŸŽฅ Demo #

Datepicker Timepicker Date & Time Picker Scheduler

๐Ÿ“„ License #

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

๐Ÿค Contributing #

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

2
likes
150
points
146
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter project that Supports flexible and customizable calendar/date-time picker widget for Flutter applications, supporting multiple modes

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

cupertino_icons, flutter, intl, logger, table_calendar

More

Packages that depend on dynamo_calendar