Skip to content

Commit d1baee8

Browse files
Approved changes.
1 parent c4dd831 commit d1baee8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Helpers.gs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,34 @@ function processEventInstance(recEvent){
941941
* If removePastEventsFromCalendar is set to false, events that have taken place will not be removed.
942942
*/
943943
function processEventCleanup(){
944+
// When an instance of a recurring event is deleted, we need to track it
945+
// First, let's track the existing recurring event instances from the calendar
946+
var existingRecurringInstances = new Set();
947+
948+
for (var i = 0; i < calendarEvents.length; i++) {
949+
if (calendarEvents[i].recurringEventId && calendarEvents[i].extendedProperties &&
950+
calendarEvents[i].extendedProperties.private && calendarEvents[i].extendedProperties.private["rec-id"]) {
951+
existingRecurringInstances.add(calendarEvents[i].extendedProperties.private["rec-id"]);
952+
}
953+
}
954+
955+
// Check if any recurring event instance in our ICS data is missing from the calendar
956+
var deletedEventsJson = PropertiesService.getScriptProperties().getProperty('manuallyDeletedEvents');
957+
var deletedEvents = deletedEventsJson ? JSON.parse(deletedEventsJson) : {};
958+
var now = new Date().getTime();
959+
960+
for (var i = 0; i < icsEventsIds.length; i++) {
961+
if (icsEventsIds[i].includes("_")) { // This is a recurring event instance
962+
if (!existingRecurringInstances.has(icsEventsIds[i])) {
963+
// This recurring event instance exists in ICS but not in calendar - mark as deleted
964+
deletedEvents[icsEventsIds[i]] = now;
965+
}
966+
}
967+
}
968+
969+
// Store updated deleted events list
970+
PropertiesService.getScriptProperties().setProperty('manuallyDeletedEvents', JSON.stringify(deletedEvents));
971+
944972
for (var i = 0; i < calendarEvents.length; i++){
945973
var currentID = calendarEventsIds[i];
946974
var feedIndex = icsEventsIds.indexOf(currentID);

0 commit comments

Comments
 (0)