[Bug] All-day events created in Bulwark are not synchronized as all-day events in macOS Calendar

Issue Description

When creating an all-day event from the Bulwark web interface, the event is successfully synchronized to macOS Calendar through CalDAV.

However, the event is not recognized as an all-day event on macOS. Instead, it appears as a regular timed event.

Expected Behavior

The event should appear as an all-day event in Apple Calendar.

Actual Behavior

The event is synchronized successfully, but Apple Calendar displays it as a normal event instead of an all-day event.

Reproduction Steps

  1. Open the Bulwark calendar web interface.
  2. Create a new event and mark it as “All Day”.
  3. Save the event.
  4. Wait for synchronization with Apple Calendar on macOS.
  5. Open the event in Apple Calendar.

Stalwart Version

v0.16.x

Installation Method

Docker

Database Backend

PostgreSQL

Blob Storage

S3-compatible

Search Engine

Meilisearch

Directory Backend

OIDC

Additional Context

Environnement

  • Bulwark version: 1.7.3
  • Stalwart Mail Server version: 0.16.7
  • macOS: 26.5
  • Calendar client: Apple Calendar
  • Synchronization protocol: CalDAV
  • Firefox : 151.0.2

Additional information

  • Events created directly in Apple Calendar as all-day events behave correctly.
  • Synchronization itself works correctly.

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

Let me research this issue to understand how all-day events are handled in the Bulwark web UI and the CalDAV/iCalendar layer.

The Stalwart WebUI (webui repo) is the server administration interface – Bulwark is a separate, community-built calendar/contacts frontend, not maintained in the Stalwart repositories. This means this issue is in Bulwark’s codebase, not Stalwart’s.

The webui (Stalwart’s own admin interface) does not appear to have a calendar/Bulwark component at all – “Bulwark” is a separate third-party CalDAV/CardDAV web client, not part of Stalwart itself. This is important context for this bug report.

Since the iCalendar data is stored verbatim by Stalwart as received from Bulwark, the correct place to investigate is whether Bulwark is generating the correct DTSTART;VALUE=DATE format (without a time component) for all-day events, or whether it is writing DTSTART with a DATE-TIME value. Stalwart’s CalDAV server passes iCalendar objects through to clients as-is, so if the data Bulwark stores is malformed for an all-day event, macOS Calendar will reflect that.

We don’t have a Bulwark to test this. To diagnose we need the JSCalendar event created by Bulwart and the iCalendar returned over CalDAV.

Thanks
I post this issue on bulwark support as well : [Bug] All-day events created in Bulwark are not synchronized as all-day events in macOS Calendar · Issue #392 · bulwarkmail/webmail · GitHub