CoreUI Angular Logo
Framework:
  • JavaScript / Vanilla JS
  • React.js
  • Vue.js
Getting startedIntroductionSupport CoreUICustomizeSassOptionsCSS VariablesLayoutBreakpointsContainersGridColumnsGuttersFormsOverviewDate PickerPRODate Range PickerPROForm ControlSelectMulti SelectPROChecks & RadiosPassword InputPRORangeRange SliderPRORatingPROStepperPROInput GroupFloating LabelsLayoutTime PickerPROValidationComponentsAccordionAlertAvatarBadgeBreadcrumbButtonButton GroupCalendarPROCalloutCardCarouselClose buttonCollapseDropdownFooterHeaderImageList GroupLoading ButtonPROModalNavNavbarOffcanvasPaginationPlaceholderPopoverProgressSmart PaginationPROSmart TablePROSidebarSpinnerTableTabsNewToastTooltipWidgetsIconsChartsTemplatesNewAdmin & DashboardDownloadInstallationCustomizeContentMigrationv4 → v5v3 → v4Angular version


DownloadHire UsGet CoreUI PRO
On this page
CoreUI PRO for Angular This component is part of CoreUI PRO – a powerful UI library with over 250 components and 25+ templates, designed to help you build modern, responsive apps faster. Fully compatible with Angular, Bootstrap, React.js, and Vue.js. Get CoreUI PRO

Angular Date Range Picker Component

Create consistent cross-browser and cross-device Angular date range picker.

Examples

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...
import { Component } from '@angular/core';
import { ColComponent, DateRangePickerComponent, RowComponent } from '@coreui/angular';

@Component({
  selector: 'docs-date-range-picker01',
  templateUrl: './date-range-picker01.component.html',
  standalone: true,
  imports: [RowComponent, ColComponent, DateRangePickerComponent]
})
export class DateRangePicker01Component {

  date = new Date();
  startDate = new Date(this.date.getFullYear(), this.date.getMonth(), 11);
  endDate = new Date(this.date.getFullYear(), this.date.getMonth(), 17);

}

With footer

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Jun 17, 2025 -> Jun 19, 2025
Loading...
import { DatePipe } from '@angular/common';
import { Component } from '@angular/core';
import {
  ButtonDirective,
  ColComponent,
  DateRangePickerComponent,
  DropdownCloseDirective,
  RowComponent,
  TemplateIdDirective
} from '@coreui/angular';

@Component({
  selector: 'docs-date-range-picker02',
  templateUrl: './date-range-picker02.component.html',
  standalone: true,
  imports: [RowComponent, ColComponent, DateRangePickerComponent, TemplateIdDirective, ButtonDirective, DropdownCloseDirective, DatePipe]
})
export class DateRangePicker02Component {

  public date = new Date();
  public startDate?: Date | null = new Date(new Date().setDate(this.date.getDate() + 1));
  public endDate?: Date | null = new Date(new Date().setDate(this.date.getDate() + 3));
  public calendarDate = new Date(Date.now());

  onToday() {
    this.calendarDate = new Date(Date.now());
  }

  onClear() {
    this.startDate = null;
    this.endDate = null;
  }
}

Sizing

Set heights using size property like size="lg" and size="sm".

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...

Disabled

Add the disabled boolean attribute on an input to give it a grayed out appearance and remove pointer events.

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...

Readonly

Add the inputReadOnly boolean attribute to prevent modification of the input value.

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...

Disabled dates

Mo
Di
Mi
Do
Fr
Sa
So
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
Loading...
import { Component } from '@angular/core';
import { ColComponent, DateRangePickerComponent, RowComponent } from '@coreui/angular';

@Component({
  selector: 'docs-date-range-picker06',
  templateUrl: './date-range-picker06.component.html',
  standalone: true,
  imports: [RowComponent, ColComponent, DateRangePickerComponent]
})
export class DateRangePicker06Component {

  public calendarDate = new Date(2022, 2, 1);
  public disabledDates = [
    [new Date(2022, 2, 4), new Date(2022, 2, 7)], // range of dates that cannot be selected
    new Date(2022, 2, 16), // single date that cannot be selected
    new Date(2022, 3, 16),
    [new Date(2022, 4, 2), new Date(2022, 4, 8)]
  ];
  public maxDate = new Date(2022, 5, 0);
  public minDate = new Date(2022, 0, 1);

  dateFilter = (date: Date | null): boolean => {
    const day = date?.getDay();
    return day !== 0;
  };
}

Custom ranges

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...
import { Component } from '@angular/core';
import { ColComponent, DateRangePickerComponent, RowComponent } from '@coreui/angular';

@Component({
  selector: 'docs-date-range-picker07',
  templateUrl: './date-range-picker07.component.html',
  standalone: true,
  imports: [RowComponent, ColComponent, DateRangePickerComponent]
})
export class DateRangePicker07Component {

  public customRanges = {
    Today: [new Date(), new Date()],
    Yesterday: [
      new Date(new Date().setDate(new Date().getDate() - 1)),
      new Date(new Date().setDate(new Date().getDate() - 1))
    ],
    'Last 7 Days': [
      new Date(new Date().setDate(new Date().getDate() - 6)),
      new Date(new Date())
    ],
    'Last 30 Days': [
      new Date(new Date().setDate(new Date().getDate() - 29)),
      new Date(new Date())
    ],
    'This Month': [
      new Date(new Date().setDate(1)),
      new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0)
    ],
    'Last Month': [
      new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1),
      new Date(new Date().getFullYear(), new Date().getMonth(), 0)
    ]
  };
}

