diff --git a/Documentation/Installation.rst b/Documentation/Installation.rst
index f22923c53d9ed7a5c0ea2b6f8a1928ad1e6e9036..0c14cec7a6955e82dd2a35ff0d1a82d08ecce9f3 100644
--- a/Documentation/Installation.rst
+++ b/Documentation/Installation.rst
@@ -288,9 +288,19 @@ Setup CSS & JS
 .. _datetimepicker:
 
 Datetimepicker
-----------
-Include the JS and CSS Files to get datetimepicker work:
-Following scripts are needed:
+--------------
+There are three types of datetimepicker available which can be set over QFQ-Configuration, Form.parameter and FormElement.parameter.::
+
+   dateTimePickerType = qfq
+   dateTimePickerType = browser
+   dateTimePickerType = no
+
+qfq
+^^^
+
+Is set as default and gives best experience. For this type following steps are needed to do at first time:
+
+Include these JS and CSS Files to get datetimepicker work:
 
 * bootstrap-datetimepicker.min.css
 * bootstrap-datetimepicker.min.js
@@ -301,17 +311,34 @@ Second option is to use the UZH CD template.
 
 Following configurations can be set over FormElement.parameter:
 
-dateFormat = *DD.MM.YYYY HH:mm:ss* | *MM-DD-YYYY HH:mm* | *dddd DD.MM.YYYY HH:mm* -> DD:day of month,MM:month value,YYYY:year value,HH:24h,hh:12h AM-PM,mm:minutes,ss:seconds,dddd:written day of week
+dateFormat = *DD.MM.YYYY* | *MM-DD-YYYY* -> DD:day of month,MM:month value,YYYY:year value
 dateDaysOfWeekEnabled = *0,1,6* -> 0:sunday,1:monday,2:tuesday,3:wednesday,4:thursday,5:friday,6:saturday
 dateLocale = *en* | *de* -> Set language
-min = *03.05.2022* -> minDate that can be selected
-max = *23.07.2022* -> maxDate that can be selected
+min = *03.05.2022* | *03.05.2022 14:00:00* -> minDate that can be set for date or datetime
+max = *23.07.2022* | *23.07.2022 13:00:00* -> maxDate that can be set for date or datetime
 dateViewModeDefault = *days* | *months* | *years*
 clearMe = *0* | *1* -> show clear button
 dateShowCalendarWeeks = *false* | *true*
 dateUseCurrentDatetime = *false* | *true*
 datetimeSideBySide = *false* | *true* -> Show time right to date
 
+browser
+^^^^^^^
+
+For this datetimepicker most options are given from browser and there only can be set max and min date as own parameters.
+Date format can not be changed, means dateFormat settings and parameters dont have impact on this type of datetimepicker.
+It will be used for datetime, date and time.
+
+no
+^^
+
+This option deactivates the datetimepicker and allows a normal user input. Input still will be checked for correct format and following parameters are available too:
+
+* dateFormat
+* min
+* max
+* clearMe
+
 .. _form-editor:
 
 FormEditor
diff --git a/extension/Classes/Core/AbstractBuildForm.php b/extension/Classes/Core/AbstractBuildForm.php
index b10da3d810099e34e6434f5d652edac1b635d233..bd58a02e57f0baae2c8935d38c30d3c40480acdd 100644
--- a/extension/Classes/Core/AbstractBuildForm.php
+++ b/extension/Classes/Core/AbstractBuildForm.php
@@ -3138,9 +3138,33 @@ abstract class AbstractBuildForm {
             "maxDate"
         );
 
+        // Set needed datetimepicker type
+        $dateTimePickerType = $this->store::getVar(SYSTEM_DATE_TIME_PICKER_TYPE,STORE_SYSTEM);
+        $dateTimePickerTypeForm = $this->formSpec[F_DATE_TIME_PICKER_TYPE];
+        $dateTimePickerTypeFe = $formElement[FE_DATE_TIME_PICKER_TYPE];
+
+        if(isset($dateTimePickerTypeForm) && $dateTimePickerTypeForm !== '') {
+            $dateTimePickerType = $dateTimePickerTypeForm;
+        }
+
+        if(isset($dateTimePickerTypeFe) && $dateTimePickerTypeFe !== '') {
+            $dateTimePickerType = $dateTimePickerTypeFe;
+        }
+
+        $datePickerClassName = '';
+        if($dateTimePickerType === DATE_TIME_PICKER_QFQ) {
+            $datePickerClassName = 'qfq-datepicker';
+        } elseif (isset($formElement[FE_INPUT_CLEAR_ME]) && $formElement[FE_INPUT_CLEAR_ME] != '0' && $dateTimePickerType === DATE_TIME_PICKER_NO) {
+            if (($this->formSpec[F_MULTI_MODE] ?? '') == 'vertical') {
+                $datePickerClassName = ' qfq-clear-me-multiform';
+            } else {
+                $datePickerClassName = ' qfq-clear-me';
+            }
+        }
+
         $attribute .= Support::doAttribute('id', $formElement[FE_HTML_ID]);
         $attribute .= Support::doAttribute('name', $htmlFormElementName);
