View Issue Details

IDProjectCategoryView StatusLast Update
0005639SOGoApple Calendar (Mac OS X)public2022-11-18 08:40
Reporterskutter Assigned To 
PrioritynormalSeveritymajorReproducibilityhave not tried
Status newResolutionopen 
PlatformClientOSApple Mac OSOS VersionVentura
Product Version5.7.1 
Summary0005639: CalDAV: Mac OS Calendar unable to find existing SOGo calendars and creates a new one.
Description

Hello everyone

I have a MacBook Pro 2019 with Intel CPU. I'm using SOGo through Mailcow (https://mailcow.email).
Mailcow can generate a .mobileconfig file for each user to automatically add the mailbox as well as the calendar and contacts.
Importing the profile from the mobileconfig results in a new calendar being created on SOGo and existing ones are not recognized. I checked the mobileconfig (you can open them in a text editor), the credentials are correct (I tested them manually) and the host and path are correct, too.
Importing the profile results in the log entries you can see in screenshot 1. The log entries on screenshot 2 are the result of the periodic sync.

Everything worked fine on Mac OS Monterey, the problem only started after updating to Ventura.

Steps To Reproduce
  1. Use mailcow (demo available on https://mailcow.email)
  2. Have a MacBook with Mac OS Ventura
  3. Login to your user on the mailcow management gui.
  4. Download a .mobileconfig file which includes CalDAV/CardDAV (there are some without)
  5. Import the profile
TagsCalDAV, mailcow

Activities

skutter

skutter

2022-11-09 12:49

reporter  

Screenshot 1 (493,372 bytes)
Screenshot 2.png (310,035 bytes)
Christian Mack

Christian Mack

2022-11-10 08:02

developer   ~0016368

Could you provide a .mobileconfig changed to demo.sogo.nu for testeing?

Christopher Zimmer

Christopher Zimmer

2022-11-10 09:21

reporter   ~0016371

I experienced the problem on macOS 13.0 (22A380) using the native calendar.app, but on a custom install of SOGo (Nightly 5.7.1.20221109-1):
The default "personal" calendar does not show up (but work on all other clients) and a new "Calendar" is instead created.

I found the problem: It seems that calendar.app does not like calendars starting with lower case letters (anymore)... and you paths also are lower case calendar names.
If I rename the folder path in the database table "sogo_folder_info" from "/Users/%USERNAME%/Calendar/personal" in c_path to "/Users/%USERNAME%/Calendar/Personal" as well as updating c_path4 from "personal" to "Personal", they show up fine again in caldendar.app

skutter

skutter

2022-11-10 09:40

reporter   ~0016372

I attached the modified mobileconfig. We didn't get the SSL Cert to work though, maybe someone else can get their mac to trust the cert?

mailcow UI.mobileconfig (5,507 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>PayloadContent</key>
    <array>
      <dict>
        <key>EmailAccountDescription</key>
        <string>demo@sogo-demo.de</string>
        <key>EmailAccountType</key>
        <string>EmailTypeIMAP</string>
        <key>EmailAccountName</key>
        <string>DEMO</string>
        <key>EmailAddress</key>
        <string>demo@sogo-demo.de</string>
        <key>IncomingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>IncomingMailServerHostName</key>
        <string>netcup-sogo.de</string>
        <key>IncomingMailServerPortNumber</key>
        <integer>993</integer>
        <key>IncomingMailServerUseSSL</key>
        <true/>
        <key>IncomingMailServerUsername</key>
        <string>demo@sogo-demo.de</string>
                <key>IncomingPassword</key>
        <string>demo</string>
                <key>OutgoingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>OutgoingMailServerHostName</key>
        <string>netcup-sogo.de</string>
        <key>OutgoingMailServerPortNumber</key>
        <integer>465</integer>
        <key>OutgoingMailServerUseSSL</key>
        <true/>
        <key>OutgoingMailServerUsername</key>
        <string>demo@sogo-demo.de</string>
        <key>OutgoingPasswordSameAsIncomingPassword</key>
        <true/>
        <key>PayloadDescription</key>
        <string>Configures email account.</string>
        <key>PayloadDisplayName</key>
        <string>IMAP Account (info@it-service-kutter.de)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.email</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.mail.managed</string>
        <key>PayloadUUID</key>
        <string>196DEC6F-5D24-44B4-BD62-96AE34CD9D06</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PreventAppSheet</key>
        <false/>
        <key>PreventMove</key>
        <false/>
        <key>SMIMESigningUserOverrideable</key>
        <true/>
        <key>SMIMESigningCertificateUUIDUserOverrideable</key>
        <true/>
        <key>SMIMEEncryptByDefaultUserOverrideable</key>
        <true/>
        <key>SMIMEEncryptionCertificateUUIDUserOverrideable</key>
        <true/>
        <key>SMIMEEnableEncryptionPerMessageSwitch</key>
        <true/>
      </dict>
            <dict>
        <key>CalDAVAccountDescription</key>
        <string>demo@sogo-demo.de</string>
        <key>CalDAVHostName</key>
        <string>netcup-sogo.de</string>
        <key>CalDAVPort</key>
        <real>443</real>
        <key>CalDAVPrincipalURL</key>
        <string>/SOGo/dav/demo@sogo-demo.de</string>
        <key>CalDAVUseSSL</key>
        <true/>
        <key>CalDAVUsername</key>
        <string>demo@sogo-demo.de</string>
                <key>CalDAVPassword</key>
        <string>demo</string>
                <key>PayloadDescription</key>
        <string>Configures CalDAV account.</string>
        <key>PayloadDisplayName</key>
        <string>CalDAV (demo@sogo-demo.de)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.CalDAV</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.caldav.account</string>
        <key>PayloadUUID</key>
        <string>C373EFF5-91C6-2779-9B2F-829C38B2E24B</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
      </dict>
      <dict>
        <key>CardDAVAccountDescription</key>
        <string>demo@sogo-demo.de</string>
        <key>CardDAVHostName</key>
        <string>netcup-sogo.de</string>
        <key>CardDAVPort</key>
        <integer>443</integer>
        <key>CardDAVPrincipalURL</key>
        <string>/SOGo/dav/demo@sogo-demo.de</string>
        <key>CardDAVUseSSL</key>
        <true/>
        <key>CardDAVUsername</key>
        <string>demo@sogo-demo.de</string>
                <key>CardDAVPassword</key>
        <string>demo</string>
                <key>PayloadDescription</key>
        <string>Configures CardDAV accounts</string>
        <key>PayloadDisplayName</key>
        <string>CardDAV (demo@sogo-demo.de)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.carddav</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.carddav.account</string>
        <key>PayloadUUID</key>
        <string>554461B9-2F4F-DA62-A2E4-F6AFACA3305C</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
      </dict>
          </array>
    <key>PayloadDescription</key>
    <string>IMAP, CalDAV, CardDAV with application password</string>
    <key>PayloadDisplayName</key>
    <string>demo@sogo-demo.de</string>
    <key>PayloadIdentifier</key>
    <string>de.sogo-demo.demo.appleprofile.mailcowUI</string>
    <key>PayloadOrganization</key>
    <string>mailcow UI</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>C8956C05-7184-F366-76E5-CEA128729C99</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
  </dict>
</plist>
mailcow UI.mobileconfig (5,507 bytes)   
skutter

skutter

2022-11-10 09:46

reporter   ~0016374

Christopher Zimmer how can you do that? Can you explain?

Christopher Zimmer

Christopher Zimmer

2022-11-10 10:17

reporter   ~0016375

For me it was simple as I have phpMyAdmin to access the MySQL database directly.
For the dockerized mailcow installation something similar to the following two commands COULD work (taken from mailcow-reset-admin.sh helper script), but I can not test it, so please be warned:

docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "UPDATE 'sogo_folder_info' SET 'c_path4' = 'Personal' WHERE 'sogo_folder_info'.'c_path' = '/Users/YOUREMAIL/Calendar/personal';"

docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "UPDATE 'sogo_folder_info' SET 'c_path' = '/Users/YOUREMAIL/Calendar/Personal' WHERE 'sogo_folder_info'.'c_path' = '/Users/YOUREMAIL/Calendar/personal';"

You need to replace DBUSER, DBPASS and DBNAME with the values from your mailcow.conf as well as replace YOUREMAIL with the login (I would assume "info@it-service-kutter.de" in your case).
Same then again for the the other calendar 'inbox' in your case.

Christian Mack

Christian Mack

2022-11-10 11:00

developer   ~0016379

I tweaked the mobileconfig to use credentials for sogo1@example.com at demo.sogo.nu.

mailcow UI-2.mobileconfig (5,407 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>PayloadContent</key>
    <array>
      <dict>
        <key>EmailAccountDescription</key>
        <string>sogo1@example.com</string>
        <key>EmailAccountType</key>
        <string>EmailTypeIMAP</string>
        <key>EmailAccountName</key>
        <string>DEMO</string>
        <key>EmailAddress</key>
        <string>sogo1@example.com</string>
        <key>IncomingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>IncomingMailServerHostName</key>
        <string>demo.sogo.nu</string>
        <key>IncomingMailServerPortNumber</key>
        <integer>993</integer>
        <key>IncomingMailServerUseSSL</key>
        <true/>
        <key>IncomingMailServerUsername</key>
        <string>sogo1@example.com</string>
        <key>IncomingPassword</key>
        <string>sogo</string>
        <key>OutgoingMailServerAuthentication</key>
        <string>EmailAuthPassword</string>
        <key>OutgoingMailServerHostName</key>
        <string>demo.sogo.nu</string>
        <key>OutgoingMailServerPortNumber</key>
        <integer>587</integer>
        <key>OutgoingMailServerUseSSL</key>
        <true/>
        <key>OutgoingMailServerUsername</key>
        <string>sogo1@example.com</string>
        <key>OutgoingPasswordSameAsIncomingPassword</key>
        <true/>
        <key>PayloadDescription</key>
        <string>Configures email account.</string>
        <key>PayloadDisplayName</key>
        <string>IMAP Account (sogo1@example.com)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.email</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.mail.managed</string>
        <key>PayloadUUID</key>
        <string>196DEC6F-5D24-44B4-BD62-96AE34CD9D06</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PreventAppSheet</key>
        <false/>
        <key>PreventMove</key>
        <false/>
        <key>SMIMESigningUserOverrideable</key>
        <true/>
        <key>SMIMESigningCertificateUUIDUserOverrideable</key>
        <true/>
        <key>SMIMEEncryptByDefaultUserOverrideable</key>
        <true/>
        <key>SMIMEEncryptionCertificateUUIDUserOverrideable</key>
        <true/>
        <key>SMIMEEnableEncryptionPerMessageSwitch</key>
        <true/>
      </dict>
      <dict>
        <key>CalDAVAccountDescription</key>
        <string>sogo1@example.com</string>
        <key>CalDAVHostName</key>
        <string>demo.sogo.nu</string>
        <key>CalDAVPort</key>
        <real>443</real>
        <key>CalDAVPrincipalURL</key>
        <string>/SOGo/dav/sogo1</string>
        <key>CalDAVUseSSL</key>
        <true/>
        <key>CalDAVUsername</key>
        <string>sogo1@example.com</string>
        <key>CalDAVPassword</key>
        <string>sogo</string>
        <key>PayloadDescription</key>
        <string>Configures CalDAV account.</string>
        <key>PayloadDisplayName</key>
        <string>CalDAV (sogo1@example.com)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.CalDAV</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.caldav.account</string>
        <key>PayloadUUID</key>
        <string>C373EFF5-91C6-2779-9B2F-829C38B2E24B</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
      </dict>
      <dict>
        <key>CardDAVAccountDescription</key>
        <string>sogo1@example.com</string>
        <key>CardDAVHostName</key>
        <string>demo.sogo.nu</string>
        <key>CardDAVPort</key>
        <integer>443</integer>
        <key>CardDAVPrincipalURL</key>
        <string>/SOGo/dav/sogo1</string>
        <key>CardDAVUseSSL</key>
        <true/>
        <key>CardDAVUsername</key>
        <string>sogo1@example.com</string>
        <key>CardDAVPassword</key>
        <string>sogo</string>
        <key>PayloadDescription</key>
        <string>Configures CardDAV account.</string>
        <key>PayloadDisplayName</key>
        <string>CardDAV (sogo1@example.com)</string>
        <key>PayloadIdentifier</key>
        <string>de.sogo-demo.demo.appleprofile.mailcowUI.carddav</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.apple.carddav.account</string>
        <key>PayloadUUID</key>
        <string>554461B9-2F4F-DA62-A2E4-F6AFACA3305C</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
      </dict>
    </array>
    <key>PayloadDescription</key>
    <string>IMAP, CalDAV, CardDAV with application password</string>
    <key>PayloadDisplayName</key>
    <string>sogo1@example.com</string>
    <key>PayloadIdentifier</key>
    <string>de.sogo-demo.demo.appleprofile.mailcowUI</string>
    <key>PayloadOrganization</key>
    <string>mailcow UI</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>C8956C05-7184-F366-76E5-CEA128729C99</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
  </dict>
</plist>
mailcow UI-2.mobileconfig (5,407 bytes)   
Christopher Zimmer

Christopher Zimmer

2022-11-10 13:12

reporter   ~0016380

The mobileconfig is not working for me, but if I add the demo.sogo.nu with the usual settings directly, the same happens there as well: 'Personal' is not visible and a new 'Calendar' is created.

Christopher Zimmer

Christopher Zimmer

2022-11-10 15:01

reporter   ~0016381

I also enabled all kind of logging in Calendar.app, but can't see any errors.... for my accounts with 'Personal' the calendar is created, but for the demo.sogo.nu it shows no errors, but only the one for 'inbox' and the newly created are are visible in the log....

@skutter
The 'inbox' renaming is not necessary/possible (as its a built-in one).

WARNING: Caveat of renaming both c_path and c_path4: WebUI can not create new appointments, as 'personal' seems hard-coded, so the call to '/SOGo/so/USERNAME/Calendar/personal/newguid' will receive a 404 as it should be now '/SOGo/so/USERNAME/Calendar/Personal/newguid'.
For me it is ok as I am not using the Web based UI. But of course may break things in other areas as well...

Christian Mack

Christian Mack

2022-11-11 10:30

developer   ~0016383

Automatic entry and acceptance of invites from other SOGo users will fail with renamed personal calendar.

thoso

thoso

2022-11-18 08:40

reporter   ~0016396

It seems to still working when the OS got upgraded from Monterey to Ventura. As soon as you resetup the calendar in Calendar app or reinstall the computer from scratch the issue is reproduceable. Even if you use the new created calendar sync doesnt work correctly. Your appoints don't get synced when you import the ics file locally. Sometimes I get http 400 as an error message.

A workaround for not so big companies may be to export the actual calendar to an ics-file. Setup Calendar and let create the alternate calendar in SOGo. Then import the ics-file to the new calendar in the web gui. Then syncing between Calendar and SOGo works. But then you have to redo all the subscriptions if your colleges use shared calendars.

Some googleling yesterday reveiled some Exchange-server may also have problems with the new macOS and Calendar. It looks like Apple changed something in WebDAV and didnt tell the world.

Issue History

Date Modified Username Field Change
2022-11-09 12:49 skutter New Issue
2022-11-09 12:49 skutter Tag Attached: CalDAV
2022-11-09 12:49 skutter Tag Attached: mailcow
2022-11-09 12:49 skutter File Added: Screenshot 1
2022-11-09 12:49 skutter File Added: Screenshot 2.png
2022-11-10 08:02 Christian Mack Note Added: 0016368
2022-11-10 09:21 Christopher Zimmer Note Added: 0016371
2022-11-10 09:40 skutter Note Added: 0016372
2022-11-10 09:40 skutter File Added: mailcow UI.mobileconfig
2022-11-10 09:46 skutter Note Added: 0016374
2022-11-10 10:17 Christopher Zimmer Note Added: 0016375
2022-11-10 11:00 Christian Mack Note Added: 0016379
2022-11-10 11:00 Christian Mack File Added: mailcow UI-2.mobileconfig
2022-11-10 13:12 Christopher Zimmer Note Added: 0016380
2022-11-10 13:12 Christopher Zimmer File Added: Screenshot 2022-11-10 at 14.11.09.png
2022-11-10 15:01 Christopher Zimmer Note Added: 0016381
2022-11-11 10:30 Christian Mack Note Added: 0016383
2022-11-18 08:40 thoso Note Added: 0016396