Non-english locale

Auto

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...

Chinese

一
二
三
四
五
六
日
26日
27日
28日
29日
30日
31日
1日
2日
3日
4日
5日
6日
7日
8日
9日
10日
11日
12日
13日
14日
15日
16日
17日
18日
19日
20日
21日
22日
23日
24日
25日
26日
27日
28日
29日
30日
1日
2日
3日
4日
5日
6日
Loading...

Japanese

月
火
水
木
金
土
日
26日
27日
28日
29日
30日
31日
1日
2日
3日
4日
5日
6日
7日
8日
9日
10日
11日
12日
13日
14日
15日
16日
17日
18日
19日
20日
21日
22日
23日
24日
25日
26日
27日
28日
29日
30日
1日
2日
3日
4日
5日
6日
Loading...

Korean

월
화
수
목
금
토
일
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...
Loading...

Right to left support

RTL support is built-in and can be explicitly controlled through the $enable-rtl variables in scss.

Hebrew

ב׳
ג׳
ד׳
ה׳
ו׳
ש׳
א׳
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Loading...

Persian

د
س
چ
پ
ج
ش
ی
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷
۲۸
۲۹
۳۰
۳۱
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
Loading...

Forms

Angular handles user input through reactive and template-driven forms. CoreUI Date Range Picker supports both possibilities.

Reactive

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6

Form value: { "dateRangePicker": { "startDate": "2025-06-15T22:00:00.000Z", "endDate": "2025-06-21T22:00:00.000Z" } }
dateRangePicker value: 6/16/2025 -> 6/22/2025
Loading...
Loading...

Template-driven

Mon
Tue
Wed
Thu
Fri
Sat
Sun
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6

dateRangePicker value: { "startDate": "2025-06-09T22:00:00.000Z", "endDate": "2025-06-15T22:00:00.000Z" }
startDate: Tuesday, June 10, 2025 -> endDate: Monday, June 16, 2025
Loading...
Loading...

API reference

DateRangePicker Module

import { 
 DateRangePickerModule,
 DropdownModule,
 SharedModule
} from '@coreui/angular';

@NgModule({
   imports: [
     DateRangePickerModule,
     DropdownModule,
     SharedModule
   ]
})
export class AppModule() { }

c-date-range-picker

component

Inputs
name description type default
startDate Initial selected start date. Date undefined
endDate Initial selected start date. Date undefined
calendarDate Default date month of the component. Date undefined
cleaner Toggle visibility or set the content of the cleaner button. boolean true
closeOnSelect Determine if dropdown should be closed when component value is set. boolean false
disabled Toggle the disabled state for the component. boolean false
disabledDates List of dates that cannot be selected. (Date | Date[])[] undefined
firstDayOfWeek Sets the day of start week. number 1
format
4.5.26+
Formats a date display. See: DatePipe format options. Makes the input read-only. string undefined
indicator Toggle visibility or set the content of the input indicator. boolean true
inputReadOnly Toggle the readonly state for the input. boolean false
locale Sets the default locale for components. If not set, it is inherited from the browser. string default
maxDate Max selectable date. Date undefined
minDate Min selectable date. Date undefined
navYearFirst Reorder year-month navigation, and render year first. boolean false
navigation Show arrows navigation. boolean true
placeholder Specifies hint visible in date input. string[] Start date, End Date
size Size the component input small or large. sm | lg undefined
dayFormat Set the format of day number. numeric | 2-digit | (date: Date) => string | number numeric
weekdayFormat Set length or format of day name. number | long | narrow | short 2
ranges Predefined date ranges the user can select from. object undefined
rangesButtonsColor Sets the color context of the cancel button to one of CoreUI themed colors. Colors secondary
rangesButtonsSize Size the ranges button small or large. sm | lg undefined
rangesButtonsVariant Set the ranges button variant to an outlined button or a ghost button. outline | ghost ghost
selectAdjacentDays
4.5.5+
Days in adjacent months shown before or after the current month are selectable. This only applies if the showAdjacentDays option is set to true. boolean false
showAdjacentDays
4.5.5+
Display dates in adjacent months (non-selectable) at the start/end of the current month. boolean true
valid Set input validation visual feedback. boolean undefined
showWeekNumber Display ISO week numbers in month view. boolean undefined
weekNumbersLabel Label displayed over week numbers in the calendar. string undefined
inputDateFormat Custom function to format the selected date into a string according to a custom format. (date: Date) => string undefined
inputDateParse Custom function to parse the input value into a valid Date object. `(date: string Date) => Date`
Outputs
name description type
startDateChange Event emitted on startDate change Date
endDateChange Event emitted on startDate change Date
calendarCellHover Event emitted on calendar cell hover Date
calendarDateChange Event emitted on calendar month change Date
valueChange Event emitted on value change {startDate: Date, endDate: Date}
  • GitHub
  • Twitter
  • Support
  • CoreUI (Vanilla)
  • CoreUI for React.js
  • CoreUI for Vue.js

CoreUI for Angular is Open Source UI Components Library for Angular.

Currently v5.5.1 Code licensed MIT , docs CC BY 3.0 .
CoreUI PRO requires a commercial license.