Все ноды/Integrations/Calendar

Мультизапрос календаря

REPORT calendar-multiget для списка href.

Мультизапрос календаря
Calendar storeSuccess
Error

Тип в графе: calendar_multiget

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий воркфлоу

Вход
Мультизапрос календаря
Конфигурация CalDAV
Выход
  • Исполнение
  • Данные
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Перед запуском выберите своё подключение или базу знаний — в графе стоит REPLACE_ME.

Как применять

Забирает несколько объектов календаря одним запросом. Для одного адреса проще Получить событие календаря; для поиска по времени — Запрос к календарю, который и так возвращает разобранные поля. Мультизапрос оправдан, когда список адресов пришёл откуда-то ещё: из переменной, из базы данных, от модели — или когда к найденным событиям нужен полный iCalendar, которого в результатах запроса нет.

Как это работает

Нода делает один запрос к одной коллекции. Адреса перечисляются в поле «href событий» через запятую или с новой строки; не более 50 за вызов, иначе нода остановится с кодом VALIDATION до обращения к серверу. Пустой «URL коллекции календаря» означает календарь по умолчанию из подключения.

На выходе items: у каждого элемента href, etag, ics и разобранный summary — или null, если сервер не прислал тело.

Частые ошибки

  • Ответ может быть короче списка. Адрес, которого на сервере нет, просто не приедет — ошибки не будет. Если это важно, сверяйте длину items с длиной своего списка.
  • Порядок задаёт сервер. Считать, что items[0] соответствует первому адресу в поле, нельзя — сопоставляйте по href.
  • Адреса должны лежать в указанной коллекции. Запрос идёт к одной коллекции; события из двух календарей — это две ноды.
  • 50 — жёсткий потолок. Список длиннее разбивайте на части и обходите их нодой Для каждого.
  • Строка вместо списка. Поле шаблонное и принимает текст: массив из другой ноды подставляйте через join, например {{ nodes.<id>.output.hrefs | join(",") }} — иначе в поле окажется запись массива целиком.

Входы

ПортПроводДанныеПримечания
Calendar storecalendar_storeДанныеdata

обязателен

Выходы

ПортПроводДанныеПримечания
SuccessoutputИсполнение + данныеexecute_dataobject
Erroron_errorИсполнение + данныеexecute_data

показывается, когда expose_error_output = true

Настройки

ПолеТипПо умолчаниюОписание
Подключение CalDAVconnection_idstring""

Сохранённое подключение CalDAV из воркспейса: простому календарному воркфлоу не нужна отдельная нода CalDAV Config. Нода, подключённая к порту 'calendar_store', имеет приоритет над этим полем.

подключение: caldavперекрывается портом: calendar_store

URL коллекции календаряcalendar_urlstring""

URL коллекции, с которой работаем, например https://cloud.example/remote.php/dav/calendars/user/personal/. Оставьте пустым, чтобы взять URL календаря по умолчанию из подключённого CalDAV-подключения; узнать URL можно нодой List Calendars.

поддерживает шаблоны

href событийhrefsstring""

href, которые нужно получить, через запятую или с новой строки — в том виде, в каком их вернула нода Calendar Query. Не более 50 за вызов.

поддерживает шаблоны

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.