
Angular Material Datetime Picker is a powerful tool for handling date and time inputs in your Angular application. It provides a range of features and functionalities to make it easy to work with dates and times.
Angular Material Datetime Picker is a part of the Angular Material library, which means it integrates seamlessly with other Angular Material components. This makes it a great choice for building complex forms and applications.
To use Angular Material Datetime Picker, you need to import the necessary modules and components into your Angular application. This includes the MatDatepickerModule and the MatNativeDateModule.
Take a look at this: How to Pass Data between 2 Child Components in Angular
Setup and Configuration
To set up an Angular Material datepicker, start by adding a plain input field to your HTML, linked to a form control via the `formControlName` directive. This is the foundation of the datepicker.
The input field should be named with a unique identifier, such as `releasedAt`, to connect it to the form control.
Suggestion: Input Output in Angular 2
To configure the starting date of the calendar, define a member variable in your controller with the desired start date. Then, pass this start date to the datepicker.
Here's a quick rundown of the three main elements that make up a typical datepicker:
- Input text field for manual date input
- Calendar modal dialog for visual date selection
- Calendar icon for opening or closing the calendar dialog
To customize the datetime picker format, update the NgModule import & providers section by providing custom NGX_MAT_DATE_FORMATS.
Configuring the Toggle Icon
Configuring the Toggle Icon is a crucial step in customizing your datepicker. You can change the position of the toggle calendar button by using either the matSuffix or matPrefix directive.
By default, the mat-datepicker-toggle shows up to the right of the input field due to the use of the matSuffix directive. If you want to show the calendar icon to the left of the input field, simply use matPrefix instead.
You can also configure the icon itself by using the matDatepickerToggleIcon directive. This allows you to choose from a variety of calendar-related icons in the Material design icon library.
Using an alternative icon is as simple as adding the matDatepickerToggleIcon directive. For example, you can choose from a ton of other calendar-related icons that you might prefer.
If this caught your attention, see: Angular Icon Material
Configuring Calendar Start Date

