Найти интервалы встреч
Элемент подбирает свободные интервалы времени для встречи с учетом занятости участников — аналог «Помощника по планированию» Outlook. Для корректной работы следует поместить элемент в контейнер Microsoft 365.
Поиск выполняется от имени пользователя, под которым выполнен вход, поэтому элемент работает только при типе аутентификации UsernameAndPassword.
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента .
Символ * в названии свойства указывает на обязательность его заполнения.
| Свойство | Тип | Описание |
|---|---|---|
| Параметры: | ||
| Начало | DateTime | Начало периода поиска |
| Окончание | DateTime | Окончание периода поиска |
| Продолжительность | Int32 | Длительность встречи в минутах. Если не заполнено — 30 минут |
| Участники* | List<String> | Адреса участников, например new List<string> { "a.ivanov@company.ru", "p.petrov@company.ru" } |
| Часовой пояс | String | Часовой пояс для Начала и Окончания. См. Часовой пояс |
| Местоположения | List<String> | Названия переговорных для подбора. Если не заполнено — место подбирается автоматически |
| Политика | - | В какое время искать. Доступные значения: Work — рабочие часы участников, Personal — личное время, Unrestricted — любое время. По умолчанию Unrestricted |
| Организатор | Boolean | Учитывать занятость организатора. По умолчанию включено |
| Результат: | ||
| Интервалы | List<MeetingTimeSuggestion> | Переменная для сохранения найденных интервалов |
| Причина | String | Переменная для сохранения причины, по которой интервалы не найдены |
Важно: Заполняйте Начало и Окончание вместе. Для поиска в рабочее время выберите Политику Work.
Примечание: Время начала интервала — suggestion.MeetingTimeSlot.Start.DateTime (UTC), уверенность в доступности участников — suggestion.Confidence (0–100).
Практический пример
Подбор часовой встречи на ближайшие три рабочих дня
- Начало:
DateTime.Today.AddDays(1).AddHours(9) - Окончание:
DateTime.Today.AddDays(4).AddHours(18) - Часовой пояс:
"Russian Standard Time" - Продолжительность:
60 - Участники:
new List<string> { "a.ivanov@company.ru", "p.petrov@company.ru" } - Политика:
Work - Интервалы:
slots - Причина:
reason
Если slots.Count == 0, причина — в reason. Лучший вариант — slots.OrderByDescending(s => s.Confidence).First(); по нему создайте встречу элементом Создать событие.
Возможные ошибки
| Ошибка | Причина и решение |
|---|---|
Не указан участник | Не заполнено свойство Участники |
/me request is only valid with delegated authentication flow | Контейнер использует вход от имени приложения — используйте тип UsernameAndPassword |
Причина = AttendeesUnavailable | Нет времени, когда свободны все участники: расширьте период или сделайте часть участников необязательными |