Не так давно я писал статью о том, как добавить календарь Exchange в календарь Google.
Google Calendar — добавляем календарь из Exchange
Если вкратце, то там задача разбивается на два этапа:
- Открыть общий доступ к календарю Outlook в формате iCalendar (ICS).
- Добавить календарь в формате iCalendar (ICS) в Google.
И всё работает, но есть одно большое НО. События обновляются раз в сутки, поэтому использовать такой календарь для "горячих" встреч не получится. Можно что-нибудь пропустить. Новое событие в календаре Exchange может появиться только через 24 часа.
Это печально, и даже понятно. Google переманивает корпоративных пользователей в Google Workspace, где календарь синхронизируется чаще. Но удовольствие платное.
Как сделать так, чтобы было бесплатно и быстро? - спросите вы меня. Легко! - отвечу я. Будем программировать в Google Apps Script. Ну как, программировать. Всё уже запрограммировано за нас, воспользуемся GAS-ICS-Sync:
https://github.com/derekantrican/GAS-ICS-Sync
GAS-ICS-Sync можно расшифровать так: Google Applications Script for Internet Calendaring and Scheduling Syncronisation. Что в переводе на кириллический означает: Не Дам Денег Гуглу За Синхронизацию Календаря или попросту НеДаДеГуЗаСиК.
Из этого чудо-проекта мы скачиваем 5 файлов:
- Code.gs
- Helpers.gs
- ical.js.gs
- tzid.gs
- appsscript.json
Переходим к скриптам Google:
Можно также в Google Диске Создать → Ещё → Google Apps Script.
Указываем название проекта, например, GAS-ICS-Sync.
Добавляем файлы в новый проект. Файлы Code.gs, Helpers.gs, ical.js.gs, tzid.gs добавляем через + Скрипт в редакторе. После чего указываем название файла и копируем соответствующее содержимое в поле справа для каждого файла.
Переходим в настройки проекта и включаем галку "Показывать файл манифеста appsscript.json в редакторе".
Возвращаемся в редактор, там добавился файл appsscript.json, вставляем в него содержимое из скачанного файла.
Добавляем сервисы через Сервисы +.
Добавляем Google Calendar API. Идентификатор не меняем!
Добавляем Tasks API. Идентификатор не меняем!
Переходим в редакторе на файл Code.gs, редактируем раздел настроек.
Указываем здесь ссылки на свои календари и их названия. Указываем настройки синхронизации, у меня настроено на один раз в 10 минут.
Выбираем install и нажимаем Выполнить.
Попросят авторизоваться. Инструкцию по шагам авторизации можно посмотреть здесь:
https://youtu.be/_5k10maGtek?t=1m22s
Теперь каждые 10 минут будет запускаться скрипт синхронизации календарей. Если нужно только один раз синхронизировать календари, то вместо install можно выполнить startSync. Uninstal, соответственно, остановит синхронизацию и удалит импортированные календари.
Новые календари появятся в разделе "Мои календари". У меня скрипт уже работает год без нареканий.
Ссылки
https://github.com/derekantrican/GAS-ICS-Sync/wiki/Setting-up-the-script-manually
https://github.com/derekantrican/GAS-ICS-Sync
Источник:
https://internet-lab.ru/google_calendar_exchange_fast
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.