Reminders.

This commit is contained in:
Burak Kaan Köse
2026-01-01 15:02:40 +01:00
parent 3b485dc1fe
commit a64627e7d6
14 changed files with 420 additions and 24 deletions
@@ -223,7 +223,37 @@ public class GmailChangeProcessor : DefaultChangeProcessor, IGmailChangeProcesso
}
}
// Prepare reminders list from Gmail event
List<Reminder> reminders = null;
if (calendarEvent.Reminders?.Overrides != null && calendarEvent.Reminders.Overrides.Count > 0)
{
reminders = new List<Reminder>();
foreach (var reminderOverride in calendarEvent.Reminders.Overrides)
{
if (reminderOverride.Minutes.HasValue)
{
var durationInSeconds = reminderOverride.Minutes.Value * 60; // Convert minutes to seconds
var reminderType = reminderOverride.Method switch
{
"email" => CalendarItemReminderType.Email,
_ => CalendarItemReminderType.Popup
};
reminders.Add(new Reminder
{
Id = Guid.NewGuid(),
CalendarItemId = calendarItem.Id,
DurationInSeconds = durationInSeconds,
ReminderType = reminderType
});
}
}
}
await CalendarService.CreateNewCalendarItemAsync(calendarItem, attendees);
// Save reminders separately
await CalendarService.SaveRemindersAsync(calendarItem.Id, reminders).ConfigureAwait(false);
}
else
{
@@ -255,6 +285,36 @@ public class GmailChangeProcessor : DefaultChangeProcessor, IGmailChangeProcesso
// Update the event properties.
}
// Prepare reminders list from Gmail event for update
List<Reminder> reminders = null;
if (calendarEvent.Reminders?.Overrides != null && calendarEvent.Reminders.Overrides.Count > 0)
{
reminders = new List<Reminder>();
foreach (var reminderOverride in calendarEvent.Reminders.Overrides)
{
if (reminderOverride.Minutes.HasValue)
{
var durationInSeconds = reminderOverride.Minutes.Value * 60; // Convert minutes to seconds
var reminderType = reminderOverride.Method switch
{
"email" => CalendarItemReminderType.Email,
_ => CalendarItemReminderType.Popup
};
reminders.Add(new Reminder
{
Id = Guid.NewGuid(),
CalendarItemId = existingCalendarItem.Id,
DurationInSeconds = durationInSeconds,
ReminderType = reminderType
});
}
}
}
// Save reminders
await CalendarService.SaveRemindersAsync(existingCalendarItem.Id, reminders).ConfigureAwait(false);
}
// Upsert the event.