https://github.com/agryva/some-calendar
Custom calendar dialog widget for flutter with (multi select, single select, date range) mode
https://github.com/agryva/some-calendar
android calendar custom-calendar flutter flutter-plugin flutter-ui
Last synced: 9 months ago
JSON representation
Custom calendar dialog widget for flutter with (multi select, single select, date range) mode
- Host: GitHub
- URL: https://github.com/agryva/some-calendar
- Owner: agryva
- License: mit
- Created: 2020-02-26T05:00:21.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T03:26:58.000Z (over 3 years ago)
- Last Synced: 2025-06-12T19:09:05.675Z (about 1 year ago)
- Topics: android, calendar, custom-calendar, flutter, flutter-plugin, flutter-ui
- Language: Dart
- Homepage:
- Size: 13.4 MB
- Stars: 66
- Watchers: 2
- Forks: 32
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# some calendar
[](https://pub.dev/packages/some_calendar#-readme-tab-)

[](https://github.com/agryva/Some-Calendar)
Custom calendar with Multi-select & range configurable calendar
## New Features
+ Added View Mode Somecalendar #15
## 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
[](https://paypal.me/agryva)
| 
Multi | 
Range | 
Single |
| :---: | :---: | :---: |
## Requirements to run the demo ##
### Setup
Add dependency to your pubspec.yaml:
```dart
some_calendar: ^{latest_version}
```
### Basic use
First, add an import to your code:
```dart
import 'package:some_calendar/some_calendar.dart';
```
### Setting Locale
First, add an import to your code:
```dart
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();
}
```
### with dialog
Single Mode, add to your code:
```dart
showDialog(
context: context,
builder: (_) => SomeCalendar(
mode: SomeMode.Single,
isWithoutDialog: false,
selectedDate: selectedDate,
labels: new Labels(
dialogDone: 'Selesai',
dialogCancel: 'Batal',
dialogRangeFirstDate: 'Tanggal Pertama',
dialogRangeLastDate: 'Tanggal Terakhir',
),
startDate: Jiffy().subtract(years: 3),
lastDate: Jiffy().add(months: 9),
done: (date) {
setState(() {
selectedDate = date;
showSnackbar(selectedDate.toString());
});
},
));
```
Multi Mode, add to your code:
```dart
showDialog(
context: context,
builder: (_) => SomeCalendar(
mode: SomeMode.Multi,
startDate: Jiffy().subtract(years: 3),
lastDate: Jiffy().add(months: 9),
isWithoutDialog: false,
selectedDates: selectedDates,
viewMode: ViewMode.Edit,
done: (date) {
setState(() {
selectedDates = date;
showSnackbar(selectedDates.toString());
});
},
));
```
Range Mode, add to your code:
```dart
showDialog(
context: context,
builder: (_) => SomeCalendar(
mode: SomeMode.Range,
startDate: Jiffy().subtract(years: 3),
lastDate: Jiffy().add(months: 9),
selectedDates: selectedDates,
isWithoutDialog: false,
viewMode: ViewMode.Edit,
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` | |
| viewMode| `ViewMode` | ViewMode.Edit |