diff --git a/src/de/deadlocker8/budgetmaster/ui/ChartController.java b/src/de/deadlocker8/budgetmaster/ui/ChartController.java
index e44baa1ea3d7ba9a8e9a44849712b9f5ead3295f..7947993a720ebbd41343a3657b6f2f94ccba61b3 100644
--- a/src/de/deadlocker8/budgetmaster/ui/ChartController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/ChartController.java
@@ -1,15 +1,24 @@
 package de.deadlocker8.budgetmaster.ui;
 
+import java.time.LocalDate;
 import java.util.ArrayList;
 
+import org.joda.time.DateTime;
+
 import de.deadlocker8.budgetmaster.logic.CategoryInOutSum;
 import de.deadlocker8.budgetmaster.logic.ServerConnection;
 import de.deadlocker8.budgetmaster.logic.chartGenerators.PieChartGenerator;
+import fontAwesome.FontIcon;
+import fontAwesome.FontIconType;
 import javafx.fxml.FXML;
 import javafx.scene.control.Accordion;
+import javafx.scene.control.Button;
+import javafx.scene.control.DateCell;
 import javafx.scene.control.DatePicker;
 import javafx.scene.layout.AnchorPane;
 import javafx.scene.layout.HBox;
+import javafx.scene.paint.Color;
+import javafx.util.Callback;
 import logger.Logger;
 
 public class ChartController implements Refreshable
@@ -20,6 +29,7 @@ public class ChartController implements Refreshable
 	@FXML private HBox hboxChartCategories;
 	@FXML private DatePicker datePickerEnd;
 	@FXML private AnchorPane anchorPaneChartMonth;
+	@FXML private Button buttonChartCategoriesShow;
 
 	private Controller controller;
 
@@ -27,35 +37,74 @@ public class ChartController implements Refreshable
 	{
 		this.controller = controller;
 
-		// TODO design, chart chooser
 		anchorPaneMain.setStyle("-fx-background-color: #F4F4F4;");
 		hboxChartCategories.setStyle("-fx-background-color: #F4F4F4;");
-		anchorPaneChartMonth.setStyle("-fx-background-color: #F4F4F4;");		
+		anchorPaneChartMonth.setStyle("-fx-background-color: #F4F4F4;");	
+		FontIcon iconShow = new FontIcon(FontIconType.CHECK);
+		iconShow.setSize(16);
+		iconShow.setColor(Color.WHITE);
+		buttonChartCategoriesShow.setStyle("-fx-background-color: #2E79B9;");	
+		buttonChartCategoriesShow.setGraphic(iconShow);
+		
+		datePickerEnd.setDayCellFactory(new Callback<DatePicker, DateCell>()
+		{			
+			@Override
+			public DateCell call(DatePicker param)
+			{
+				 return new DateCell() 
+				 {
+                     @Override
+                     public void updateItem(LocalDate item, boolean empty) 
+                     {
+                         super.updateItem(item, empty);                        
+                         if (item.isBefore(datePickerStart.getValue().plusDays(1)))
+                         {
+                             setDisable(true);
+                             setStyle("-fx-background-color: #ffc0cb;");
+                         }   
+                     }
+                 };
+			}
+		});
 	}
-
-	@Override
-	public void refresh()
+	
+	public void chartCategoriesShow()
 	{
-		// TODO example
-		// TODO date range chooser
-		// TODO check wether starDate and EndDate are included and are working correctly
+		DateTime startDate = DateTime.parse(datePickerStart.getValue().toString());
+		DateTime endDate = DateTime.parse(datePickerEnd.getValue().toString());		
+	
 		try
 		{
 			ServerConnection connection = new ServerConnection(controller.getSettings());
-			ArrayList<CategoryInOutSum> sums = connection.getCategoryInOutSumForMonth(controller.getCurrentDate().withDayOfMonth(1), controller.getCurrentDate().dayOfMonth().withMaximumValue());
+			ArrayList<CategoryInOutSum> sums = connection.getCategoryInOutSumForMonth(startDate, endDate);
 
 			hboxChartCategories.getChildren().clear();
-			
+
 			PieChartGenerator generator = new PieChartGenerator("Einnahmen nach Kategorien", sums, true, controller.getSettings().getCurrency());
 			hboxChartCategories.getChildren().add(generator.generate());
 			generator = new PieChartGenerator("Ausgaben nach Kategorien", sums, false, controller.getSettings().getCurrency());
 			hboxChartCategories.getChildren().add(generator.generate());
-			
+
 			accordion.setExpandedPane(accordion.getPanes().get(0));
 		}
 		catch(Exception e)
 		{
 			Logger.error(e);
+			//TODO
+			//controller.showConnectionErrorAlert(e.getMessage());
 		}
 	}
+
+	@Override
+	public void refresh()
+	{
+		//chart categories
+		LocalDate startDate = LocalDate.parse(controller.getCurrentDate().withDayOfMonth(1).toString("yyyy-MM-dd"));
+		LocalDate endDate = LocalDate.parse(controller.getCurrentDate().dayOfMonth().withMaximumValue().toString("yyy-MM-dd"));
+		
+		datePickerStart.setValue(startDate);
+		datePickerEnd.setValue(endDate);
+		
+		chartCategoriesShow();
+	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml b/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml
index 0dd6553be140f867bf992e6a21a6eb9170e5ea12..b92658ac87161e1a3727e6214c658fc221b91469 100644
--- a/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml
+++ b/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml
@@ -2,6 +2,7 @@
 
 <?import javafx.geometry.Insets?>
 <?import javafx.scene.control.Accordion?>
+<?import javafx.scene.control.Button?>
 <?import javafx.scene.control.DatePicker?>
 <?import javafx.scene.control.Label?>
 <?import javafx.scene.control.TitledPane?>
@@ -41,6 +42,14 @@
                                        </font>
                                     </Label>
                                     <DatePicker fx:id="datePickerEnd" />
+                                    <Button fx:id="buttonChartCategoriesShow" mnemonicParsing="false" onAction="#chartCategoriesShow">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <HBox.margin>
+                                          <Insets left="15.0" />
+                                       </HBox.margin>
+                                    </Button>
                                  </children>
                                  <HBox.margin>
                                     <Insets left="15.0" />