diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
index 12a9c98..35ea873 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
@@ -187,9 +187,9 @@
 			Date tmpDate = validFrom;
 			int phase = 1;
 
-			while (tmpDate.getTime() <= validTo.getTime()) {
-				List<UserInStandbyGroup> lsUserInGroup = uisgRepository
-						.findUserForInterval(standbyBlueprintDto.getStandbyGroupId(), tmpDate, tmpDate);
+			while (tmpDate.getTime() < validTo.getTime()) {
+				List<UserInStandbyGroup> lsUserInGroup = uisgRepository.findUserForInterval(
+						standbyBlueprintDto.getStandbyGroupId(), tmpDate, DateHelper.getEndOfDay(tmpDate));
 				if (lsUserInGroup != null && !lsUserInGroup.isEmpty()) {
 					if (resultMap.containsKey(phase)) {
 						PlanningPhaseDto dto = resultMap.get(phase);
@@ -198,11 +198,13 @@
 						} else {
 							phase++;
 							LOGGER.debug("Add phase " + phase);
-							resultMap.put(phase, new PlanningPhaseDto(dto.getEndDate(), tmpDate, lsUserInGroup));
+							resultMap.put(phase,
+									new PlanningPhaseDto(tmpDate, DateHelper.getEndOfDay(tmpDate), lsUserInGroup));
 						}
 					} else {
 						LOGGER.debug("Add phase " + phase);
-						resultMap.put(phase, new PlanningPhaseDto(tmpDate, tmpDate, lsUserInGroup));
+						resultMap.put(phase,
+								new PlanningPhaseDto(tmpDate, DateHelper.getEndOfDay(tmpDate), lsUserInGroup));
 					}
 				}
 				tmpDate = DateHelper.addDaysToDate(tmpDate, 1);
@@ -758,6 +760,7 @@
 			}
 			// refresh last found date
 			lastDate = entry.getValue().getEndDate();
+			lastDate = DateHelper.addDaysToDate(lastDate, 1);
 			lastDate = DateHelper.getStartOfDay(lastDate);
 		}
 		return lsResults;
