diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
index 7904249cbb17c4862371cd33f4f2f9abf19c18c7..5eca1afa7c2bd82b0ae1d201c07221150a5d7e3a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
@@ -4,6 +4,7 @@ import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
+import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -33,6 +34,9 @@ public class ChartController extends BaseController
 	{
 		model.addAttribute("charts", chartService.getRepository().findAllByOrderByNameAsc());
 		model.addAttribute("settings", settingsService.getSettings());
+		DateTime now = DateTime.now();
+		model.addAttribute("defaultStartDate", now.withDayOfMonth(1));
+		model.addAttribute("defaultEndDate", now.dayOfMonth().withMaximumValue());
 		return "charts/charts";
 	}
 
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index b2e74e865d2577c22c21a175f652f6903d0e0a00..ce6394bd901d112447be76f2af9af13461086ca5 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -340,4 +340,6 @@ chart.show=Anzeigen
 chart.steps.first=Schritt 1: W�hle ein Diagramm
 chart.steps.first.label=Diagramm
 chart.steps.second=Schritt 2: W�hle eine Zeitspanne
+chart.steps.second.label.start=Startdatum
+chart.steps.second.label.end=Enddatum
 chart.steps.third=Schritt 3: Wende Filter an (optional)
\ No newline at end of file
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 0fe85feb3674c346fa8d4982d100b229d53afef0..d13266622271d2037e46b841d51564d0fcdb5b2a 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -340,4 +340,6 @@ chart.show=Show
 chart.steps.first=Step 1: Choose a chart
 chart.steps.first.label=Chart
 chart.steps.second=Step 2: Choose a date range
+chart.steps.second.label.start=Start date
+chart.steps.second.label.end=End date
 chart.steps.third=Step 3: Apply filters (optional)
\ No newline at end of file
diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js
index e9b6a10631647054fca0fc6d2e65401c81dcd28f..8bff456d6faf02fae076a3557c34733ad52b38ff 100644
--- a/src/main/resources/static/js/charts.js
+++ b/src/main/resources/static/js/charts.js
@@ -3,4 +3,87 @@ $( document ).ready(function() {
     {
         $('#modalConfirmDelete').modal('open');
     }
+
+    if($(".datepicker").length)
+    {
+        var pickerStartDate = M.Datepicker.init(document.getElementById('chart-datepicker'), {
+            yearRange: 25,
+            firstDay: 1,
+            showClearBtn: false,
+            setDefaultDate: true,
+            defaultDate: startDate,
+
+            i18n: {
+                // Strings and translations
+                months: monthNames,
+                monthsShort: monthNamesShort,
+                weekdays: weekDays,
+                weekdaysShort: weekDaysShort,
+                weekdaysAbbrev: weekDaysLetters,
+
+                // Buttons
+                done: buttonClose,
+
+                // Accessibility labels
+                labelMonthNext: '>',
+                labelMonthPrev: '<'
+            },
+
+            // Formats
+            format: 'dd.mm.yyyy',
+            formatSubmit: 'dd.mm.yyyy',
+
+            onSelect: function()
+            {
+                if(typeof pickerEndDate !== "undefined")
+                {
+                    pickerEndDate.destroy();
+                    pickerEndDate = createDatePickerEnd(this.date, pickerEndDate.date);
+                }
+            }
+        });
+
+        // picker end date
+        if(typeof endDate !== "undefined")
+        {
+            var pickerEndDate = createDatePickerEnd(pickerStartDate.date, endDate);
+        }
+    }
+
+    function createDatePickerEnd(minDate, selectedDate)
+    {
+        if(selectedDate < minDate)
+        {
+            selectedDate = minDate;
+        }
+
+        return M.Datepicker.init(document.getElementById('chart-datepicker-end'), {
+            yearRange: 50,
+            firstDay: 1,
+            showClearBtn: false,
+            setDefaultDate: true,
+            minDate: minDate,
+            defaultDate: selectedDate,
+
+            i18n: {
+                // Strings and translations
+                months: monthNames,
+                monthsShort: monthNamesShort,
+                weekdays: weekDays,
+                weekdaysShort: weekDaysShort,
+                weekdaysAbbrev: weekDaysLetters,
+
+                // Buttons
+                done: buttonClose,
+
+                // Accessibility labels
+                labelMonthNext: '>',
+                labelMonthPrev: '<'
+            },
+
+            // Formats
+            format: 'dd.mm.yyyy',
+            formatSubmit: 'dd.mm.yyyy'
+        });
+    }
 });
