{"id":13549859,"url":"https://github.com/chaudharydeepanshu/clean_calendar","last_synced_at":"2025-04-09T17:22:59.303Z","repository":{"id":57747326,"uuid":"522648374","full_name":"chaudharydeepanshu/clean_calendar","owner":"chaudharydeepanshu","description":"Clean, beautiful and customisable calendar package for flutter","archived":false,"fork":false,"pushed_at":"2024-09-07T14:25:41.000Z","size":399,"stargazers_count":17,"open_issues_count":11,"forks_count":11,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T13:52:44.686Z","etag":null,"topics":["calendar","dart","events","flutter","monthly","streaks","weekly"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/clean_calendar","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaudharydeepanshu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-08T17:39:12.000Z","updated_at":"2025-02-27T16:47:39.000Z","dependencies_parsed_at":"2024-11-03T19:31:18.273Z","dependency_job_id":"ee5f5f5e-23a0-405e-9c1c-bffdf44dc611","html_url":"https://github.com/chaudharydeepanshu/clean_calendar","commit_stats":{"total_commits":43,"total_committers":2,"mean_commits":21.5,"dds":0.3023255813953488,"last_synced_commit":"b9fa16983e1ca9783b4477742df8ae94b5ab90b1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaudharydeepanshu%2Fclean_calendar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaudharydeepanshu%2Fclean_calendar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaudharydeepanshu%2Fclean_calendar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaudharydeepanshu%2Fclean_calendar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaudharydeepanshu","download_url":"https://codeload.github.com/chaudharydeepanshu/clean_calendar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248075319,"owners_count":21043563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","dart","events","flutter","monthly","streaks","weekly"],"created_at":"2024-08-01T12:01:26.391Z","updated_at":"2025-04-09T17:22:59.275Z","avatar_url":"https://github.com/chaudharydeepanshu.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"\u003c!--\nThis README describes the package. If you publish this package to pub.dev,\nthis README's contents appear on the landing page for your package.\n\nFor information about how to write a good package README, see the guide for\n[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).\n\nFor general information about developing packages, see the Dart guide for\n[creating packages](https://dart.dev/guides/libraries/create-library-packages)\nand the Flutter guide for\n[developing packages and plugins](https://flutter.dev/developing-packages).\n--\u003e\n\n[![pub package](https://img.shields.io/pub/v/clean_calendar.svg)](https://pub.dev/packages/clean_calendar) [![wakatime](https://wakatime.com/badge/user/83f3b15d-49de-4c01-b8de-bbc132f11be1/project/310945fd-a5ea-459c-a522-8048d1a86a33.svg)](https://wakatime.com/badge/user/83f3b15d-49de-4c01-b8de-bbc132f11be1/project/310945fd-a5ea-459c-a522-8048d1a86a33)\n\n## Word from creator\n\n**Hello👋, Clean Calendar is in the early stages of development and can have many breaking changes. If you have any questions or suggestions, contact me via GitHub issues, email, discord, or any of the ways listed on my GitHub profile.**\n\n**Yes, giving the package a 👍(Pub) or ⭐(Github) will encourage me to work on it more.**\n\n## Package description\n\nGet ready to enhance your Flutter app with this fantastic calendar package! With its simple yet elegant design, you can create a fully customized calendar that suits your needs. It provides a customizable month view and the ability to highlight dates with streaks. It is just the beginning, and we will add more features.\n\n## Features\n\n- Display dates as streaks\n\n\u003cimg src=\"https://user-images.githubusercontent.com/85361211/183488609-8569b762-dda7-4ae4-929b-73d14ab62ac8.png\" width=\"400\" /\u003e\n\n- Monthly calendar\n\n| Dark mode  | Light mode |\n| --- | --- |\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/183489719-fda17b3e-c2de-4368-b293-73e453b60fcd.gif\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/183489928-14a32db4-7d41-4b38-bf3b-7b0a6e0037aa.gif\" width=\"400\" /\u003e |\n\n- Weekly calendar\n\n| Dark mode  | Light mode |\n| --- | --- |\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/186000727-3c9f773b-5483-453c-bd61-2c0b16d1a6f2.gif\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/186000735-83d1fd93-05be-48af-8b52-0a0c949a4cdc.gif\" width=\"400\" /\u003e |\n\n## Getting started\n\n- In pubspec.yaml, add this dependency:\n\n```yaml\nclean_calendar: \n```\n\n- Add this package to your project:\n\n```dart\nimport 'package:clean_calendar/clean_calendar.dart';\n```\n\n## Basic Usage\n\n```dart\nclass Home extends StatelessWidget {\n  const Home({Key? key}) : super(key: key);\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        elevation: 2,\n        title: const Text(\"Calendar\"),\n      ),\n      body: CleanCalendar(\n        datesForStreaks: [\n          DateTime(2022, 8, 5),\n          DateTime(2022, 8, 6),\n          DateTime(2022, 8, 7),\n          DateTime(2022, 8, 9),\n          DateTime(2022, 8, 10),\n          DateTime(2022, 8, 11),\n          DateTime(2022, 8, 13),\n          DateTime(2022, 8, 20),\n          DateTime(2022, 8, 21),\n          DateTime(2022, 8, 23),\n          DateTime(2022, 8, 24),\n        ],\n      ),\n    );\n  }\n}\n```\n\n## Customisations\n\n- Customise date boundary behaviour and tap behaviour\n\n| \u003cpre\u003eCleanCalendar(                           \u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr\u003e  // To allow date boundary to shrink.\u003cbr\u003e  enableDenseViewForDates: true,\u003cbr\u003e\u003cbr\u003e  // To allow date tap splash to shrink.\u003cbr\u003e  enableDenseSplashForDates: true,\u003cbr\u003e)\u003c/pre\u003e |\n|:---|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185585701-00c9b42e-ca15-4884-a151-c795a0e06662.gif\" width=\"470\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185585710-69037f2c-773f-492a-a9ef-869f5926cf14.gif\" width=\"470\" /\u003e |\n\nNote: This dense mode could lead to overflow if the available width to calendar is smaller than 280px so it is advised to disable them in smaller space than 280px.\n\n- Disable and hide different types of dates\n\n| \u003cpre\u003eCleanCalendar(                                      \u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  leadingTrailingDatesProperties: DatesProperties(\u003cbr /\u003e\u003cbr /\u003e   // To disable taps on leading and trailing dates.\u003cbr /\u003e   disable: true,\u003cbr /\u003e\u003cbr /\u003e   // To hide leading and trailing dates.\u003cbr /\u003e   hide: true,\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n|:---|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185587354-f7b0d42f-9dd0-41a4-a049-1219e4da42e8.png\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185587363-475073da-5bf5-4f26-8f69-606370ae23a8.png\" width=\"400\" /\u003e |\n\nAlso, Available for other types of dates : -\n\n| Selected Dates | Visible Month Dates | Current Date | Streak Dates |\n|:---|:---|:---|:---|\n| \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  selectedDatesProperties: DatesProperties(\u003cbr /\u003e\u003cbr /\u003e   // To disable taps on selected dates.\u003cbr /\u003e   disable: true,\u003cbr /\u003e\u003cbr /\u003e   // To hide selected dates.\u003cbr /\u003e   hide: true,\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  generalDatesProperties: DatesProperties(\u003cbr /\u003e\u003cbr /\u003e   // To disable taps on leading and trailing dates.\u003cbr /\u003e   disable: true,\u003cbr /\u003e\u003cbr /\u003e   // To hide leading and trailing dates.\u003cbr /\u003e   hide: true,\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  currentDateProperties: DatesProperties(\u003cbr /\u003e\u003cbr /\u003e   // To disable taps on current date.\u003cbr /\u003e   disable: true,\u003cbr /\u003e\u003cbr /\u003e   // To hide current date.\u003cbr /\u003e   hide: true,\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  streakDatesProperties: DatesProperties(\u003cbr /\u003e\u003cbr /\u003e   // To disable taps on streak dates.\u003cbr /\u003e   disable: true,\u003cbr /\u003e\u003cbr /\u003e   // To hide streak dates.\u003cbr /\u003e   hide: true,\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n\n- Customise dates look by changing its properties\n\n| \u003cpre\u003eCleanCalendar(                                         \u003cbr /\u003e);\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  datesForStreaks: [\u003cbr /\u003e    DateTime(2022, 8, 5),\u003cbr /\u003e    DateTime(2022, 8, 6),\u003cbr /\u003e    ...\u003cbr /\u003e  ],\u003cbr /\u003e  currentDateProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.lightGreen.shade100,\u003cbr /\u003e      datesBorderColor: Colors.green,\u003cbr /\u003e      datesTextColor: Colors.black,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  generalDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.lightGreen.shade100,\u003cbr /\u003e      datesBorderColor: Colors.blue.shade100,\u003cbr /\u003e      datesTextColor: Colors.black,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  streakDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.green,\u003cbr /\u003e      datesBorderColor: Colors.blue,\u003cbr /\u003e      datesTextColor: Colors.white,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  leadingTrailingDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e | \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  enableDenseViewForDates: true,\u003cbr /\u003e  datesForStreaks: [\u003cbr /\u003e    DateTime(2022, 8, 5),\u003cbr /\u003e    DateTime(2022, 8, 6),\u003cbr /\u003e    ...\u003cbr /\u003e  ],\u003cbr /\u003e  currentDateProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.lightGreen.shade100,\u003cbr /\u003e      datesBorderColor: Colors.green,\u003cbr /\u003e      datesTextColor: Colors.black,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  generalDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.lightGreen.shade100,\u003cbr /\u003e      datesBorderColor: Colors.blue.shade100,\u003cbr /\u003e      datesTextColor: Colors.black,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  streakDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e      datesBackgroundColor: Colors.green,\u003cbr /\u003e      datesBorderColor: Colors.blue,\u003cbr /\u003e      datesTextColor: Colors.white,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e  leadingTrailingDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n|:---|:---|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185591984-0165f037-8a18-4547-be63-b60bff7de382.png\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185591992-2f5c81ab-7db7-4fbd-b85d-9b10a4ca6c01.png\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185591997-1fc13884-9741-47c9-af4c-264c70d96e66.png\" width=\"400\" /\u003e |\n\n- Customise weekdays header by changing its properties\n\n| \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  weekdaysProperties: WeekdaysProperties(\u003cbr /\u003e    generalWeekdaysDecoration:\u003cbr /\u003e        WeekdaysDecoration(weekdayTextColor: Colors.red),\u003cbr /\u003e    sundayDecoration: WeekdaysDecoration(\u003cbr /\u003e        weekdayTextColor: Colors.green,\u003cbr /\u003e        weekdayTextStyle:\u003cbr /\u003e            Theme.of(context).textTheme.headlineMedium),\u003cbr /\u003e    saturdayDecoration: WeekdaysDecoration(\u003cbr /\u003e        weekdayTextColor: Colors.green,\u003cbr /\u003e        weekdayTextStyle:\u003cbr /\u003e            Theme.of(context).textTheme.headlineMedium),\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/192656691-d492a13d-5f45-4bbc-ba33-28f7039b2c9f.jpeg\" width=\"400\" /\u003e  |\n\n- Customise navigator header by changing its properties\n\n| \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  headerProperties: HeaderProperties(\u003cbr /\u003e    monthYearDecoration: MonthYearDecoration(\u003cbr /\u003e      monthYearTextColor: Colors.amber,\u003cbr /\u003e      monthYearTextStyle: Theme.of(context).textTheme.labelMedium,\u003cbr /\u003e    ),\u003cbr /\u003e    navigatorDecoration: NavigatorDecoration(\u003cbr /\u003e      navigatorResetButtonIcon: const Icon(\u003cbr /\u003e        Icons.restart_alt,\u003cbr /\u003e        color: Colors.amber,\u003cbr /\u003e      ),\u003cbr /\u003e      navigateLeftButtonIcon: const Icon(\u003cbr /\u003e        Icons.arrow_circle_left,\u003cbr /\u003e        color: Colors.amber,\u003cbr /\u003e      ),\u003cbr /\u003e      navigateRightButtonIcon: const Icon(\u003cbr /\u003e        Icons.arrow_circle_right,\u003cbr /\u003e        color: Colors.amber,\u003cbr /\u003e      ),\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/214251692-d8cfb076-a185-4d9d-9b6b-81700023dd78.jpeg\" width=\"400\" /\u003e  |\n\n## Date Selection\n\n- Multiple date selection with customization\n\n| \u003cpre\u003eCleanCalendar(\u003cbr /\u003e  enableDenseViewForDates: true,\u003cbr /\u003e  enableDenseSplashForDates: true,\u003cbr /\u003e  datesForStreaks: [\u003cbr /\u003e    DateTime(2022, 8, 5),\u003cbr /\u003e    DateTime(2022, 8, 6),\u003cbr /\u003e    ...\u003cbr /\u003e  ],\u003cbr /\u003e\u003cbr /\u003e  // Enabling selecting single or multiple dates. Defaults to disable selection.\u003cbr /\u003e  dateSelectionMode: DatePickerSelectionMode.singleOrMultiple,\u003cbr /\u003e\u003cbr /\u003e  // Listening to selected dates.\u003cbr /\u003e  onSelectedDates: (List\u0026lt;DateTime\u0026gt; value) {\u003cbr /\u003e    // If selected date picked again then removing it from selected dates.\u003cbr /\u003e    if (selectedDates.contains(value.first)) {\u003cbr /\u003e      selectedDates.remove(value.first);\u003cbr /\u003e    } else {\u003cbr /\u003e      // If unselected date picked then adding it to selected dates.\u003cbr /\u003e      selectedDates.add(value.first);\u003cbr /\u003e    }\u003cbr /\u003e    // setState to update the calendar with new selected dates.\u003cbr /\u003e    setState(() {});\u003cbr /\u003e  },\u003cbr /\u003e\u003cbr /\u003e  // Providing calendar the dates to select in ui.\u003cbr /\u003e  selectedDates: selectedDates,\u003cbr /\u003e\u003cbr /\u003e  // Customizing selected date.\u003cbr /\u003e  selectedDatesProperties: DatesProperties(\u003cbr /\u003e    datesDecoration: DatesDecoration(\u003cbr /\u003e      datesBorderRadius: 1000,\u003cbr /\u003e    ),\u003cbr /\u003e  ),\u003cbr /\u003e)\u003c/pre\u003e |\n|:---|\n| \u003cimg src=\"https://user-images.githubusercontent.com/85361211/185594856-e507bc09-7af0-40b7-9935-705f30f2e6e3.gif\" width=\"400\" /\u003e |\n\n- Single date selection\n\n  For single date selection modify the above example code `onSelectedDates` logic to store only single latest date as selected.\n\n- Range, multiple ranges (coming soon)\n\n## Changing calendar view type\n\nCurrently mothly and weekly views are added. You can change them as shown below:\n\n```dart\nCleanCalendar(\n  // Setting DatePickerCalendarView.weekView for weekly view\n  datePickerCalendarView: DatePickerCalendarView.weekView,\n)\n```\n\n**Note:** ```datePickerCalendarView``` defaults to DatePickerCalendarView.monthView.\n\n## Changing calendar start weekday\n\nYou can change the claendar start weekday as shown below:\n\n```dart\nCleanCalendar(\n  // Setting start weekday\n  startWeekday: WeekDay.monday,\n)\n```\n\n**Note:** ```startWeekday``` defaults to WeekDay.sunday.\n\n## Changing weekday and month symbols\n\nYou can change the claendar months and weekdays symbols as shown below:\n\n```dart\nCleanCalendar(\n  // Setting custom weekday symbols\n  weekdaysSymbol: const Weekdays(sunday: \"s\", monday: \"m\", tuesday: \"t\", wednesday: \"w\", thursday: \"t\", friday: \"f\", saturday: \"s\"),\n  // Setting custom month symbols\n  monthsSymbol: const Months(january: \"Jan\", february: \"Feb\", march: \"Mar\", april: \"Apr\", may: \"May\", june: \"Jun\", july: \"Jul\", august: \"Aug\", september: \"Sep\", october: \"Oct\", november: \"Nov\", december: \"Dec\"),\n)\n```\n\n**Note:** ```weekdaysSymbol``` defaults to Mo, Tu, We, Th, Fr, Sa, Su from monday to sunday and ```monthsSymbol``` defaults to January, February, March, April, May, June, July, August, September, October, November, December.\n\n## Accessing selected dates\n\nTo access selected dates use the ```onSelectedDates``` callback but keep in mind that this callback always provides a list of dates as shown below:\n\n```dart\nCleanCalendar(\n  ...\n  onSelectedDates: (List\u003cDateTime\u003e selectedDates) {\n    // Called every time dates are selected or deselected.\n    print(selectedDates);\n  },\n)\n```\n\n**Note:** Even for single selection mode it provides a list with just one date and for multiple selection it provides a list with multiple dates.\n\n## Providing pre-selected dates\n\nYou can provide pre-selected dates by providing a list of dates to ```selectedDates``` as shown below:\n\n```dart\nCleanCalendar(\n  ...\n  selectedDates: [\n    DateTime(2022, 8, 6),\n    DateTime(2022, 8, 9),\n    DateTime(2022, 8, 11),\n  ],\n)\n```\n**Note:** Even with selection mode set to single or disable it will still show the provided pre-selected dates as selected. And I think is the correct behavious as sometimes we might want to show selected dates while also preventing users from interacting with them.\n\n## Providing start and end dates\n\nYou can provide start and end dates for calendar view as shown below:\n\n```dart\nCleanCalendar(\n  ...\n  // Setting start date of calendar.\n  startDateOfCalendar: DateTime(2022,6,5),\n\n  // Setting end date of calendar.\n  endDateOfCalendar: DateTime(2022,10,15),\n)\n```\n\n**Note:** ```startDateOfCalendar``` defaults to DateTime.utc(0000, 1, 1) and ```endDateOfCalendar``` defaults to DateTime.utc(9999, 1, 1).\n\n## Providing initial month view for calendar\n\nYou can provide initial month view for calendar by providing date of that month as shown below:\n\n```dart\nCleanCalendar(\n  ...\n  // Setting initial month view of calendar.\n  initialViewMonthDateTime: DateTime(2022,9,5),\n)\n```\n\n**Note:** ```initialViewMonthDateTime``` defaults to current date and if current is not between startDateOfCalendar and endDateOfCalendar then defaults to start date..\n\n## Providing current date for calendar\n\nYou can provide current date for calendar as shown below:\n\n```dart\nCleanCalendar(\n  ...\n  // Setting current date of calendar.\n  currentDateOfCalendar: DateTime(2022,9,5),\n)\n```\n\n**Note:** ```currentDateOfCalendar``` defaults to DateTime.now().\n\n## Listening for calendar view week or month change\n\nYou can listen and get the current calendar view date on calendar view change. Useful in case you want to change your ui acording to the dates visible to user.\n\n```dart\nCleanCalendar(\n  ...\n  onCalendarViewDate: (DateTime calendarViewDate) {\n    // Called every time view is changed like scrolled etc.\n    print(calendarViewDate);\n  },\n)\n```\n\n**Note:** For now ```onCalendarViewDate``` will only provide the view starting date. Later I may can add an option to get all dates of current view depending on users request. Also, ```onCalendarViewDate``` is called only on change of view like scroll, etc and will not be called on the creation of calendar as at thst time we already know the date.\n\n## Additional information\n\nSupport is surely planned for these:\n\n- Complete documentation.\n\n- Option to disable user interactions on whole view, past dates, and dates after-before end-start date. (🐇)\n\n- More customization and premade templates for calendar. (🐢)\n\n- More calendar view types. (🐢)\n\n- Date selection options such as range, and multiple range selections. (🐢)\n\n- A calendar option for choosing a view by year, month, or day. (🐢)\n\n- Support for dates to be displayed in events style. (🐢)\n\n- Dry mode, which optimizes performance for low-end devices by removing or substituting heavy animations and widgets. (🐢)\n\nAnd, if I'm forgetting something crucial/important/necessary then please let me know.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaudharydeepanshu%2Fclean_calendar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaudharydeepanshu%2Fclean_calendar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaudharydeepanshu%2Fclean_calendar/lists"}