Skip to Content

Найти интервалы встреч

Элемент подбирает свободные интервалы времени для встречи с учетом занятости участников – аналог «Помощника по планированию» 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Нет времени, когда свободны все участники: расширьте период или сделайте часть участников необязательными