\ No newline at end of file
diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl
index e783c1d57d0acb3b9129b68fd823eb7306fc7581..c1f0563dc6fa8bef10dbe175ce1099e2565a1383 100644
--- a/src/main/resources/templates/charts/charts.ftl
+++ b/src/main/resources/templates/charts/charts.ftl
@@ -2,6 +2,7 @@
     <head>
         <#import "../helpers/header.ftl" as header>
         <@header.header "BudgetMaster"/>
+        <@header.style "datepicker"/>
         <#import "/spring.ftl" as s>
     </head>
     <body class="budgetmaster-blue-light">
@@ -21,6 +22,7 @@
                     <form name="ChartSettings" action="<@s.url '/charts/showChart'/>" method="post">
                         <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
 
+                        <!-- STEP 1 -->
                         <div class="row no-margin-bottom">
                             <div class="col s12 m12 l8 offset-l2">
                                 ${locale.getString("chart.steps.first")}
@@ -37,18 +39,38 @@
                             </div>
                         </div>
 
+
+                        <!-- STEP 2 -->
                         <div class="row no-margin-bottom">
                             <div class="col s12 m12 l8 offset-l2">
                                 ${locale.getString("chart.steps.second")}
                             </div>
                         </div>
                         <div class="row">
-                            <div class="input-field col s12 m12 l8 offset-l2 no-margin-top">
-                                <input id="chart-name" type="text" name="name" value="">
-                                <label for="chart-name">${locale.getString("chart.new.label.name")}</label>
+                            <div class="input-field col s6 m6 l4 offset-l2">
+                                <#assign startDate = dateService.getLongDateString(defaultStartDate)/>
+
+                                <input id="chart-datepicker" type="text" class="datepicker" name="startDate" value="${startDate}">
+                                <label for="chart-datepicker">${locale.getString("chart.steps.second.label.start")}</label>
+                            </div>
+
+                            <div class="input-field col s6 m6 l4 ">
+                                <#assign endDate = dateService.getLongDateString(defaultEndDate)/>
+
+                                <input id="chart-datepicker-end" type="text" class="datepicker" name="endDate" value="${endDate}">
+                                <label for="chart-datepicker-end">${locale.getString("chart.steps.second.label.end")}</label>
                             </div>
                         </div>
 
+                        <script>
+                            startDate = "${startDate}".split(".");
+                            startDate = new Date(startDate[2], startDate[1]-1, startDate[0]);
+                            endDate = "${endDate}".split(".");
+                            endDate = new Date(endDate[2], endDate[1]-1, endDate[0]);
+                        </script>
+
+
+                        <!-- STEP 3 -->
                         <div class="row no-margin-bottom">
                             <div class="col s12 m12 l8 offset-l2">
                                 ${locale.getString("chart.steps.third")}
@@ -78,8 +100,13 @@
             </div>
         </main>
 
+        <!-- Pass localization to JS -->
+        <#import "../helpers/globalDatePicker.ftl" as datePicker>
+        <@datePicker.datePickerLocalization/>
+
         <!-- Scripts-->
         <#import "../helpers/scripts.ftl" as scripts>
         <@scripts.scripts/>
+        <script src="<@s.url '/js/charts.js'/>"></script>
     </body>
 </html>
\ No newline at end of file