Облако Microsoft 365: как устроена синхронизация календарей
Статья описывает, как устроена синхронизация броней UnSpot с календарями в облаке Microsoft 365 — что переносится в календарь и обратно, как быстро приходят изменения, что происходит при пересечении броней и чем отличаются два способа подключения: под учётной записью Microsoft и через приложение Microsoft Entra. Для локального сервера Exchange механика другая — см. статью «Локальный Exchange: как устроена синхронизация календарей».
Общая схема
UnSpot обращается к календарям Microsoft 365 через Microsoft Graph. Синхронизация двусторонняя и работает по событию, а не по расписанию:
- Из UnSpot в календарь. Когда сотрудник бронирует переговорную, UnSpot сразу создаёт встречу в календаре этой комнаты. Изменение и удаление брони так же сразу уходят в календарь.
- Из календаря в UnSpot. Когда встречу с этой переговорной создают в Outlook или другом клиенте, Microsoft присылает UnSpot уведомление, и UnSpot создаёт соответствующую бронь.
При первом подключении календаря UnSpot загружает события за окно от семи месяцев назад до шести месяцев вперёд. События вне этого окна в первую загрузку не попадают. Дальше UnSpot запрашивает у Microsoft только изменения — полная выгрузка больше не повторяется.
Что уезжает из брони в событие
| Поле брони UnSpot | Куда попадает в событии | Оговорки |
|---|---|---|
| Начало и конец | время события | в часовом поясе офиса; если он не задан — часовой пояс компании |
| Название брони | тема события | — |
| Ссылка на встречу и комментарий | описание события | склеиваются в один текст: сначала ссылка, затем комментарий |
| Участники | участники события | передаются только адреса электронной почты; деление на обязательных и необязательных не переносится |
| Признак приватной брони | уровень конфиденциальности события | обычная бронь — «Обычная», приватная — «Личное» |
| Повторяемость | правило повторения события | переносится при создании |
При изменении брони в календарь уходит не всё, что уходило при создании. Обновляются тема, время, состав участников и уровень конфиденциальности. Правило повторения и описание при обновлении в календарь не отправляются — если вы поменяли в UnSpot комментарий или периодичность у уже созданной брони, в календаре останется прежнее значение.
Что приходит из события в бронь
| Поле события | Что становится в UnSpot | Оговорки |
|---|---|---|
| Тема | название брони | если тема пустая, бронь называется Engaged |
| Начало и конец | время брони | — |
| Организатор | организатор брони | — |
| Уровень конфиденциальности | признак приватной брони | всё, кроме «Обычная», делает бронь приватной |
| Участники | участники брони | — |
| Правило повторения | повторяющаяся бронь | обрабатывается серия целиком |
| Отмена встречи | бронь удаляется | отменённая встреча и отклонённое приглашение обрабатываются одинаково |
Изменение отдельного экземпляра повторяющейся встречи в UnSpot не переносится. Синхронизация обрабатывает серию целиком: если в Outlook перенести или удалить одну встречу из цепочки, в UnSpot цепочка останется прежней.
Что не переносится ни в одну сторону
- Место встречи (поле «Расположение» в Outlook) — переговорная в UnSpot определяется календарём, в который попало событие, а не текстом в этом поле.
- Признак «весь день». Событие на весь день превращается в бронь с конкретным временем начала и конца.
- Описание события. Текст встречи из календаря в описание брони не переносится — ни целиком, ни выжимкой. В обратную сторону описание уходит: комментарий брони и ссылка на встречу попадают в тело события.
- Категории, признак онлайн-встречи, статус занятости («Занят», «Под вопросом» и прочие).
- Вложения и текст форматированием — описание переносится обычным текстом.
Как приходят изменения из календаря
При подключении календаря UnSpot оформляет у Microsoft подписку на уведомления о созданных, изменённых и удалённых событиях этого календаря. Дальше:
- Microsoft присылает уведомление, что в календаре что-то поменялось. Само содержимое изменений в уведомлении не передаётся.
- UnSpot ставит обработку в очередь с небольшой задержкой — порядка пяти секунд. Это сглаживает серии уведомлений, когда в календаре меняют сразу несколько встреч.
- Затем UnSpot запрашивает у Microsoft только изменения с момента прошлой сверки и применяет их к броням.
Срок жизни подписки — около 70 часов, после чего её нужно продлевать. Для календарей, подключённых под учётной записью Microsoft, продление выполняется автоматически. Для календарей, подключённых через приложение Entra, есть ограничение — см. раздел ниже.
Два способа подключения и чем они отличаются
Всё описанное выше одинаково для обоих облачных вариантов: поля, направления, окно первичной загрузки, механика уведомлений. Различия — в том, от чьего имени UnSpot обращается к календарю и как этот календарь находится.
Где каждый способ живёт в интерфейсе: подключение через приложение — карточкой в разделе «Синхронизация календарей», подключение под учётной записью — плиткой «Cloud Microsoft» в окне календаря переговорной.


