diff --git a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java index 6b434b8585e07a01cf491f4d7c59d3584ef5e58d..d302b09cf4e2eeb305f1d4995549a7554479982e 100644 --- a/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java +++ b/src/main/java/org/olat/commons/calendar/manager/ICalFileCalendarManager.java @@ -354,7 +354,7 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea @Override public boolean persistCalendar(Kalendar kalendar) { Calendar calendar = buildCalendar(kalendar); - boolean success = writeCalendarFile(calendar,kalendar.getType(), kalendar.getCalendarID()); + boolean success = writeCalendarFile(calendar, kalendar.getType(), kalendar.getCalendarID()); calendarCache.update(getKeyFor(kalendar.getType(), kalendar.getCalendarID()), kalendar); return success; } @@ -1204,7 +1204,9 @@ public class ICalFileCalendarManager implements CalendarManager, InitializingBea } reloadedCal.removeEvent(kalendarEvent); // remove old event - reloadedCal.addEvent(kalendarEvent); // add changed event + // clone the event to initialize the immutable date used to control moving events + KalendarEvent clonedEvent = getKalendarEvent(getVEvent(kalendarEvent)); + reloadedCal.addEvent(clonedEvent); // add changed event boolean successfullyPersist = persistCalendar(reloadedCal); // inform all controller about calendar change for reload