diff --git a/src/app/search/components/criteria-by-family.component.html b/src/app/search/components/criteria-by-family.component.html
index e4e2091ddf13e880ea849ad6cb857d6ddc1cbd57..80fddf110b21c10f1b0536af107220bdcf00d2bd 100644
--- a/src/app/search/components/criteria-by-family.component.html
+++ b/src/app/search/components/criteria-by-family.component.html
@@ -42,6 +42,11 @@
                 [placeholder]="attribute.placeholder_min" [criterion]="getCriterion(attribute.id)" (add)="add($event)">
             </app-date>
         </div>
+        <div *ngSwitchCase="'tm'">
+            <app-time class="criteria" [id]="attribute.id" [label]="attribute.form_label"
+                [criterion]="getCriterion(attribute.id)" (add)="add($event)">
+            </app-time>
+        </div>
         <div *ngSwitchDefault>
             {{ attribute.search_type }} search type not supported
         </div>
diff --git a/src/app/search/components/criteria/between.component.html b/src/app/search/components/criteria/between.component.html
index 01fe37c42fde118a0710cd85cd6fb3b3464c9e40..6f7b9772fe358901587c996bb0e606ec68935e11 100644
--- a/src/app/search/components/criteria/between.component.html
+++ b/src/app/search/components/criteria/between.component.html
@@ -1,12 +1,15 @@
 <div class="form-group row">
     <label class="col-3 col-form-label">{{label}}</label>
     <div class="col">
-        <input type="text" class="form-control" [placeholder]="getPlaceholderMin()" [formControl]="fieldMin" autocomplete="off" />
+        <input type="text" class="form-control" [placeholder]="getPlaceholderMin()" [formControl]="fieldMin"
+            autocomplete="off" />
     </div>
     <div class="col">