To configure the starting date of the calendar, you need to define a member variable in your controller with the start date.
This variable will serve as the default date for the calendar, allowing you to set a different starting point than the default value of the form control.
Simply pass the start date to the date picker, and it will be used as the initial value for the calendar.
By doing this, you can customize the calendar's behavior to suit your needs and provide a better user experience.
It's a straightforward process that requires minimal code changes, making it easy to implement in your application.
Check this out: Angular 2 Release Date
Who Is It For?
This tutorial is for Angular developers who want to integrate a datetime picker into their application.
If you're an Angular developer, you're in the right place.
Angular Material Datetime picker can be used in Angular versions 7 - 14, making it a versatile tool for many developers.
The datetime picker is designed to be easy to use and has a good user interface and user experience, making it a great choice for many applications.
The npm package for the datetime picker is available on the npmjs.com website.
Discover more: Date Range Control Looker Studio
Calendar and UI
The calendar in the Angular Material datetime picker is highly customizable. You can change the look and feel by configuring the palette to use the accent or danger palette.
The default palette is the primary palette, but you can easily switch to the accent palette by using the color property. This will give your datepicker a fresh new look.
If you want to use the danger palette instead, you can simply use the warn property instead of accent. This will add a warning tone to your datepicker.
The Angular Material datetime picker also provides a responsive UI that adapts to mobile devices. This means your datepicker will look great on both desktop and mobile screens.
Recommended read: Html Datetime
Adding Modal Calendar to Datepicker
Adding a modal calendar to the datepicker is a great way to enhance user experience. You can do this by adding a modal calendar element next to the input field, linked with the [matDatepicker] directive.
The modal calendar is hidden by default, so you need a toggle button to open and close it. This toggle button can be added as a suffix to the input field and connected with the modal calendar using the [for] directive.
To open the calendar and use it to choose a date, it's as simple as that. The minimal setup of the datepicker is now complete, and you can start using it.
You can also configure the datepicker to automatically open the calendar once the corresponding input gets clicked. This can be achieved by adding a normal event click handler and calling the calendar.open() method.
The mdcDateTimeDialog service is another way to use the datepicker, and it returns a promise that's resolved with the selected date-time value and rejected on cancellation. This service accepts almost the same options as the directive.
Explore further: Angular Html Format Date
Configuring Calendar Appearance
The calendar's appearance can be customized to match your app's theme. You can choose from the primary, accent, or danger palettes to highlight the selected date.
The default calendar uses the primary palette, but you can easily switch to the accent palette by setting the color property. This will give your calendar a fresh and modern look.
If you want to use the danger palette instead, you can use the warn property. This will add a sense of urgency to your calendar's appearance.
By customizing the calendar's appearance, you can create a cohesive and visually appealing user experience. This is especially important for apps that require users to interact with the calendar frequently.
Date Range
When working with calendars and UI, it's essential to consider the date range functionality. You can restrict the DateTime Picker to only allow date and time values within a specific range.
By specifying the min and max date time options, you can control what dates are available for users to select. This is especially useful for scheduling events or appointments.
For example, you can set a minimum date to prevent users from selecting a date in the past. Similarly, you can set a maximum date to limit the selection to a specific future date.
This feature can be particularly useful for applications that require users to schedule events or appointments within a certain timeframe. By limiting the date range, you can ensure that users only select valid dates.
Responsive UI
The Angular Date Time Picker provides a responsive mode that gives an adaptive UI appearance for mobile devices. This means your calendar will look great on any device, whether it's a smartphone or a desktop computer.
A responsive UI is especially important for mobile devices, where screen space is limited. The Angular Date Time Picker's adaptive design helps ensure that your calendar is easy to use and navigate on smaller screens.
The responsive mode automatically adjusts the layout and design of the calendar to fit the device it's being viewed on. This ensures a seamless user experience, regardless of the device being used.
Intriguing read: Material Design
Date/Time Dialog Service
You can use the mdcDateTimeDialog service to display a date and time dialog in your application. This service returns a promise which is resolved with the selected date-time value and rejected on cancellation.
The mdcDateTimeDialog.show method accepts almost the same options as the directive, allowing for a high degree of customization.
The dialog can be used as a service, making it easy to integrate into your application.
To install the necessary packages, you'll need to install Angular material and datetime picker package using npm.
Here's an interesting read: Building a Realtime Chat Application with Angular and Firebase
Accessibility and Features
The Angular Material DateTime Picker is designed with accessibility in mind. It fully supports WAI-ARIA accessibility, allowing users to access it with screen readers and assistive devices.
The DateTime Picker follows WAI-ARIA best practices for keyboard interaction, making it easy to use with just a keyboard. This is a game-changer for users who rely on keyboard-only navigation.
The DateTime Picker's UI elements adhere to WCAG 2.0 standards, ensuring that visual aspects such as foreground color, background color, line spacing, text, and images are accessible to all users.
Here are some key accessibility features of the DateTime Picker:
- Fully supports WAI-ARIA accessibility
- Follows WAI-ARIA best practices for keyboard interaction
- Uses WCAG 2.0 based design for UI element visuals
- Supports right-to-left (RTL) direction
Masked Date-Time Input
Masked date-time input is a feature that allows users to enter valid dates and times in the correct format, avoiding data input errors during data entry.
This feature is particularly useful for preventing users from manually typing in dates, which can lead to errors. Normally, you want to allow users to input dates in two ways: manually via the input field and visually via the calendar.
However, if you want to disable the input field to prevent manual date typing, you can still allow users to enter a date visually using the modal calendar by overriding the disabled property on both the toggle button and the calendar.
You might like: Angular Js Data Html
Custom Date Validation