-        $attribute .= Support::doAttribute('class', 'form-control qfq-datepicker');
+        $attribute .= Support::doAttribute('class', 'form-control '.$datePickerClassName);
         $attribute .= Support::doAttribute(ATTRIBUTE_DATA_REFERENCE, $formElement[FE_DATA_REFERENCE]);
 
         $showTime = ($formElement[FE_TYPE] == FE_TYPE_TIME || $formElement[FE_TYPE] == FE_TYPE_DATETIME) ? 1 : 0;
@@ -3149,6 +3173,16 @@ abstract class AbstractBuildForm {
         }
         $value = Support::convertDateTime($value, $formElement[FE_DATE_FORMAT], $formElement[FE_SHOW_ZERO], $showTime, $formElement[FE_SHOW_SECONDS]);
 
+        // Browser needs own format to show date
+        if($dateTimePickerType === DATE_TIME_PICKER_BROWSER && $value !== '') {
+            $dateOldFormat = date_create($value);
+            if($formElement[FE_TYPE] === FE_TYPE_DATE) {
+                $value = date_format($dateOldFormat, "Y-m-d");
+            } elseif($formElement[FE_TYPE] === FE_TYPE_DATETIME) {
+                $value = date_format($dateOldFormat, "Y-m-d H:i");
+            }
+        }
+
         $tmpPattern = $formElement[FE_CHECK_PATTERN];
         //  If bootstrap datetimepicker (date and datetime FE Type) is used, check pattern is not needed. Keep pattern for FE Type time.
         if ($formElement[FE_TYPE] != FE_TYPE_DATETIME && $formElement[FE_TYPE] != FE_TYPE_DATE && $formElement[FE_TYPE] != FE_TYPE_TIME) {
@@ -3168,47 +3202,71 @@ abstract class AbstractBuildForm {
                 throw new \UserFormException("Checktype not applicable for date/time: '" . $formElement[FE_CHECK_TYPE] . "'", ERROR_NOT_APPLICABLE);
         }
 
+        $tableColumnTypes = $this->store->getStore(STORE_TABLE_COLUMN_TYPES);
         // truncate if necessary
         if ($value != '' && $formElement[FE_MAX_LENGTH] > 0) {
-            $value = substr($value, 0, $formElement[FE_MAX_LENGTH]);
+            if($formElement[FE_TYPE] === FE_TYPE_TIME && $tableColumnTypes[$formElement[FE_NAME]] === DB_COLUMN_TYPE_DATETIME) {
+                $value = explode(' ', $value)[1];
+            } else {
+                $value = substr($value, 0, $formElement[FE_MAX_LENGTH]);
+            }
         }
 
-        // See: https://project.math.uzh.ch/issues/3536
-//        $type = $formElement[FE_TYPE];
-//        if ($type === 'datetime') {
-//            $type = 'datetime-local';
-//        }
-        $type = 'text'; // date|time|datetime|datetime-local are not appropriate - only I18n representation possible.
+        if($dateTimePickerType === DATE_TIME_PICKER_BROWSER) {
+            if($formElement[FE_TYPE] == FE_TYPE_DATE) {
+                $type = 'date';
+            } elseif ($formElement[FE_TYPE] == FE_TYPE_TIME) {
+                $type = 'time';
+            } else {
+                $type = 'datetime-local';
+            }
+        } else {
+            // date|time|datetime|datetime-local are not appropriate - only I18n representation possible.
+            $type = 'text';
+        }
 
         $attribute .= Support::doAttribute('type', $type);
 
         //Examples of accepted dateFormats: dd.MM.YYYY , DD.MM.YYYY, HH:mm(24h), hh:mm(12h AM PM)
         // Get dateformat default from T3 config and adjust it for datetimepicker because config default (dd.mm.yyyy) is not the default of bootstrap datetimepicker.
         $defaultDateFormat = $formElement[FE_DATE_FORMAT];
-        if ($defaultDateFormat === 'dd.mm.yyyy' || $defaultDateFormat === 'yyyy-mm-dd') {
-            if ($formElement[FE_TYPE] == FE_TYPE_DATETIME) {
-                $defaultDateFormat = strtoupper($defaultDateFormat);
-                $defaultDateFormat .= ' HH:mm';
-            } else {
-                $defaultDateFormat = strtoupper($defaultDateFormat);
+        if($dateTimePickerType === DATE_TIME_PICKER_QFQ) {
+            switch ($defaultDateFormat) {
+                case FORMAT_DATE_INTERNATIONAL:
+                case FORMAT_DATE_INTERNATIONAL_QFQ:
+                case FORMAT_DATE_GERMAN:
+                case FORMAT_DATE_GERMAN_QFQ:
+                    if ($formElement[FE_TYPE] == FE_TYPE_DATETIME) {
+                        $defaultDateFormat = strtoupper($defaultDateFormat);
+                        $defaultDateFormat .= ' HH:mm';
+                    } else {
+                        $defaultDateFormat = strtoupper($defaultDateFormat);
+                    }
+                    break;
             }
+        } elseif ($formElement[FE_TYPE] == FE_TYPE_DATETIME) {
+            $defaultDateFormat .= ' hh:mm';
         }
 
         // if FE type datetime and showSeconds is set, corrected format is needed
-        if ($formElement[FE_TYPE] === FE_TYPE_DATETIME && $formElement[FE_SHOW_SECONDS] == 1 && $defaultDateFormat === 'DD.MM.YYYY HH:mm') {
+        if ($formElement[FE_TYPE] === FE_TYPE_DATETIME && $formElement[FE_SHOW_SECONDS] == 1) {
             $defaultDateFormat .= ':ss';
         }
 
         // if FE type 'time' is used, overwrite defaultDateFormat
         if ($formElement[FE_TYPE] === FE_TYPE_TIME) {
-            if ($formElement[FE_DATE_FORMAT] === 'hh:mm' || $formElement[FE_DATE_FORMAT] === 'hh:mm:ss' || $formElement[FE_SHOW_SECONDS] == 1) {
-                if ($formElement[FE_DATE_FORMAT] === 'HH:mm:ss' || $formElement[FE_SHOW_SECONDS] == 1) {
+            if ($dateTimePickerType === DATE_TIME_PICKER_QFQ) {
+                if($formElement[FE_DATE_FORMAT] === 'HH:mm:ss' || $formElement[FE_SHOW_SECONDS] == 1) {
                     $defaultDateFormat = 'HH:mm:ss';
                 } else {
-                    $defaultDateFormat = 'hh:mm';
+                    $defaultDateFormat = 'HH:mm';
                 }
             } else {
-                $defaultDateFormat = 'HH:mm';
+                if($formElement[FE_DATE_FORMAT] === 'hh:mm:ss' || $formElement[FE_SHOW_SECONDS] == 1) {
+                    $defaultDateFormat = 'hh:mm:ss';
+                } else {
+                    $defaultDateFormat = 'hh:mm';
+                }
             }
         }
 
@@ -3217,7 +3275,6 @@ abstract class AbstractBuildForm {
         // convert enabled days from datetimepicker user input daysOfWeekEnabled to disabled days
         $enabledDays = explode(',', $formElement[FE_DATE_DAYS_OF_WEEK_ENABLED]);
         $disabledDays = '';
-        $flagDayPoint = false;
 
         for ($i = 0; $i <= 6; $i++) {
             $flagDayPoint = false;
@@ -3242,8 +3299,9 @@ abstract class AbstractBuildForm {
             $formElement[FE_DATE_DAYS_OF_WEEK_ENABLED] = '[' . $disabledDays . ']';
         }
 
-        // convert 0|1 to false|true temporaerely, datetimepicker-bootstrap.js accepts only boolean.
-        $formElement[FE_INPUT_CLEAR_ME] = empty($formElement[FE_INPUT_CLEAR_ME]) ? 'false' : 'true';
+        if($dateTimePickerType === DATE_TIME_PICKER_QFQ) {
+            $formElement[FE_INPUT_CLEAR_ME] = empty($formElement[FE_INPUT_CLEAR_ME]) ? 'false' : 'true';
+        }
 
         // Add datepicker attributes
         $keyCount = 0;
@@ -3294,6 +3352,24 @@ abstract class AbstractBuildForm {
         }
 
         // min and max works with input type: number, range, date, datetime-local, month, time and week
+        if($dateTimePickerType !== DATE_TIME_PICKER_QFQ) {
+            if($formElement[FE_TYPE] == FE_TYPE_DATE) {
+                $dateMinMaxFormat = "Y-m-d";
+            } else {
+                $dateMinMaxFormat = "Y-m-d H:i";
+            }
+
+            if(isset($formElement[FE_MIN]) && $formElement[FE_MIN] !== '') {
+                $dateMin = date_create($formElement[FE_MIN]);
+                $formElement[FE_MIN] = date_format($dateMin, $dateMinMaxFormat);
+            }
+
+            if(isset($formElement[FE_MAX]) && $formElement[FE_MAX] !== '') {
+                $dateMax = date_create($formElement[FE_MAX]);
+                $formElement[FE_MAX] = date_format($dateMax, $dateMinMaxFormat);
+            }
+        }
+
         $attribute .= HelperFormElement::getAttributeList($formElement, [FE_MIN, FE_MAX]);
 
         $json = $this->getFormElementForJson($htmlFormElementName, $value, $formElement);
diff --git a/extension/Classes/Core/Constants.php b/extension/Classes/Core/Constants.php
index 03b6bc0e0fc40f9f26d1c47ef5d465adceb07e66..6de8109575a8103d4d0998e95b9e6b9766c4f404 100644
--- a/extension/Classes/Core/Constants.php
+++ b/extension/Classes/Core/Constants.php
@@ -552,6 +552,7 @@ const FORM_SUBMIT_LOG_MODE_ALL = 'all';
 const FORM_SUBMIT_LOG_MODE_NONE = 'none';
 
 const SYSTEM_DATE_FORMAT = 'dateFormat';
+const SYSTEM_DATE_TIME_PICKER_TYPE = 'dateTimePickerType';
 const SYSTEM_REDIRECT_ALL_MAIL_TO = 'redirectAllMailTo';
 
 const SYSTEM_THROW_GENERAL_ERROR = 'throwExceptionGeneralError';
@@ -1140,6 +1141,8 @@ const F_REST_TOKEN = 'restToken';
 const CLIENT_REST_ID = '_id';
 const CLIENT_REST_FORM = '_form';
 
+const F_DATE_TIME_PICKER_TYPE = SYSTEM_DATE_TIME_PICKER_TYPE;
+
 const F_REMEMBER_LAST_PILL = SYSTEM_REMEMBER_LAST_PILL;
 
 // Form Columns: Only in form file
@@ -1234,6 +1237,10 @@ const FE_DATE_VIEWMODE_DEFAULT = "dateViewModeDefault";
 const FE_DATE_SHOW_CALENDAR_WEEKS = "dateShowCalendarWeeks";
 const FE_DATE_CURRENT_DATETIME = "dateUseCurrentDatetime";
 const FE_DATE_DATETIME_SIDE_SIDE_BY_SIDE = "datetimeSideBySide";
+const FE_DATE_TIME_PICKER_TYPE = F_DATE_TIME_PICKER_TYPE;
+const DATE_TIME_PICKER_QFQ = 'qfq';
+const DATE_TIME_PICKER_BROWSER = 'browser';
+const DATE_TIME_PICKER_NO = 'no';
 
 // FormElement Columns: Only in form file
 const FE_FILE_CONTAINER_NAME = 'containerName_ff'; // key for referencing container FormElements by name in form file
@@ -1497,7 +1504,9 @@ const QUERY_TYPE_FAILED = 'type: query failed';
 
 // Date/ DateTime formats
 const FORMAT_DATE_INTERNATIONAL = 'yyyy-mm-dd';
+const FORMAT_DATE_INTERNATIONAL_QFQ = 'YYYY-MM-DD';
 const FORMAT_DATE_GERMAN = 'dd.mm.yyyy';
+const FORMAT_DATE_GERMAN_QFQ = 'DD.MM.YYYY';
 
 // Upload
 const UPLOAD_MODE_UNCHANGED = 'unchanged';
@@ -1991,6 +2000,7 @@ const ENCRYPTION_IV = 'iv';
 const ENCRYPTION_CIPHER_METHOD = 'cipherMethod';
 const ENCRYPTION_CIPHERTEXT = 'ciphertext';
 const DB_COLUMN_TYPE = 'type';
+const DB_COLUMN_TYPE_DATETIME = 'datetime';
 const DB_COLUMN_LENGTH = 'length';
 const DB_COLUMN_NAME = 'name';
 const ENCRYPTION_CIPHER_METHOD_COLUMN_NAME = 'cipherMethodColumnName';
diff --git a/extension/Classes/Core/Helper/Support.php b/extension/Classes/Core/Helper/Support.php
index b61fdcf9e4c8c5595efc5e5458aa82216a513bc5..709a5b136971e185b61742d6256e5746696f5cc6 100644
--- a/extension/Classes/Core/Helper/Support.php
+++ b/extension/Classes/Core/Helper/Support.php
@@ -471,8 +471,8 @@ class Support {
      */
     public static function dateTimeRegexp($type, $format, $timeIsOptional = '0') {
 
-        if ($format === FORMAT_DATE_GERMAN) {
-            // yyyy-mm-dd | 0000-00-00
+        if (strtolower($format) == FORMAT_DATE_GERMAN) {
+            // dd.mm.yyyy | 00.00.0000
             $date = '(([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])\.([1-9]|0[1-9]|1[012])\.([0-9]{4}|[0-9]{2})|00\.00\.(00){1,2})';
         } else {
             // FORMAT_DATE_INTERNATIONAL: [d]d.[m]m.[yy]yy | 00.00.0000
@@ -569,9 +569,11 @@ class Support {
 
             switch ($dateFormat) {
                 case FORMAT_DATE_INTERNATIONAL:
+                case FORMAT_DATE_INTERNATIONAL_QFQ:
                     $newDate = sprintf("%04d-%02d-%02d", $arr[0], $arr[1], $arr[2]);
                     break;
                 case FORMAT_DATE_GERMAN:
+                case FORMAT_DATE_GERMAN_QFQ:
                     $newDate = sprintf("%02d.%02d.%04d", $arr[2], $arr[1], $arr[0]);
                 default:
             }
diff --git a/extension/Classes/Core/Save.php b/extension/Classes/Core/Save.php
index 8a12aa51509055c6405ca5c216a9f9fec662d667..ae2290ef428b5e573a0a3b56a8155e91d94f4940 100644
--- a/extension/Classes/Core/Save.php
+++ b/extension/Classes/Core/Save.php
@@ -401,9 +401,14 @@ class Save {
         $newValues = array();
 
         $tableColumns = array_keys($this->store->getStore(STORE_TABLE_COLUMN_TYPES));
+        $tableColumnTypes = $this->store->getStore(STORE_TABLE_COLUMN_TYPES);
         $formValues = $this->store->getStore(STORE_FORM);
         $formValues = $this->createEmptyTemplateGroupElements($formValues);
 
+        $feColumnnTypes = array();
+        foreach($this->feSpecNative as $fe) {
+            $feColumnnTypes[$fe['name']] = $fe['type'];
+        }
         // Iterate over all table.columns. Built an assoc array $newValues.
         foreach ($tableColumns as $column) {
 
@@ -433,6 +438,11 @@ class Save {
 
             $this->store->setVar(SYSTEM_FORM_ELEMENT, "Column: $column", STORE_SYSTEM);
 
+            // Convert time to datetime if mysql column is datetime
+            if($tableColumnTypes[$column] === "datetime" && $feColumnnTypes[$column] === "time") {
+                $formValues[$column] = '0000-00-00 ' . $formValues[$column];
+            }
+
             // Check if an empty string has to be converted to null.
             if (isset($formValues[$column]) && $formValues[$column] == '' && $this->isSetEmptyMeansNull($column)) {
                 $formValues[$column] = null;
diff --git a/extension/Classes/Core/Store/FillStoreForm.php b/extension/Classes/Core/Store/FillStoreForm.php
index 247708a82bba2055f7d827b879596caa12795c9d..bf083ca289f63057052f4c1f2c5e5f5eb6c835b4 100644
--- a/extension/Classes/Core/Store/FillStoreForm.php
+++ b/extension/Classes/Core/Store/FillStoreForm.php
@@ -350,7 +350,7 @@ class FillStoreForm {
                 if ($value !== '') { // do not check empty values
                     $value = $this->doDateTime($formElement, $value);
                 }
-                break;
+            break;
 
             default:
                 if ($formElement[FE_TYPE] == FE_TYPE_EDITOR) {
@@ -448,9 +448,35 @@ class FillStoreForm {
      */
     public function doDateTime(array &$formElement, $value) {
 
+        // check for browser dateTimePickerType and adjust value
+        $typeBrowser = false;
+        $formName = $this->store::getVar(FORM_NAME_FORM, STORE_SIP);
+        $dbForm = new Database();
+        $formArray = $dbForm->selectFormByName($formName);
+        HelperFormElement::explodeParameter($formArray, FE_PARAMETER);
+
+        $dateTimePickerType = $this->store::getVar(SYSTEM_DATE_TIME_PICKER_TYPE, STORE_SYSTEM);
+        $dateTimePickerTypeForm = $formArray[F_DATE_TIME_PICKER_TYPE];
+        $dateTimePickerTypeFe = $formElement[FE_DATE_TIME_PICKER_TYPE];
+
+        if(isset($dateTimePickerTypeForm) && $dateTimePickerTypeForm !== '') {
+            $dateTimePickerType = $dateTimePickerTypeForm;
+        }
+
+        if(isset($dateTimePickerTypeFe) && $dateTimePickerTypeFe !== '') {
+            $dateTimePickerType = $dateTimePickerTypeFe;
+        }
+        if($dateTimePickerType === DATE_TIME_PICKER_BROWSER) {
+            $typeBrowser = true;
+            $datetimeArray = explode("T",$value,2);
+            if(preg_match("/^(?:2[0-3]|[01][0-9]):[0-5][0-9]$/", $datetimeArray[1])) {
+                $value = $datetimeArray[0]." ".$datetimeArray[1];
+            }
+        }
+
         $regexp = Support::dateTimeRegexp($formElement[FE_TYPE], $formElement[FE_DATE_FORMAT], $formElement[FE_TIME_IS_OPTIONAL] ?? "");
 
-        if (1 !== preg_match('/' . $regexp . '/', $value, $matches)) {
+        if (1 !== preg_match('/' . $regexp . '/', $value, $matches) && !$typeBrowser) {
             $placeholder = Support::getDateTimePlaceholder($formElement);
             throw new \UserFormException("DateTime format not recognized: $placeholder / $value ", ERROR_DATE_TIME_FORMAT_NOT_RECOGNISED);
         }
diff --git a/extension/ext_conf_template.txt b/extension/ext_conf_template.txt
index 91b67fd004d420264408160679762efdd0fd3cb4..6b4b605df5e8f0fbb3fabea87acc235f19626dba 100644
--- a/extension/ext_conf_template.txt
+++ b/extension/ext_conf_template.txt
@@ -13,6 +13,9 @@ baseUrl =
 # cat=config/date; type=string; label=Date format:Default is 'dd.mm.yyyy'. Possible options: 'yyyy-mm-dd', 'dd.mm.yyyy'
 dateFormat = dd.mm.yyyy
 
+# cat=config/date; type=string; label=Datetimepicker type:Default is 'qfq'. Possible options: 'no', 'browser', 'qfq'
+dateTimePickerType = qfq
+
 # cat=config/config; type=string; label=Thumbnail directory 'secure':Default is 'fileadmin/protected/qfqThumbnail'. Important: secure the directory (recursive) against direct access. Will be used by a special columnname '_thumbnail'.
 thumbnailDirSecure = fileadmin/protected/qfqThumbnail
 
diff --git a/javascript/src/Form.js b/javascript/src/Form.js
index faa08faa170b596bb3008adb08356c2be2a392a3..3b283a16f105508295ce8ebd490325c70e95151b 100644
--- a/javascript/src/Form.js
+++ b/javascript/src/Form.js
@@ -52,6 +52,48 @@ var QfqNS = QfqNS || {};
         // immediately, not only after loosing focus. Same goes for <textarea>
         this.$form.find("input, textarea").on("input paste", this.inputAndPasteHandler.bind(this));
 
+        // Fire handler while using dateTimePickerType qfq
+        function getDatetimePickerChanges() {
+            $('div tbody').on('click', 'td.day:not(.disabled)', formObject.inputAndPasteHandler.bind(formObject));
+            var timepickerElements = 'td a.btn[data-action="incrementHours"], td a.btn[data-action="incrementMinutes"], td a.btn[data-action="decrementHours"], td a.btn[data-action="decrementMinutes"]';
+            $('div table').on('click', 'td.hour, td.minute, td a[data-action="clear"], '+timepickerElements, formObject.inputAndPasteHandler.bind(formObject));
+        }
+
+        // Function to trigger onfocus event again while element is already focused
+        function triggerFocus(element) {
+            var eventType = "onfocusin" in element ? "focusin" : "focus",
+                bubbles = "onfocusin" in element,
+                event;
+
+            if ("createEvent" in document) {
+                event = document.createEvent("Event");
+                event.initEvent(eventType, bubbles, true);
+            }
+            else if ("Event" in window) {
+                event = new Event(eventType, { bubbles: bubbles, cancelable: true });
+            }
+
+            element.focus();
+            element.dispatchEvent(event);
+        }
+
+        var formObject = this;
+        this.$form.find(".qfq-datepicker").on("click", function(e){
+            triggerFocus(this);
+            getDatetimePickerChanges();
+        });
+
+        // Fire handler while using dateTimePickerType browser
+        this.$form.find("input[type=datetime-local]").on("click", this.inputAndPasteHandler.bind(this));
+
+        // Use ctrl+z for saving form
+        document.addEventListener('keydown', function(event) {
+            if (event.ctrlKey && event.key === 'z') {
+                console.log("submit");
+                $("#save-button:not([disabled=disabled])").click();
+            }
+        });
+
         this.$form.on('submit', function (event) {
             event.preventDefault();
         });
diff --git a/javascript/src/Main.js b/javascript/src/Main.js
index 0a1907cc059f7df4f2d8f18ab4a5e31a00093f71..7ebe16c816cd213f7b0ac5f0605e72de64847180 100644
--- a/javascript/src/Main.js
+++ b/javascript/src/Main.js
@@ -136,6 +136,7 @@ $(document).ready( function () {
             var dateArray = {};
             var datesToFormat = ["minDate", "maxDate"];
             var correctAttributeNames = ["mindate", "maxdate"];
+            var onlyTime = false;
             for(var i = 0; i < datesToFormat.length; i++) {
                 var date = false;
                 if($(this).data(correctAttributeNames[i])) {
@@ -144,13 +145,20 @@ $(document).ready( function () {
                     if(cleanDate.includes('.')) {
                         dateArray = cleanDate.split(".");
                         date = dateArray[1] + "/" + dateArray[0] + "/" + dateArray[2];
-                    } else {
+                    } else if(cleanDate.includes('-')){
                         dateArray = cleanDate.split("-");
                         date = dateArray[1] + "/" + dateArray[2] + "/" + dateArray[0];
+                    } else {
+                        var today = new Date();
+                        var dd = String(today.getDate()).padStart(2, '0');
+                        var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
+                        var yyyy = today.getFullYear();
+                        date = mm + "/" + dd + "/" + yyyy + " " + cleanDate;
+                        onlyTime = true;
                     }
                     if(cleanTime !== '' && cleanTime !== undefined) {
                         date = date + " " + cleanTime;
-                    } else if(correctAttributeNames[i] === "maxdate") {
+                    } else if(correctAttributeNames[i] === "maxdate" && !onlyTime) {
                         date = date + " 23:59:59";
                     }
                 }
@@ -167,7 +175,7 @@ $(document).ready( function () {
                 showClear: ($(this).data("show-clear-button") !== undefined) ? $(this).data("show-clear-button") : true,
                 calendarWeeks: ($(this).data("show-calendar-weeks") !== undefined) ? $(this).data("show-calendar-weeks") : false,
                 useCurrent: ($(this).data("use-current-datetime") !== undefined) ? $(this).data("use-current-datetime") : false,
-                sideBySide: ($(this).data("datetime-side-by-side") !== undefined) ? $(this).data("datetime-side-by-side") : false,
+                sideBySide: ($(this).data("datetime-side-by-side") !== undefined) ? $(this).data("datetime-side-by-side") : true,
             };
 
             var currentDatePicker = $(this).datetimepicker(options);