Функцию управления календарём можно поручить одному человеку. Это будет его функция (роль), или одна из его функций. Например, это может быть project manager.
В эту схему идеально вписывается гугл, да и вообще любой публичный календарь. Даже просто сайт в сети. Админ создает - остальные читают.
Календарь для каждого сотрудника в этом календаре, то есть, он бы смог создавать события в календаре (например, когда он отсутствует в офисе), остальные могли бы это видеть, но не изменять
Это не совсем целевое назначение календаря. В моем понимании календарь используется для общественных событий. Даже если это семья из двух человек, в календарь идут совместные мероприятия и встречи, а не личные дела (даже если они кого-то могут касаться). Да и как вы себе это представляете? Будет создано событие "отсутствия сотрудника" на целый день в течение 7 дней. Как по мне, крайне не удобный формат.
Тогда можно посмотреть в сторону тупо Гугл Таблиц. Каждому сотруднику - своя вкладка. Или своя ячейка. Но, повторюсь, этим должен заниматься кто-то типа ПМ или секретаря, которому все скидывают свои планы, занятость и прочее, а он уже вписывает в табличку. А не каждый сам про себя пишет. Хотя бы потому, что кто-нибудь обязательно забудет. А задача ответственного будет следить за порядком, опрашивать, и в целом разгрузить других людей от этой бюрократии, чтобы им проще и комфортнее было работать.