Custom Date Validation can be achieved using the matDatepickerFilter in Angular. By creating a custom filter function, we can control which dates are valid or not.
For example, if we want to allow only Mondays to be picked from the calendar, we can create a date filter function that returns true if the date is a Monday, and false otherwise.
This function can be plugged into the datepicker using the [matDatepickerFilter] directive, and the calendar will only display Mondays as enabled dates.
We can also use this approach to disable any date in the Angular DateTime Picker by creating a custom filter function that returns false for the dates we want to disable.
Date Formatting
Date formatting can be customized in the global configuration by providing a custom instance of MAT_DATETIME_FORMATS.
To change the input/output formats, you can separate them for existing datetime picker types such as date, month, datetime, and time.
Customizing the datetime picker format requires updating the NgModule import & providers section with a custom NGX_MAT_DATE_FORMATS value.
This allows users to enter valid dates and times in the correct format, avoiding data input errors during data entry.
A custom format value can be declared in the NgModule file or any other place in Angular.
If this caught your attention, see: Photo Picker Google
Multi-language DateTime Picker
Our DateTime Picker is incredibly versatile, allowing users to interact with it in multiple languages. This is made possible through our globalization feature.
With this feature, you can update the culture-specific datetime format to suit different regions. For instance, you can change the first day of the week to match the local standard.
You can also translate the names of months, days, and today button text to any supported language. This ensures that users can easily understand the DateTime Picker's functionality, regardless of their native language.
The DateTime Picker localization feature is a game-changer for applications that cater to diverse user bases. By providing a localized experience, you can improve user engagement and satisfaction.
Here's a quick rundown of what you can do with the DateTime Picker localization feature:
- Update culture-specific datetime format
- Change the first day of the week
- Translate month, day, and today button text
Web Accessibility
Web accessibility is a top priority for our DateTime Picker. It fully supports WAI-ARIA accessibility, allowing users with screen readers and assistive devices to access the component.
This means that users who rely on assistive technology can easily use the DateTime Picker, making it more inclusive and user-friendly.
The DateTime Picker follows WAI-ARIA best practices for implementing keyboard interaction, ensuring that users can navigate the component using only their keyboard.
Our design is also based on WCAG 2.0 guidelines, which means that the UI element visuals, such as foreground color, background color, line spacing, text, and images, are all accessible and usable for users with visual impairments.
We also support right-to-left (RTL) direction for users working with languages like Hebrew and Arabic, making our DateTime Picker a valuable tool for users around the world.
Here are some key accessibility features of our DateTime Picker:
- Fully supports WAI-ARIA accessibility
- Follows WAI-ARIA best practices for keyboard interaction
- Uses WCAG 2.0 based design for UI element visuals
- Supports right-to-left (RTL) direction
Development and Integration
Developing with the Angular Material Datetime picker is a breeze. You can control all UI elements and their behaviors using a rich set of developer-friendly APIs.
To integrate the datetime picker into your Angular component, you'll need to import the necessary packages and configure them in your NgModule. This is a straightforward process that can be completed in just a few steps.
Here's a quick rundown of the steps to integrate the datetime picker:
- Step 1: Add required npm packages
- Step 2: NgModule changes with date format
- Step 3: Theming & other customization
- Step 4: Using in Angular Component
- Step 5: Customization and additional options
Once you've completed these steps, you can use the datetime picker in your Angular component, and even add a modal calendar to enhance the user experience.
Setup Angular Datepicker
To set up an Angular datepicker, you'll need to install the necessary packages. This includes Angular Material and the datetime picker package, as well as moment for parsing formats and locales.
You can install these packages using npm by following the steps outlined in Step 1: Add required npm packages.
Angular Material Datetime Picker version 8.x+ is recommended for Angular version 14, but you can install the corresponding version for your application.
Once you have the packages installed, you can configure the datepicker in your NgModule. This involves updating the import and providers section to include the custom NGX_MAT_DATE_FORMATS.
You can declare the custom format value in the NgModule file or any other place in your Angular application.
Consider reading: Angular Material Version
The datepicker is composed of three separate elements: an input text field, a calendar modal dialog, and a calendar icon. To create a datepicker, you'll need to add these elements progressively and connect them together using the [matDatepicker] directive.
The modal calendar is linked to the input field, and the toggle button is connected to the datepicker using the [for] directive.
Input Range Limiting
Limiting the input range of a datepicker is a great way to restrict what dates the user can enter using the calendar. You can define the acceptable range of dates by setting member variables in your component.
To pass these limits to the datepicker, use the [min] and [max] directives to the matInput directive. This will disable dates outside of the valid range, preventing the user from clicking on them.
Restricting the DateTime Picker to a specific range can be achieved by specifying the min and max date time options. This ensures that only date and time values within the defined range can be entered or selected.
Featured Images: pexels.com


