Issue Description
When a CalendarEvent has useDefaultAlerts: true, Stalwart exposes event-level alerts as active CalDAV VALARMs in addition to the calendar defaults.
JMAP Calendars says that when default alerts are enabled, the event’s alerts property is ignored except for acknowledgement/snooze state.
For example, I have an event with an old 30-minute event alert and a 10-minute calendar default. JMAP correctly treats only the 10-minute alert as effective, but a CalDAV client receives and fires both.
Current main appears to retain event alerts during JSCalendar → iCalendar conversion, then append defaults via default_alert_to_ical.
Expected Behavior
With useDefaultAlerts: true, CalDAV should expose only the effective calendar defaults, plus any necessary acknowledgement/snooze state.
Actual Behavior
CalDAV exposes both the inactive event alert and the calendar default as active VALARMs.
Reproduction Steps
- Set a calendar default alert for 10 minutes before.
- Create an event with
useDefaultAlerts: trueand a 30-minute event alert. - Fetch it through CalDAV.
- Observe both 30-minute and 10-minute
VALARMs.
Relevant Log Output
N/A
Stalwart Version
v0.16.x
Installation Method
Built from source
Database Backend
RocksDB
Blob Storage
RocksDB
Search Engine
Internal
Directory Backend
Internal
I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
on
I have searched this support forum (open and closed topics) and confirm this is not a duplicate.
on
I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.
on