# ej2-react-calendars

The calendars package contains date and time components such as Calendar, DatePicker, DateRangePicker, DateTimePicker, and TimePicker. These components come with an option for disabling dates, restricting selection and showing custom events. It also has documentation and support, which are available under commercial and community licenses. Please visit [www.syncfusion.com](https://www.syncfusion.com/) to get started.

<p align="center">
  <img src="https://ej2.syncfusion.com/products/images/calendar/readme.gif" alt="Calendar components">
</p>

> This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's EULA (https://www.syncfusion.com/eula/es/). To acquire a license, you can purchase one at https://www.syncfusion.com/sales/products or start a free 30-day trial here (https://www.syncfusion.com/account/manage-trials/start-trials).

> A free community license (https://www.syncfusion.com/products/communitylicense) is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

## Setup

To install `Calendar` and its dependent packages, use the following command.

```sh
npm install @syncfusion/ej2-react-calendars
```

## Components included

Following list of components are available in the package.

* [Calendar](#calendar)
* [DatePicker](#datepicker)
* [TimePicker](#timepicker)
* [DateTimePicker](#datetimepicker)
* [DateRangePicker](#daterangepicker)

### Calendar

The `Calendar` is a graphical user interface component that displays a Gregorian Calendar, and allows a user to select a date.

#### Key Features

* [Date Range](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=calendar#/material/calendar/range) - Restrict the range of dates that can be selected by using the `min` and `max` properties.
* [Customization](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=calendar#/material/calendar/special) - You have complete control over the appearance of the Calendar component.
* [Month or year selection](https://ej2.syncfusion.com/react/documentation/calendar/calendar-views.html#calendar-views) - The Calendar control provides flexible options to select only the month or year as date value.
* [First day of week](https://ej2.syncfusion.com/react/documentation/calendar/how-to.html#change-the-first-day-of-week) - Change the first day of weeks in every month.
* [Week number](https://ej2.syncfusion.com/react/documentation/calendar/how-to.html#render-calendar-with-week-number) - Know the week number of the selected date in the Calendar by enabling the week number option.
* [Disabled dates](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=calendar#/material/calendar/disabled) - Any date can be disabled to prevent the user from selecting the date.
* [Start and Depth View](https://ej2.syncfusion.com/react/documentation/calendar/calendar-views.html#view-restriction) - The Calendar has the `month`, `year` and `decade` views that provides a flexible way to navigate back and forth to select the date.
* [Globalization](https://ej2.syncfusion.com/react/documentation/calendar/globalization.html#calendar) - The Calendar control supports globalization (internationalization and localization) to translate the names of months, days, and the today button text to any supported language.

#### Resources

* [Getting Started](https://ej2.syncfusion.com/react/documentation/calendar/getting-started.html?utm_source=npm&utm_campaign=calendar)
* [API Reference](https://ej2.syncfusion.com/react/documentation/calendar/api-calendarComponent.html?utm_source=npm&utm_campaign=calendar)
* [View Online Demos](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=calendar#/material/calendar/default)
* [Product Page](https://www.syncfusion.com/products/react/calendar)

### DatePicker

The `DatePicker` is a graphical user interface component that allows user to select or enter a date value.

#### Key Features

The DatePicker is inherited from the Calendar component. So, all the key features of the Calendar component can be accessible in the DatePicker component. Additionally, it has some specific features such as `Date format` and `Strict mode`, which are described below.

* [Date Format](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=datepicker#/material/datepicker/dateformat) - The DatePicker control’s input value can be custom formatted apart from the default culture’s specific date format.
* [Strict mode](https://ej2.syncfusion.com/react/documentation/datepicker/strictMode.html?utm_source=npm&utm_campaign=datepicker) - The strictMode is an act, that allows the user to enter only the valid date within the specified min or max range in textbox.

#### Resources

* [Getting Started](https://ej2.syncfusion.com/react/documentation/datepicker/getting-started.html?utm_source=npm&utm_campaign=datepicker)
* [API Reference](https://ej2.syncfusion.com/react/documentation/datepicker/api-datePickerComponent.html?utm_source=npm&utm_campaign=datepicker)
* [View Online Demos](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=datepicker#/material/datepicker/default)
* [Product Page](https://www.syncfusion.com/products/react/datepicker)

### TimePicker

`TimePicker` is a simple and intuitive interface component which provides an options to select a time value from popup list or to set a desired time value.

#### Key Features

* [Time Range](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/range) - Restricts the entry or selection of time value within a specific range of time by using `min` and `max` properties.
* [Time Format](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/format) - Apart from the default culture specific time format, the TimePicker control’s input value can also be custom formatted.
* [Strict mode](https://ej2.syncfusion.com/react/documentation/timepicker/strict-mode.html#timepicker) - The strictMode is an act that allows you to enter only valid time value within the specified min and max range in the textbox.
* [Disabled time](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/list-formatting) - Any number of time values can be disabled in the popup list items to prevent selection of those times.
* [Time intervals](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/list-formatting) - Allows populating the time list with essential intervals between the times in the popup list to enable the user to select proper time value.
* [Customization](https://ej2.syncfusion.com/react/documentation/timepicker/how-to.html#css-customization) - The appearance of the TimePicker component can be customized completely.
* [Time list with duration](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/list-formatting) - Supports customization of the TimePicker control’s popup list items with time duration.
* [Globalization](https://ej2.syncfusion.com/react/documentation/timepicker/globalization.html#timepicker) - The TimePicker control supports globalization (internationalization and localization) that allows updating the time popup list values to match specified culture.

#### Resources

* [Getting Started](https://ej2.syncfusion.com/react/documentation/timepicker/getting-started.html?utm_source=npm&utm_campaign=timepicker)
* [API Reference](https://ej2.syncfusion.com/react/documentation/timepicker/api-timePickerComponent.html?utm_source=npm&utm_campaign=timepicker)
* [View Online Demos](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=timepicker#/material/timepicker/default)
* [Product Page](https://www.syncfusion.com/products/react/timepicker)

### DateTimePicker

The `DateTimePicker` is a graphical user interface component that allows an end user to enter or select a date and time value from a pop-up calendar and time list pop-up.

#### Key Features

The DateTimePicker is inherited from the DatePicker and TimePicker component. So, all the key features of the DatePicker and TimePicker component can be accessible in the DateTimePicker component. Additionally, it has some specific features such as `DateTime Range` and `DateTime format`, which are described below.

* [DateTime Range](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=datetimepicker#/material/datetimepicker/range) - Restricts the entry or selection of values within a specific range of dates and times by using `min` and `max` properties.
* [DateTime Format](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=datetimepicker#/material/datetimepicker/dateformat) - The DateTimePicker control’s input value can be custom formatted apart from the default culture’s specific date time format.

#### Resources

* [Getting Started](https://ej2.syncfusion.com/react/documentation/datetimepicker/getting-started.html?utm_source=npm&utm_campaign=datetimepicker)
* [API Reference](https://ej2.syncfusion.com/react/documentation/datetimepicker/api-dateTimePickerComponent.html?utm_source=npm&utm_campaign=datetimepicker)
* [View Online Demos](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=datetimepicker#/material/datetimepicker/default)
* [Product Page](https://www.syncfusion.com/products/react/datetimepicker)

### DateRangePicker

The `DateRangePicker` is a graphical user interface control that allows an end user to select a start and end date value as a range from a calendar pop-up or by entering the value directly in the input element.

#### Key Features

* [Preset Ranges](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=daterangepicker#/material/daterangepicker/presets) - Supports to define the preset of ranges to select the frequently used date range by the end users.
* [Range Restriction](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=daterangepicker#/material/daterangepicker/daterange) - The DateRangePicker control restricts the user to enter or select the value within a specific range of date by defining the min and max properties.
* [Limit the selection range](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=daterangepicker#/material/daterangepicker/dayspan) - Direct the end user to select only the date range with specific minimum and maximum number of days count by setting the minDays and maxDays options.
* [First day of week](https://ej2.syncfusion.com/react/documentation/daterangepicker/customization.html#first-day-of-week) - Change the first day of weeks in every month.
* [Strict mode](https://ej2.syncfusion.com/react/documentation/daterangepicker/range-selection.html#strict-mode) - The strictMode is an act, that allows the user to enter only the valid date within the specified min or max range in textbox.
* [Customization](https://ej2.syncfusion.com/react/documentation/daterangepicker/customization.html#daterangepicker) - The appearance of the DateRangePicker component can be customized completely.
* [Format](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=daterangepicker#/material/daterangepicker/format) - The DateRangePicker control’s input value can be custom formatted apart from the default culture’s specific date range format.
* [Globalization](https://ej2.syncfusion.com/react/documentation/daterangepicker/globalization.html#daterangepicker) - The DateRangePicker control supports globalization (internationalization and localization) to translate the names of months, days and button text to any supported language.

#### Resources

* [Getting Started](https://ej2.syncfusion.com/react/documentation/daterangepicker/getting-started.html?utm_source=npm&utm_campaign=daterangepicker)
* [API Reference](https://ej2.syncfusion.com/react/documentation/daterangepicker/api-dateRangePickerComponent.html?utm_source=npm&utm_campaign=daterangepicker)
* [View Online Demos](https://ej2.syncfusion.com/react/demos/?utm_source=npm&utm_campaign=daterangepicker#/material/daterangepicker/default)
* [Product Page](https://www.syncfusion.com/products/react/daterangepicker)

## Supported Frameworks

DateTime components are also offered in the following list of frameworks.

* [Angular](https://github.com/syncfusion/ej2-ng-calendars?utm_source=npm&utm_campaign=calendars)
* [VueJS](https://github.com/syncfusion/ej2-vue-calendars?utm_source=npm&utm_campaign=calendars)
* [ASP.NET Core](https://www.syncfusion.com/products/aspnetcore/calendar)
* [ASP.NET MVC](https://www.syncfusion.com/products/aspnetmvc/calendar)
* [JavaScript](https://www.syncfusion.com/products/javascript/calendar)

## Support

Product support is available for through following mediums.

* Creating incident in Syncfusion [Direct-trac](https://www.syncfusion.com/support/directtrac/incidents?utm_source=npm&utm_campaign=calendar) support system or [Community forum](https://www.syncfusion.com/forums/react-js2?utm_source=npm&utm_campaign=calendar).
* New [GitHub issue](https://github.com/syncfusion/ej2-react-calendars/issues/new).
* Ask your query in Stack Overflow with tag `syncfusion`, `ej2`.

## License

Check the license detail [here](https://github.com/syncfusion/ej2/blob/master/license).

## Changelog

Check the changelog [here](https://github.com/syncfusion/ej2-react-calendars/blob/master/CHANGELOG.md).

© Copyright 2018 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.