Все ноды/Integrations/Calendar
Мультизапрос календаря
REPORT calendar-multiget для списка href.
Тип в графе: calendar_multiget
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение
- Данные
- Исполнение + данные
Перед запуском выберите своё подключение или базу знаний — в графе стоит 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_data | object | |
Erroron_error | Исполнение + данныеexecute_data | — | показывается, когда expose_error_output = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Подключение CalDAVconnection_id | string | "" | Сохранённое подключение CalDAV из воркспейса: простому календарному воркфлоу не нужна отдельная нода CalDAV Config. Нода, подключённая к порту 'calendar_store', имеет приоритет над этим полем. подключение: caldavперекрывается портом: calendar_store |
URL коллекции календаряcalendar_url | string | "" | URL коллекции, с которой работаем, например https://cloud.example/remote.php/dav/calendars/user/personal/. Оставьте пустым, чтобы взять URL календаря по умолчанию из подключённого CalDAV-подключения; узнать URL можно нодой List Calendars. поддерживает шаблоны |
href событийhrefs | string | "" | href, которые нужно получить, через запятую или с новой строки — в том виде, в каком их вернула нода Calendar Query. Не более 50 за вызов. поддерживает шаблоны |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.