diff --git a/bin/backend/controls/elements/TimeFilter.css b/bin/backend/controls/elements/TimeFilter.css
index 61d3f29d7b42d7afce0199da5abd78176cd9fb59..414aaf1cfc750f5f0bcff21ab22306970f379ed7 100644
--- a/bin/backend/controls/elements/TimeFilter.css
+++ b/bin/backend/controls/elements/TimeFilter.css
@@ -1,3 +1,4 @@
+.timefilter-user-select,
 .timefilter-period-select {
     background: #FFFFFF;
     box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
@@ -43,3 +44,43 @@
 .timefilter-marked {
     border: 1px solid red;
 }
+
+/** user select
+ ================================== */
+
+.timefilter-user-select {
+    display: flex;
+}
+
+.timefilter-user-select-left {
+    border-right: 1px solid #DEDEDE;
+    height: 100%;
+    width: 160px;
+}
+
+.timefilter-user-select-left-select {
+    border-left: 5px solid #fff;
+    clear: both;
+    cursor: pointer;
+    font-size: 12px;
+    padding: 10px;
+    width: 100%;
+}
+
+.timefilter-user-select-left-select:hover {
+    background: #d1d4da;
+    border-left: 5px solid #d1d4da;
+}
+
+.timefilter-user-select-left-select--active,
+.timefilter-user-select-left-select--active:hover {
+    border-left: 5px solid #999;
+}
+
+.timefilter-user-select-right {
+    width: calc(100% - 160px);
+}
+
+.timefilter-user-select-right .dhx_cal_container {
+    box-shadow: none !important;
+}
diff --git a/bin/backend/controls/elements/TimeFilter.js b/bin/backend/controls/elements/TimeFilter.js
index 88153d39f89be894f0cd9f03357a5f1df342364a..babbf406b986d61fe75ef726f3247f3e7880abc3 100644
--- a/bin/backend/controls/elements/TimeFilter.js
+++ b/bin/backend/controls/elements/TimeFilter.js
@@ -101,6 +101,7 @@ define('package/quiqqer/erp/bin/backend/controls/elements/TimeFilter', [
             this.$Select.appendChild(QUILocale.get(lg, 'journal.timeFilter.halfYear'), 'half-year');
             this.$Select.appendChild(QUILocale.get(lg, 'journal.timeFilter.year'), 'year');
             this.$Select.appendChild(QUILocale.get(lg, 'journal.timeFilter.period'), 'period');
+            this.$Select.appendChild(QUILocale.get(lg, 'journal.timeFilter.user'), 'user');
 
             this.$Prev.inject(this.$Elm);
             this.$Select.inject(this.$Elm);
@@ -238,6 +239,11 @@ define('package/quiqqer/erp/bin/backend/controls/elements/TimeFilter', [
                 return;
             }
 
+            if (this.$Select.getValue() === 'user') {
+                this.showUserSelect();
+                return;
+            }
+
             //this.$Current = new window.Date();
             this.$To = null;
 
@@ -692,6 +698,138 @@ define('package/quiqqer/erp/bin/backend/controls/elements/TimeFilter', [
             } catch (e) {
                 return window.Intl.DateTimeFormat('de-DE', options);
             }
+        },
+
+        showUserSelect: function () {
+            var self        = this,
+                elmPosition = this.getElm().getPosition(),
+                elmSize     = this.getElm().getSize(),
+                left        = elmPosition.x + 32,
+                width       = 440;
+
+            var size = document.body.getSize();
+
+            if (size.y <= left + width) {
+                left = elmSize.x + elmPosition.x - width - 32;
+            }
+
+            this.fireEvent('userSelectOpenBegin', [self]);
+
+            if (!this.$Current) {
+                this.$Current = new window.Date();
+            }
+
+            if (!this.$To) {
+                this.$To = new window.Date();
+            }
+
+            var Container = new Element('div', {
+                tabindex: -1,
+                'class' : 'timefilter-user-select',
+                html    : '' +
+                    '<div class="timefilter-user-select-left">' +
+                    '   <div class="timefilter-user-select-left-select" data-value="today">' +
+                    '       Heute' +
+                    '   </div>' +
+                    '   <div class="timefilter-user-select-left-select" data-value="yesterday">' +
+                    '       Gestern' +
+                    '   </div>' +
+                    '   <div class="timefilter-user-select-left-select" data-value="month">' +
+                    '       Aktueller Monat' +
+                    '   </div>' +
+                    '   <div class="timefilter-user-select-left-select" data-value="lastMonth">' +
+                    '       Letzter Monat' +
+                    '   </div>' +
+                    '</div>' +
+                    '<div class="timefilter-user-select-right"></div>',
+                styles  : {
+                    left : left,
+                    top  : elmPosition.y + 40,
+                    width: width
+                },
+                events  : {
+                    blur: function (event) {
+                        self.fireEvent('userSelectClose', [self]);
+
+                        event.target.setStyle('display', 'none');
+                        event.target.destroy();
+                    }
+                }
+            }).inject(document.body);
+
+            var selects = Container.getElements('.timefilter-user-select-left-select');
+
+            selects.addEvent('click', function (e) {
+                e.stop();
+
+                var Target = e.target;
+
+                if (!Target.hasClass('timefilter-user-select-left-select')) {
+                    Target = Target.getParent('.timefilter-user-select-left-select');
+                }
+
+                selects.removeClass('timefilter-user-select-left-select--active');
+                Target.addClass('timefilter-user-select-left-select--active');
+            });
+
+
+            require(['package/quiqqer/calendar-controls/bin/Scheduler'], function (Scheduler) {
+                Scheduler.loadExtension('minical').then(function () {
+                    var Handler = Scheduler.getScheduler();
+
+                    var Ghost = new Element('div', {
+                        html: '<div class="dhx_cal_navline">' +
+                            '<div class="dhx_cal_date"></div>' +
+                            '<div class="dhx_cal_tab" name="day_tab" style="right:76px;"></div>' +
+                            '</div>' +
+                            '<div class="dhx_cal_header"></div>' +
+                            '<div class="dhx_cal_data"></div>'
+                    });
+
+                    Handler.config.xml_date = "%Y-%m-%d";
+                    Handler.init(Ghost, new window.Date(), "day");
+
+                    var Calendar = Handler.renderCalendar({
+                        container : Container.getElement('.timefilter-user-select-right'),
+                        date      : new window.Date(),
+                        navigation: true,
+                        handler   : function (date) {
+
+                        }
+                    });
+
+                    Container.getElement('[data-value="today"]').addEvent('click', function () {
+                        Handler.updateCalendar(Calendar, new window.Date());
+                        Handler.markCalendar(Calendar, new window.Date(), 'dhx_calendar_click active');
+                    });
+
+                    Container.getElement('[data-value="yesterday"]').addEvent('click', function () {
+                        var D = new window.Date();
+                        D.setDate(D.getDate() - 1);
+
+                        Handler.updateCalendar(Calendar, new window.Date());
+                        Handler.markCalendar(Calendar, D, 'dhx_calendar_click active');
+                    });
+
+                    Container.getElement('[data-value="month"]').addEvent('click', function () {
+                        Handler.updateCalendar(Calendar, new window.Date());
+                        Handler.markCalendar(Calendar, new window.Date(), 'dhx_calendar_click active');
+                    });
+
+                    Container.getElement('[data-value="lastMonth"]').addEvent('click', function () {
+                        var D = new window.Date();
+                        D.setMonth(D.getMonth() - 1);
+
+                        Handler.updateCalendar(Calendar, D);
+                        Handler.markCalendar(Calendar, D, 'dhx_calendar_click active');
+                    });
+
+                });
+            });
+
+            Container.getElement('[data-value="today"]')
+                     .addClass('timefilter-user-select-left-select--active');
+            //Container.focus();
         }
     });
 });
