CalDAV sync for shared calendar?
Problem reported by Helge - 9/1/2025 at 12:15 AM
Submitted
Hi there!
I am an end user for SmarterMail and as the primary admin I have set up a shared calendar for a user group ("family"), which has 'manage' capabilities set. All family units are members of this group and a single user (my main account) was shared the calendar directly, in addition to the group. Local apps with various deviced (I tried iOS calendar, macOS calendar, eM client & Thunderbird) are connected via CalDAV to this shared calendar.
My problem: When I create an event on this shared calendar, it is propagated to the other devices, as it should be. However, when I delete this event on a device, this change is not synched back to the shared calendar or even reappears immediately (in eM's case). No errors in the logs (where I could find them, which was only eM & thunderbird). 
Any idea what could cause this and how to change this behaviour? 'manage' should include read/write acces and deletions, correct? SmarterMail is version "SmarterMail Enterprise, Build 9371 (Aug 28, 2025)"                    
Thanks!
Douglas Foster Replied
We quit using CalDav once SmarterMail supported MAPI and we got rid of Office 2010 and 2013.   But our experience with it was pretty good.

I am a little confused by your comments about your setup, so the general principle that I would pursue is to simplify as much as possible.   The downside is that if this requires reconfiguration, there is no easy way to move entries from an old calendar to a new one.

We tried to use only domain-shared calendars.   Some employees share personal calendars, but that became a problem as soon as the person who created it changed roles or terminated employment.   You hopefully will never have that problem with a family calendar, so maybe personal calendars could work also, but I would stick to domain-shared calendars.   Then I would share to each account as individuals, rather than a group/  This is to ensure that the group membership is not confusing CalDav.  If you stick with a group assignment, I would ensure that nobody is authorized twice, once as a group member and again as an individual.

Helge Replied
Sorry for the late answer, but I have now tried again with a domain-shared calendar (at least a calendar with 'everyone' marked as being able to 'manage'. However, I found that an event created somewhere can be moved, edited, renamed by different members but not deleted. I tried with several CalDAV frontends (Calengoo, which has the most details about CalDAV events, Rainlendar, iOS/macOS calendar, eM client) and it's always the same behaviour: With a shared calendar, as soon as you delete the event, it is immediately repopulated and the deletion does not propagate. Apparently (see below for a log snippet) SM responds to the CalDAV request with an error, which is why the event is not deleted.

Is this something known or should I open a ticket with SmarterTools?

The log shows the following:
INFO: CalenGooRequest: httpx://eu1.workspace.org/webdav/calendars/domain.org/_/cal-ID.ics
Sep 11, 2025 11:02:45 AM com.calengoo.common.network.b a
WARNING: Error: <?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="httpx://smartermail/ns">
  <s:exception>SmarterMail\DAV\Exception\NotAuthenticated</s:exception>
  <s:message>Resource was Not Found.</s:message>
</d:error>
Addendum: I quickly hosted a local SmarterMail instance where I have admin rights and can see the logs and it exhibits the exact same behaviour. The logs are as follows:
[2025.09.11] 13:04:54.128 [] Object reference not set to an instance of an object.
[2025.09.11]    at MailService.Repositories.DomainRepository.UpdateFolderSize(String accountName, Int64 folderId, Int64 folderSize)
[2025.09.11]    at MailService.Repositories.DomainRepository.AppointmentRemoveMultipleByUid(String currentUser, String ownerName, Int64 folderId, IEnumerable`1 uids)
[2025.09.11]    at MailService.Repositories.DomainRepository.AppointmentRemoveByUid(String currentUser, String ownerName, Int64 folderId, String uid)
[2025.09.11]    at SmarterMail.Protocols.WebDAV.WebDavUser.DeleteAppointment(String accountName, Int64 folderId, String uid)
[2025.09.11]    at SmarterMail.Protocols.WebDAV.Resources.CalendarAppointmentResource.ExecuteDelete(IWebDavUser callingUser, WebDavCommandRequest request, PathTokenizer segments)
[2025.09.11]    at SmarterMail.Protocols.WebDAV.Handlers.CalendarAppointmentHandler.ExecuteDelete()
[2025.09.11]    at SmarterMail.Protocols.WebDAV.Commands.DeleteCommand.Execute()
[2025.09.11]    at MailService.Remoting.Mail.WebDAVProcessCommandStatic(WebDavHandlerState state, WebDavCommandRequest request) 

Reply to Thread

Enter the verification text