Thanks for raising this forum issue. This is definitely something which should be improved in beorg. The problem is with how some of the sync process works, in that it looks only at the files - and if a file is in a directory which doesn't exist it then creates that directory. However if files are moved on the server then beorg doesn't properly assess whether or not local directories should be removed. I'll need to give this some thought.
Just an update to let you know that I have now switched back to a standard directory sync instead of WebDav since it was to slow... I was having a sync progress at every start of the application and that wouldn't work completely (got an error) and now I've moved to a directory that sync using Syncthing and things seems to be working a lot better (fast at startup and directories are updated correctly)
Thanks for the update. This may well help other users. I too have found WebDAV can be quite slow when syncing lots of files.
I've switched to a WebDav sync method since I have more space in a WebDav directory than I have in iCloud. Things seems to be working (slower since there's now a sync progress when I open beorg, but that's not the problem).
I have added my WebDav directory and I did a first sync which worked great. However, I've decided to change my directory structure and moved some org files from directories to other directories. I then deleted some directories that I'm not using anymore and I see this is reflected in my other application, but in beorg all the directories are kept even if they are empty inside (no org file). Is this the wanted behaviour? Is there a way to make beorg update it's directory structure automatically when a directory is deleted from another application that has access to the WebDav directory?