diff --git a/locale.xml b/locale.xml
index 9e8d7696e3240e50d5c5809147877d691409c8db..2dad2dd5565a4114b8f247b7fb02e744b6825d60 100644
--- a/locale.xml
+++ b/locale.xml
@@ -264,8 +264,10 @@
             <en><![CDATA[Main manufacturer group]]></en>
         </locale>
         <locale name="settings.manufacturers.groupId.description">
-            <de><![CDATA[Alle Benutzer in dieser Gruppe werden als Hersteller gelistet. Sofern das E-COYN Produkte-Modul installiert ist, zählen auch alle Gruppen des Produktfelds "Hersteller" dazu.]]></de>
-            <en><![CDATA[All users in this group are listed as manufacturers. If the E-COYN Products module is installed, all groups in the "Manufacturer" product field also count as manufacturers.]]></en>
+            <de>
+                <![CDATA[Alle Benutzer in dieser Gruppe werden als Hersteller gelistet. Sofern das E-COYN Produkte-Modul installiert ist, zählen auch alle Gruppen des Produktfelds "Hersteller" dazu.]]></de>
+            <en>
+                <![CDATA[All users in this group are listed as manufacturers. If the E-COYN Products module is installed, all groups in the "Manufacturer" product field also count as manufacturers.]]></en>
         </locale>
 
         <locale name="message.ajax.manufacturers.create.newManufacturer.success" html="true">
@@ -868,6 +870,10 @@
             <de><![CDATA[Jahr ändern]]></de>
             <en><![CDATA[Change year]]></en>
         </locale>
+        <locale name="journal.timeFilter.user">
+            <de><![CDATA[Benutzer definiert]]></de>
+            <en><![CDATA[User defined]]></en>
+        </locale>
 
 
         <locale name="quarter.1">