Another welcome to the forums,
For privacy we share only free-busy info by default. ZWC: New Event > Schedule > type names OR visit a REST URL like http:// zimbraserver.domain.com/home/username?fmt=freebusy to display an aggregate HTML calendar of the user’s free-busy data. (Of course you can always choose to select “exclude this calendar when reporting free/busy times” on your calendar properties if you wish.)
So you have permissions & mountpoints. You can blanket permission to all users in a domain but not actually mount the calendars in their accounts, then they could right-click > 'link to shared calendar' if they should want to add someone's.
Examples:
zmmailbox -z -m
theshare@domain.com modifyFolderGrant /Folder account
user@domain.com rwix
r = viewer rights
rwixd = manager rights
You could do any of the following [account <name> |group <name> |domain <name> |all |public| guest <email> <password>] followed by the permissions like r, rw, rwix, rwixd, rwixda, none, etc.
(r)ead - search, view overviews and items
(w)rite - edit drafts/contacts/notes, set flags
(i)nsert - copy/add to directory, create subfolders
action (x) - workflow actions, like accepting appointments
(d)elete - delete items and subfolders, set \Deleted flag
(a)dminister - delegate admin and change permissions
The createMountpoint command is commonly used after this:
zmmailbox z -m
user@domain.com createMountpoint --view appointment "/Vacation Calendar"
vacationcal@domain.com /VacationDates
A
share@domain.com or
sharemonkey@domain.com for a common addressbook is what a lot of people do.
What Klug is talking about - vote for
Bug 29697 - External (non-Zimbra) addresses in GAL though it might get duped like the below:
Bug 18603 - GAL should have the ability to contain entries that are not Zimbra user (private) &
Bug 21879 - Add non-Zimbra email addresses to GAL >
Bug 14531 - GAL via contacts folders with sorting, browsing and real sync