| Признак | Cloud Microsoft (учётная запись) | Microsoft 365 (приложение Entra) |
|---|---|---|
| Как UnSpot авторизуется | администратор входит в учётную запись Microsoft, UnSpot получает и обновляет её токен | UnSpot получает токен по идентификаторам приложения; интерактивный вход не нужен |
| От чьего имени идёт обращение | от имени учётной записи, под которой выполнен вход | от имени самого ресурсного ящика переговорной |
| Какие права нужны | доступ к календарю каждой переговорной, выданный этой учётной записи | разрешения уровня приложения, подтверждённые администратором тенанта |
| Как выбирается календарь | из списка календарей учётной записи; календари без права редактирования в список не попадают | из списка ресурсных ящиков переговорных тенанта |
| Проверка прав при подключении | не выполняется | выполняется: создаётся и сразу удаляется тестовое событие |
| Что будет, если доступ пропадёт | перестанут работать все календари, подключённые под этой учётной записью | подключение помечается недействительным, календари через него не работают |
| Личные календари сотрудников | поддерживаются | не поддерживаются |
| Продление подписки на уведомления | автоматическое | требует ручной сверки, см. ниже |
Практическое следствие второй строки: в варианте с приложением встреча в календаре комнаты создаётся от имени самой переговорной, а не от имени администратора. Организатор такой встречи в Outlook — ресурсный ящик комнаты.
Ещё одна деталь варианта с приложением: при подключении календаря к переговорной UnSpot создаёт в этом календаре проверочную встречу с темой [UNSPOT] Permission probe на дату примерно через месяц и сразу её удаляет. Если вы успели увидеть её в календаре — это штатная проверка прав, а не сбой.
Пересечения и конфликты
- Календарь занят на это время. Если в момент создания брони в календаре комнаты уже есть встреча на это время, бронь удаляется, организатор получает уведомление об отмене и запускается повторная сверка календаря — приоритет у того, что уже стоит в календаре.
- Событие в календаре создать не удалось. Бронь удаляется, а организатор получает уведомление об отмене.
- Событие в прошлом. Бронь из события в прошлом не создаётся, если есть пересечения с другими бронями.
- Завершившиеся брони не переписываются — изменение события в календаре на них не действует. Идущая сейчас бронь обновляется как обычная.
Ручная сверка и признаки поломки
В окне календаря переговорной есть кнопка «Запустить синхронизацию»: она заново вычитывает календарь и приводит брони в соответствие с ним. Кнопка доступна, пока календарь считается работающим, и после запуска блокируется на час — рядом показывается время, когда её можно нажать снова. Права: сверку выполняет Владелец. Кнопка видна и Администратору офисов, но запрос завершится отказом по правам.
Признаки того, что доступ к календарю потерян:
- в дереве пространств у переговорной появляется отметка «Календарь недоступен» с подсказкой «Нет доступа к календарю. Проверьте соединение и подключите заново»;
- на карточке подключения в разделе «Синхронизации» появляется отметка «Ошибка подключения»;
- в окне календаря переговорной вместо «Запустить синхронизацию» появляется кнопка «Переподключить».
После успешной синхронизации отметка о недействительности снимается автоматически — отдельно «включать» календарь обратно не нужно.
Ограничение: входящую синхронизацию приложения нужно перезапускать вручную
Для календарей, подключённых через приложение Microsoft Entra, подписка на уведомления оформляется один раз — при подключении календаря — и автоматически не продлевается. Примерно через трое суток она перестаёт действовать, и изменения, сделанные в календаре комнаты, перестают попадать в UnSpot. Обратное направление при этом продолжает работать: брони из UnSpot по-прежнему создаются в календаре.
Как это выглядит и что делать:
- Симптом: встречи, созданные в Outlook, не появляются в UnSpot, при этом ошибок и отметки «Календарь недоступен» нет.
- Что помогает разово: нажать «Запустить синхронизацию» в окне календаря переговорной — сверка вычитает календарь и подтянет пропущенные встречи. Подписку сверка не пересоздаёт, поэтому следующие изменения снова не придут.
- Что восстанавливает подписку: отключить календарь от переговорной и подключить заново — подписка оформляется именно в этот момент.
- Если для вас важна непрерывная входящая синхронизация, выбирайте вариант «Cloud Microsoft» — там продление подписки автоматическое.
Связанные статьи
- Синхронизация календарей с Microsoft: какой вариант выбрать
- Локальный Exchange: как устроена синхронизация календарей
- Создание ресурсного календаря в Office 365
- Подключение календаря переговорной через сервисный аккаунт Microsoft 365
- Подключение Microsoft 365 через приложение Entra
- Приложение в Microsoft Entra: регистрация и права