bs-datetime-picker couples a calendar popup and a time-slot popup behind a single display input. The selected value is exposed via the [(value)] two-way binding (or any reactive-forms control), and options such as [min], [max], [disableDateFn], [step], and [hour12] fine-tune the popups. With JavaScript off it renders a native datetime-local field that submits name with the form.
Template-driven [(ngModel)] and reactive [formControl] both bind through the component's ControlValueAccessor: the value, the disabled state, and touched when focus leaves.
Template-driven
November 2026
Week
Mon
Tue
Wed
Thu
Fri
Sat
Sun
44
1
45
2
3
4
5
6
7
8
46
9
10
11
12
13
14
15
47
16
17
18
19
20
21
22
48
23
24
25
26
27
28
29
49
30
Value: null
dirty: false · touched: false · disabled: false
Reactive
November 2026
Week
Mon
Tue
Wed
Thu
Fri
Sat
Sun
44
1
45
2
3
4
5
6
7
8
46
9
10
11
12
13
14
15
47
16
17
18
19
20
21
22
48
23
24
25
26
27
28
29
49
30
Value: null
dirty: false · touched: false · disabled: false
<!-- template-driven (FormsModule) --><bs-datetime-picker [(ngModel)]="value" [showClear]="true"></bs-datetime-picker><!-- reactive (ReactiveFormsModule): control = new FormControl(...) --><bs-datetime-picker [formControl]="control" [showClear]="true"></bs-datetime-picker>