# JavaScript Calendars Controls

The [JavaScript Calendars](https://www.syncfusion.com/javascript-ui-controls/js-calendar?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) package contains date and time components such as calendar, date picker, date range picker, date time picker, and time picker. These components come with options to disable dates, restrict selection, and show custom events.

## What's Included in the JavaScript Calendars Package

The [JavaScript Calendars](https://www.syncfusion.com/javascript-ui-controls/js-calendar?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) package includes the following list of components.

### JavaScript Calendar

The [JavaScript Calendar](https://www.syncfusion.com/javascript-ui-controls/js-calendar?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) control is a graphical user interface component that displays a Gregorian or Islamic Calendar and allows selection of a date.

<p align="center">
  <a href="https://ej2.syncfusion.com/documentation/calendar/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Getting Started</a> .
  <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm#/fluent2/calendar/default.html">Online demos</a> .
  <a href="https://www.syncfusion.com/javascript-ui-controls/js-calendar?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript Calendar Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-calendar.png">
</p>

#### Key features

* [Date range](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=calendar#/fluent2/calendar/date-range.html) - Restricts the range of dates that can be selected by using the `min` and `max` properties.
* [Customization](https://ej2.syncfusion.com/javascript/documentation/calendar/customization) - Allows complete control over the appearance of the calendar component.
* [Month or year selection](https://ej2.syncfusion.com/documentation/calendar/calendar-views?lang=typescript#calendar-views) - Provides a flexible option to select only a month or year as the date value.
* [First day of week](https://ej2.syncfusion.com/documentation/calendar/how-to.html?lang=typescript#change-the-first-day-of-the-week) - Changes the first day of all weeks in every month.
* [Week number](https://ej2.syncfusion.com/documentation/calendar/how-to/render-the-calendar-with-week-numbers?lang=typescript#render-the-calendar-with-week-numbers) - Displays the week number of the selected date in the calendar by enabling the week number option.
* [Disabled dates](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=calendar#/fluent2/calendar/disabled.html) - Disables any date to prevent the user from selecting that date.
* [Start and depth view](https://ej2.syncfusion.com/documentation/calendar/calendar-views?lang=typescript#view-restriction) - Calendar has `month`, `year`, and `decade` views that provide flexibility to select dates.
* [Highlight weekends](https://ej2.syncfusion.com/documentation/calendar/customization?lang=typescript#highlight-weekends) - The calendar supports to highlighting every weekend in a month.
* [Globalization](https://ej2.syncfusion.com/documentation/calendar/globalization?lang=typescript#calendar) - Supports globalization (internationalization and localization) to translate the names of months, days, and the today button text to any supported language.

### JavaScript DatePicker

The [JavaScript DatePicker](https://www.syncfusion.com/javascript-ui-controls/js-datepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) component is a graphical user interface component that allows selection or entry of a date value.

<p align="center">
  <a href="https://ej2.syncfusion.com/documentation/datepicker/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Getting Started</a> .
  <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm#/fluent2/datepicker/default.html">Online demos</a> .
  <a href="https://www.syncfusion.com/javascript-ui-controls/js-datepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript DatePicker Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-datepicker.png">
</p>

#### Key features

* [Placeholders](https://ej2.syncfusion.com/documentation/datepicker/how-to/set-the-placeholder/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendars-npm) - Placeholder is a hint text that is displayed in the DatePicker; it is used to indicate the format of the date that the user should enter, such as mm/dd/yyyy or dd/mm/yyyy.
* [Mask date input](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendars-npm/#/fluent2/datepicker/input-mask.html) - The mask date input restricts the user from typing unwanted characters in the text input, allowing only eligible date format to be typed.
* [Disabled date](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendars-npm/#/fluent2/datepicker/disabled.html) - To disable a specific date in the picker calendar and restrict it from being set or selected in the DatePicker.
* [Date format](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=datepicker#/fluent2/datepicker/date-format.html) - The DatePicker control’s input value can be custom formatted apart from the default culture’s specific date format.
* [Incomplete date validation](https://ej2.syncfusion.com/documentation/datepicker/strict-mode?utm_source=npm&utm_campaign=datepicker) - The strictMode is an act that allows entry only of valid dates within the specified min or max range in a text box.
* [Globalization](https://ej2.syncfusion.com/documentation/calendar/globalization?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendars-npm/#calendar) - Support globalization (also known as internationalization and localization) to allow you to translate the names of months, days, and other text elements in the calendar to any supported language. This can be useful in cases where you want to display the calendar in a language other than the default language.

### JavaScript TimePicker

The [JavaScript TimePicker](https://www.syncfusion.com/javascript-ui-controls/js-timepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) component is a simple and intuitive interface component that allows selection of a time value from the popup list or setting a desired time value.

<p align="center">
  <a href="https://ej2.syncfusion.com/documentation/timepicker/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Getting Started</a> .
  <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm#/fluent2/timepicker/default.html">Online demos</a> .
  <a href="https://www.syncfusion.com/javascript-ui-controls/js-timepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript TimePicker Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-timepicker.png">
</p>

#### Key features

* [Time range](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=timepicker#/fluent2/timepicker/time-range.html) - Restricts the entry or selection of time values within a specific range of time by using `min` and `max` properties.
* [Time format](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=timepicker#/fluent2/timepicker/time-format.html) - Apart from the default culture specific time format, the time picker control’s input value can also be custom formatted.
* [Strict mode](https://ej2.syncfusion.com/documentation/timepicker/strict-mode?lang=typescript#timepicker) - The strictMode is an act that allows entry of only valid time values within the specified min and max range in a text box.
* [Disabled time](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=timepicker#/fluent2/timepicker/list-formatting.html) - 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/demos/?utm_source=npm&utm_campaign=timepicker#/fluent2/timepicker/list-formatting.html) - Allows populating the time list with intervals between the times in the popup list to enable selection of proper time value.
* [Customization](https://ej2.syncfusion.com/documentation/timepicker/how-to/css-customization?lang=typescript#css-customization) - The appearance of the time picker can be customized completely.
* [Time list with duration](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=timepicker#/fluent2/timepicker/list-formatting.html) - Supports customization of the control’s popup list items with time duration.
* [Mask time input](https://ej2.syncfusion.com/demos/#/fluent2/timepicker/input-mask.html) - The mask time input restricts the user from typing unwanted characters in the text input, allowing only eligible time format to be typed.
* [Globalization](https://ej2.syncfusion.com/documentation/timepicker/globalization?lang=typescript#timepicker) - Supports globalization (internationalization and localization) to update time popup list values to match any specified culture.

### JavaScript DateTimePicker

The [JavaScript DateTimePicker](https://www.syncfusion.com/javascript-ui-controls/js-datetime-picker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) component is a graphical user interface component that allows an end user to enter or select a date and time values from a pop-up calendar and time list pop-up.

<p align="center">
  <a href="https://ej2.syncfusion.com/documentation/datetimepicker/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Getting Started</a> .
  <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm#/fluent2/datetimepicker/default.html">Online demos</a> .
  <a href="https://www.syncfusion.com/javascript-ui-controls/js-datetime-picker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript DateTimePicker Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-datetimepicker.png">
</p>

#### Key features

* [Date time range](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=datetimepicker#/fluent2/datetimepicker/date-time-range.html) - Restricts the entry or selection of values within a specific range of dates and times by using `min` and `max` properties.
* [Date time format](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=datetimepicker#/fluent2/datetimepicker/date-time-format.html) - The control’s input value can be custom formatted apart from the default culture’s specific date time format.
* [Mask date time input](https://ej2.syncfusion.com/demos/#/fluent2/datetimepicker/input-mask.html) - The mask date time input restricts the user from typing unwanted characters in the text input, allowing only eligible date and time format to be typed.

### JavaScript DateRangePicker

The [JavaScript DateRangePicker](https://www.syncfusion.com/javascript-ui-controls/js-daterangepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm) component is a graphical user interface control that allows an end user to select start and end date values as a range from a calendar pop-up or by entering the value directly in the input element.

<p align="center">
  <a href="https://ej2.syncfusion.com/documentation/daterangepicker/getting-started/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Getting Started</a> .
  <a href="https://ej2.syncfusion.com/demos/?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm#/fluent2/daterangepicker/default.html">Online demos</a> .
  <a href="https://www.syncfusion.com/javascript-ui-controls/js-daterangepicker?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm">Learn more</a>
</p>

<p align="center">
<img alt="JavaScript DateRangePicker Control" src="https://raw.githubusercontent.com/SyncfusionExamples/nuget-img/master/javascript/javascript-daterangepicker.png">
</p>

#### Key features

* [Preset ranges](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=daterangepicker#/fluent2/daterangepicker/presets.html) - Defines the preset ranges to select the frequently used date range by the end users.
* [Range restriction](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=daterangepicker#/fluent2/daterangepicker/date-range.html) - This control restricts the entry or selection of values within a specific range of date by defining the min and max properties.
* [Limit the selection range](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=daterangepicker#/fluent2/daterangepicker/day-span.html) - Directs 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/documentation/daterangepicker/customization?lang=typescript#first-day-of-week) - Changes the first day of weeks in every month.
* [Strict mode](https://ej2.syncfusion.com/documentation/daterangepicker/range-restriction?lang=typescript#strict-mode) - The strictMode is an act that allows entry only of a valid date within the specified min and max range in a textbox.
* [Customization](https://ej2.syncfusion.com/documentation/daterangepicker/customization?lang=typescript#customization) - The appearance of the component can be customized completely.
* [Format](https://ej2.syncfusion.com/demos/?utm_source=npm&utm_campaign=daterangepicker#/fluent2/daterangepicker/date-format.html) - The control’s input value can be custom formatted apart from the default culture’s specific date range format.
* [Globalization](https://ej2.syncfusion.com/documentation/daterangepicker/globalization?lang=typescript#globalization) - Supports globalization (internationalization and localization) to translate the names of months, days, and button text to any supported language.

<p align="center">
Trusted by the world's leading companies
  <a href="https://www.syncfusion.com/">
    <img src="https://ej2.syncfusion.com/home/images/trusted_companies.png" alt="Syncfusion logo">
  </a>
</p>

## Setup

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

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

## Supported frameworks

Calendar controls are also offered to following list of frameworks.

| [<img src="https://ej2.syncfusion.com/github/images/angular-new.svg" height="50" />](https://www.syncfusion.com/angular-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Angular](https://www.syncfusion.com/angular-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/react.svg"  height="50" />](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[React](https://www.syncfusion.com/react-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/vue.svg" height="50" />](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Vue](https://www.syncfusion.com/vue-ui-components?utm_medium=listing&utm_source=github)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netcore.svg" height="50" />](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;Core](https://www.syncfusion.com/aspnet-core-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; | [<img src="https://ej2.syncfusion.com/github/images/netmvc.svg" height="50" />](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)<br/>&nbsp;&nbsp;[ASP.NET&nbsp;MVC](https://www.syncfusion.com/aspnet-mvc-ui-controls?utm_medium=listing&utm_source=github)&nbsp;&nbsp; | 
| :-----: | :-----: | :-----: | :-----: | :-----: |

## Showcase samples

* Expanse Tracker - [Source](https://github.com/syncfusion/ej2-sample-ts-expensetracker), [Live Demo](https://ej2.syncfusion.com/showcase/typescript/expensetracker/#/dashboard?utm_source=npm&utm_campaign=daterangepicker)
* Loan Calculator - [Source](https://github.com/syncfusion/ej2-sample-ts-loancalculator), [Live Demo](https://ej2.syncfusion.com/showcase/typescript/loancalculator/?utm_source=npm&utm_campaign=datepicker)

## Resources

* [Theme Studio](https://ej2.syncfusion.com/themestudio/)
* [Custom Resource Generator](https://crg.syncfusion.com/)
* [What's New](https://www.syncfusion.com/products/whatsnew/essential-js2?utm_medium=listing&utm_source=github)
* [Road Map](https://www.syncfusion.com/products/roadmap/essential-js2?utm_medium=listing&utm_source=github)
* [E-Books](https://www.syncfusion.com/ebooks?tag=javascript&utm_medium=listing&utm_source=github)

## Support

Product support is available through the following mediums.

* [Support ticket](https://support.syncfusion.com/support/tickets/create) - Guaranteed Response in 24 hours | Unlimited tickets | Holiday support
* [Community forum](https://www.syncfusion.com/forums/essential-js2?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm)
* [GitHub issues](https://github.com/syncfusion/ej2-javascript-ui-controls/issues/new)
* [Request feature or report bug](https://www.syncfusion.com/feedback/javascript?utm_source=npm&utm_medium=listing&utm_campaign=javascript-calendar-npm)
* Live chat

## Changelog

Check the changelog [here](https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/controls/calendars/CHANGELOG.md). Get minor improvements and bug fixes every week to stay up to date with frequent updates.

## License and copyright

> This is a commercial product and requires a paid license for possession or use. Syncfusion<sup>®</sup> licensed software, including this component, is subject to the terms and conditions of Syncfusion<sup>®</sup> [EULA](https://www.syncfusion.com/eula/es/). To acquire a license for 140+ [JavaScript UI controls](https://www.syncfusion.com/javascript-ui-controls), you can [purchase](https://www.syncfusion.com/sales/products) or [start a free 30-day trial](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.

See [LICENSE FILE](https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/license) for more info.

© Copyright 2025 Syncfusion<sup>®</sup> Inc. All Rights Reserved. The Syncfusion<sup>®</sup> Essential Studio<sup>®</sup> license and copyright applies to this distribution.
