Some Calendar

some calendar

pub package License support

Custom calendar dialog widget for flutter with (multi select, single select, date range) mode

New Features

Gif Somecalendar (without Dialog)


Multi

Range

Single

Gif Somecalendar (Dialog)


Multi

Range

Single

Requirements to run the demo

Setup

Add dependency to your pubspec.yaml:

some_calendar: ^{latest_version}

Basic use

First, add an import to your code:

import 'package:some_calendar/some_calendar.dart';

Setting Locale

First, add an import to your code:

import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';

  @override
  void initState() {
    initializeDateFormatting();
    Intl.systemLocale = 'en_En'; // to change the calendar format based on localization
    super.initState();
  }

Without dialog

Single Mode, add to your code:

    Padding(
        padding: EdgeInsets.all(18),
        child: SomeCalendar(
            primaryColor: Color(0xff5833A5),
            mode: SomeMode.Single,
            scrollDirection: Axis.horizontal,
            isWithoutDialog: true,
            selectedDate: selectedDate,
            startDate: Jiffy().subtract(years: 3),
            lastDate: Jiffy().add(months: 9),
            done: (date) {
                setState(() {
                    selectedDate = date;
                    showSnackbar(selectedDate.toString());
                });
            },
        ),
    )

Multi Mode, add to your code:

    Padding(
        padding: EdgeInsets.all(18),
        child: SomeCalendar(
            primaryColor: Color(0xff5833A5),
            mode: SomeMode.Multi,
            isWithoutDialog: true,
            selectedDates: selectedDates,
            startDate: Jiffy().subtract(years: 3),
            lastDate: Jiffy().add(months: 9),
            done: (date) {
                setState(() {
                    selectedDates = date;
                    showSnackbar(selectedDates.toString());
                });
            },
        ),
    )

Range Mode, add to your code:

    Padding(
        padding: EdgeInsets.all(18),
        child: SomeCalendar(
            primaryColor: Color(0xff5833A5),
            mode: SomeMode.Range,
            isWithoutDialog: true,
            selectedDates: selectedDates,
            startDate: Jiffy().subtract(years: 3),
            lastDate: Jiffy().add(months: 9),
            done: (date) {
                setState(() {
                    selectedDates = date;
                    showSnackbar(selectedDates.toString());
                });
            },
        ),
    )

with dialog

Single Mode, add to your code:

    showDialog(
        context: context,
        builder: (_) => SomeCalendar(
          mode: SomeMode.Single,
          isWithoutDialog: false,
          selectedDate: selectedDate,
          startDate: Jiffy().subtract(years: 3),
          lastDate: Jiffy().add(months: 9),
          done: (date) {
            setState(() {
              selectedDate = date;
              showSnackbar(selectedDate.toString());
            });
          },
        ));

Multi Mode, add to your code:

    showDialog(
        context: context,
        builder: (_) => SomeCalendar(
          mode: SomeMode.Multi,
          startDate: Jiffy().subtract(years: 3),
          lastDate: Jiffy().add(months: 9),
          isWithoutDialog: false,
          selectedDates: selectedDates,
          done: (date) {
            setState(() {
              selectedDates = date;
              showSnackbar(selectedDates.toString());
            });
          },
        ));

Range Mode, add to your code:

    showDialog(
        context: context,
        builder: (_) => SomeCalendar(
          mode: SomeMode.Range,
          startDate: Jiffy().subtract(years: 3),
          lastDate: Jiffy().add(months: 9),
          selectedDates: selectedDates,
          isWithoutDialog: false,
          primaryColor: Colors.red,
          done: (date) {
            setState(() {
              selectedDates = date;
              showSnackbar(selectedDates.toString());
            });
          },
        ));

SomeMode

SomeMode
Range
Single
Multi

Parameters

parameter types defaultValues
primaryColor color Color(0xff365535)
textColor color Colors.black
selectedDate Date Date.now()
selectedDates Date[] Date.now() + 4 days
isWithoutDialog bool true
scrollDirection Axis Axis.vertical
startDate Date
lastDate Date
mode SomeMode

Help Maintenance

I've taken the time to make this library, help support to develop it or buy me coffee and snacks to be even more enthusiastic
Buy Me A Coffee Paypal

New
(28)
• Released: May 12, 2020, 06:40 PM

Some Calendar

Author: agryva
Item was Featured Author was Featured Bought between 100 and 500 items Referred more than 1000 members Author had a Free File of the Month Contributed a Blog Post Helped protect FrontendFun against copyright violations Reviewer FrontendFun Developer Site Administrator Moderator Blog Editor
FREE
Custom calendar dialog widget for flutter with (multi select, single select, date range) mode size
git clone https://github.com/agryva/Some-Calendar.git