diff --git a/appointment-import/src/main/java/smash/appointment/parse/XlsxCalendarProcessor.java b/appointment-import/src/main/java/smash/appointment/parse/XlsxCalendarProcessor.java
index 32ea800dcb6f68ccbd2e89d9dfc9a28c79412638..8e447a9cf99d7a365814ab2b9169a048090a90c4 100644
--- a/appointment-import/src/main/java/smash/appointment/parse/XlsxCalendarProcessor.java
+++ b/appointment-import/src/main/java/smash/appointment/parse/XlsxCalendarProcessor.java
@@ -50,7 +50,7 @@ public class XlsxCalendarProcessor {
 
 	int[]	dayColumns						 = new int[] { 3, 4, 5, 6, 7 };
 
-	int[]	weekStartRows					 = new int[] { 5, 23, 41, 60, 78, 96 };
+	int[]	weekStartRows					 = new int[] { 5, 23, 41, 59, 77, 95 };
 
 	int		hourColum							 = 0;
 	int		dayOfMonthRowOffset		 = 0;
@@ -67,7 +67,12 @@ public class XlsxCalendarProcessor {
 			Row weekRow = sheet.getRow(weekOffset + dayOfMonthRowOffset);
 			for (int dayColumnOffset : dayColumns) {
 				Cell dayCell = weekRow.getCell(dayColumnOffset);
-				String dayOfMonth = ((int) dayCell.getNumericCellValue()) + "";
+				String dayOfMonth = "0";
+				if (dayCell.getCellTypeEnum().equals(CellType.NUMERIC)) {
+					dayOfMonth = ((int) dayCell.getNumericCellValue()) + "";
+				} else {
+					dayOfMonth = dayCell.getStringCellValue();
+				}
 				if (dayOfMonth.length() == 1) {
 					dayOfMonth = "0" + dayOfMonth;
 				}
@@ -91,13 +96,18 @@ public class XlsxCalendarProcessor {
 
 						Cell queryCell = hourRow.getCell(dayColumnOffset);
 						if (queryCell != null) {
-							String query = queryCell.getStringCellValue();
-
-							if (query != null && !query.isEmpty()) {
-								AppointmentEntry entry = parser.parseAppointment(query, hour);
-								entry.setDay(day);
-
-								result.add(entry);
+							if (queryCell.getCellTypeEnum().equals(CellType.STRING)) {
+								String query = queryCell.getStringCellValue();
+
+								if (query != null && !query.isEmpty()) {
+									AppointmentEntry entry = parser.parseAppointment(query, hour);
+									entry.setDay(day);
+
+									result.add(entry);
+								}
+							} else if (!queryCell.getCellTypeEnum().equals(CellType.BLANK)) {
+								logger
+										.warn("Skipping cell: " + queryCell.getAddress() + ", " + queryCell.getSheet().getSheetName() + ", type: " + queryCell.getCellTypeEnum());
 							}
 						}
 					}
diff --git a/appointment-import/testFiles/calendarExample.xlsx b/appointment-import/testFiles/calendarExample.xlsx
index 516d8e548c74f5a7b2e1050b80918e0acfe80fc8..e6ef090b5834afa3e0a9a414c96c3a37c8ae253f 100644
Binary files a/appointment-import/testFiles/calendarExample.xlsx and b/appointment-import/testFiles/calendarExample.xlsx differ