-        <input type="text" class="form-control" [placeholder]="getPlaceholderMax()" [formControl]="fieldMax" autocomplete="off" />
+        <input type="text" class="form-control" [placeholder]="getPlaceholderMax()" [formControl]="fieldMax"
+            autocomplete="off" />
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!fieldMin.disabled" [hidden]="!fieldMin.value && !fieldMax.value" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!fieldMin.disabled" [hidden]="!fieldMin.value && !fieldMax.value"
+            (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/checkbox.component.html b/src/app/search/components/criteria/checkbox.component.html
index 509e08061259e06289bea9d56c537ca631703ff5..38eaad7af47e151cea444061a1b37ff3f2d00111 100644
--- a/src/app/search/components/criteria/checkbox.component.html
+++ b/src/app/search/components/criteria/checkbox.component.html
@@ -7,6 +7,7 @@
         </div>
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!checkboxes.disabled" [hidden]="!isChecked()" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!checkboxes.disabled" [hidden]="!isChecked()"
+            (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/datalist.component.html b/src/app/search/components/criteria/datalist.component.html
index 3c10ee1a09eabdd734348bea85566cb63d81eb0a..7bd1ba2f83a91edbe7f5e789d4a136e2044119d3 100644
--- a/src/app/search/components/criteria/datalist.component.html
+++ b/src/app/search/components/criteria/datalist.component.html
@@ -1,12 +1,14 @@
 <div class="form-group row">
     <label class="col-3 col-form-label">{{label}}</label>
     <div class="col">
-        <input [attr.list]="getDatalistId()" type="text" class="form-control" [placeholder]="getPlaceholder()" [formControl]="field" autocomplete="off" />
+        <input [attr.list]="getDatalistId()" type="text" class="form-control" [placeholder]="getPlaceholder()"
+            [formControl]="field" autocomplete="off" />
         <datalist [id]="getDatalistId()">
             <option *ngFor="let option of options" [value]="option.value">
         </datalist>
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!field.disabled" [hidden]="!field.value" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!field.disabled" [hidden]="!field.value"
+            (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
     </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/date.component.ts b/src/app/search/components/criteria/date.component.ts
index c1084e06772b4f17b9c5543b64ecfce3d2905b4e..96043b70f9d8f77b6e61c9bb5acafb9baf63dcb7 100644
--- a/src/app/search/components/criteria/date.component.ts
+++ b/src/app/search/components/criteria/date.component.ts
@@ -22,7 +22,6 @@ export class DateComponent {
 
     addCriterion() {
         const fd = new DateCriterion(this.id, this.field.value);
-        console.log(fd);
         this.add.emit(fd);
     }
 
diff --git a/src/app/search/components/criteria/index.ts b/src/app/search/components/criteria/index.ts
index 96bac3484780de2ec19be80d3f3e95ff7054d612..fb5066edb2a36789ec1ec68776753d1e3ee4f3ba 100644
--- a/src/app/search/components/criteria/index.ts
+++ b/src/app/search/components/criteria/index.ts
@@ -6,6 +6,7 @@ import { DatalistComponent } from './datalist.component';
 import { RadioComponent } from './radio.component';
 import { CheckboxComponent } from './checkbox.component';
 import { DateComponent } from './date.component';
+import { TimeComponent } from './time.component';
 
 export const criteriaComponents = [
     FieldComponent,
@@ -15,5 +16,6 @@ export const criteriaComponents = [
     DatalistComponent,
     RadioComponent,
     CheckboxComponent,
-    DateComponent
+    DateComponent,
+    TimeComponent
 ];
diff --git a/src/app/search/components/criteria/radio.component.html b/src/app/search/components/criteria/radio.component.html
index 123d0550b81510b3df3a28b43a585e5c7c47486d..acb9561b4c394a71249bd6df7124a14e9bd24b6f 100644
--- a/src/app/search/components/criteria/radio.component.html
+++ b/src/app/search/components/criteria/radio.component.html
@@ -2,11 +2,13 @@
     <label class="col-3 col-form-label">{{label}}</label>
     <div class="col">
         <div *ngFor="let option of options" class="form-check form-check-inline">
-            <input class="form-check-input" type="radio" id="cb_{{option.id}}" [formControl]="radio" [value]="option.id">
+            <input class="form-check-input" type="radio" id="cb_{{option.id}}" [formControl]="radio"
+                [value]="option.id">
             <label class="form-check-label" for="cb_{{option.id}}">{{option.label}}</label>
         </div>
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!radio.disabled" [hidden]="!radio.value" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!radio.disabled" [hidden]="!radio.value"
+            (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/select-multiple.component.html b/src/app/search/components/criteria/select-multiple.component.html
index 645e7a65f0ccc627aeab5e30f7749aad7f8eaefb..3fb5c5871a946dd5027fc0e311bb80504a82cb7a 100644
--- a/src/app/search/components/criteria/select-multiple.component.html
+++ b/src/app/search/components/criteria/select-multiple.component.html
@@ -6,6 +6,7 @@
         </ng-select>
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!ms.disabled" [hidden]="!ms.value" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!ms.disabled" [hidden]="!ms.value" (click)="addCriterion()"><i
+                class="fas fa-plus-circle"></i></button>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/select.component.html b/src/app/search/components/criteria/select.component.html
index f60990489ea9a1f4f6d862576d40bc48410ddabf..496670f6ee074ee6f6ed47455c0608918bfcd061 100644
--- a/src/app/search/components/criteria/select.component.html
+++ b/src/app/search/components/criteria/select.component.html
@@ -6,6 +6,7 @@
         </ng-select>
     </div>
     <div class="col-2 align-self-center text-center">
-        <button class="btn btn-outline-success" *ngIf="!se.disabled" [hidden]="!se.value" (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+        <button class="btn btn-outline-success" *ngIf="!se.disabled" [hidden]="!se.value" (click)="addCriterion()"><i
+                class="fas fa-plus-circle"></i></button>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/time.component.css b/src/app/search/components/criteria/time.component.css
new file mode 100644
index 0000000000000000000000000000000000000000..1416d078676a3543aeab6478f886a0b85e5071d6
--- /dev/null
+++ b/src/app/search/components/criteria/time.component.css
@@ -0,0 +1,3 @@
+timepicker.bs-timepicker-field {
+    width: 100px !important;
+}
\ No newline at end of file
diff --git a/src/app/search/components/criteria/time.component.html b/src/app/search/components/criteria/time.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..b226e589659e97c9f7f5ab2046845e87c0a4a80a
--- /dev/null
+++ b/src/app/search/components/criteria/time.component.html
@@ -0,0 +1,13 @@
+<div class="form-group row">
+    <label class="col-3 col-form-label">{{label}}</label>
+    <div class="col">
+        <form [formGroup]="form">
+            <timepicker class="time-field" [formControlName]="'time'" [showMeridian]="false" [showSpinners]="false"
+                (change)="change()"></timepicker>
+        </form>
+    </div>
+    <div class="col-2 align-self-center text-center">
+        <button class="btn btn-outline-success" *ngIf="!form.get('time').disabled" [hidden]="!isValidTime"
+            (click)="addCriterion()"><i class="fas fa-plus-circle"></i></button>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/app/search/components/criteria/time.component.ts b/src/app/search/components/criteria/time.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3b1e52d5e94c44d537b8845c1abc64bf259385fe
--- /dev/null
+++ b/src/app/search/components/criteria/time.component.ts
@@ -0,0 +1,51 @@
+import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
+import { FormControl, FormGroup } from '@angular/forms';
+
+import { Criterion, TimeCriterion } from '../../store/model';
+
+@Component({
+    selector: 'app-time',
+    templateUrl: 'time.component.html',
+    styleUrls: ['time.component.css'],
+    changeDetection: ChangeDetectionStrategy.OnPush
+})
+export class TimeComponent {
+    @Input() id: number;
+    @Input() label: string;
+    @Input()
+    set criterion(criterion: Criterion) {
+        this.getDefault(criterion);
+    }
+    @Output() add: EventEmitter<TimeCriterion> = new EventEmitter();
+
+    form = new FormGroup({
+        time: new FormControl('')
+    });
+    isValidTime: boolean = false;
+
+    addCriterion() {
+        const fd = new TimeCriterion(this.id, this.form.get('time').value);
+        this.add.emit(fd);
+    }
+
+    getDefault(criterion: Criterion): void {
+        if (!criterion) {
+            this.form.get('time').setValue(null);
+            this.form.get('time').enable();
+            this.isValidTime = false;
+        } else {
+            const c = criterion as TimeCriterion;
+            this.form.get('time').setValue(c.value);
+            this.form.get('time').disable();
+            this.isValidTime = true;
+        }
+    }
+
+    change(): void {
+        if (!this.form.get('time').value) {
+            this.isValidTime = false;
+        } else {
+            this.isValidTime = true;
+        }
+    }
+}
diff --git a/src/app/search/store/model/index.ts b/src/app/search/store/model/index.ts
index 00ed0007acd179fb66b46b614a9429eb8374a56b..2f03a71fa856e4c18fd6ab106cebbd55118c7b26 100644
--- a/src/app/search/store/model/index.ts
+++ b/src/app/search/store/model/index.ts
@@ -6,4 +6,5 @@ export * from './checkbox-criterion.model';
 export * from './radio-criterion.model';
 export * from './select-multiple-criterion.model';
 export * from './search-meta.model';
-export * from './date-criterion.model';
\ No newline at end of file
+export * from './date-criterion.model';
+export * from './time-criterion.model';
\ No newline at end of file
diff --git a/src/app/search/store/model/time-criterion.model.ts b/src/app/search/store/model/time-criterion.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4c89eed1c16f0a7dcdc4063be0e996b7d93164a3
--- /dev/null
+++ b/src/app/search/store/model/time-criterion.model.ts
@@ -0,0 +1,18 @@
+import { Criterion } from './criterion.model';
+
+export class TimeCriterion extends Criterion {
+    value: Date;
+
+    constructor(id: number, value: Date) {
+        super(id);
+        this.value = value;
+    }
+
+    printCriterion(): string {
+        return this.value.getHours() + ':' + this.value.getMinutes();
+    }
+
+    getCriterionStr(): string {
+        return this.id + ':gt:' + this.value.getHours() + '.' + this.value.getMinutes();
+    }
+}
diff --git a/yarn.lock b/yarn.lock
index a09ff041d596fbb6d094750ff4d5b54bd2198be0..985328a0d79c03469cda3ab1a4fae9c5b510373f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4264,6 +4264,11 @@ neo-async@^2.5.0, neo-async@^2.6.0:
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
   integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
 
+ng-pick-datetime@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/ng-pick-datetime/-/ng-pick-datetime-7.0.0.tgz#c78d1cfaee183691a4a44cd4f39c98f9c1d1595f"
+  integrity sha512-SbS+zKX6gOlYpgH8zDSx2EL32ak0Z0y1Ksu1ECP/FiwVBM2mHgbzdfyDYhMmKFB0GKn5yCwXTandR1FCQXe62w==
+
 ngx-bootstrap@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/ngx-bootstrap/-/ngx-bootstrap-4.3.0.tgz#4c2213c082787701711c991ae728adaed035e637"