Все ноды/Integrations/Calendar
Календарь: получить события
REPORT calendar-multiget для списка href.
Тип в графе: calendar_multiget
Exec
Можно включить выход ошибки и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий сценарий
- Исполнение
- Данные
- Исполнение + данные
Перед запуском выберите своё подключение или базу знаний — в графе стоит REPLACE_ME.
Как применять
Забирает несколько объектов календаря одним запросом. Для одного адреса проще Получить событие календаря; для поиска по времени — Запрос к календарю, который и так возвращает разобранные поля. Мультизапрос оправдан, когда список адресов пришёл откуда-то ещё: из переменной, из базы данных, от модели — или когда к найденным событиям нужен полный iCalendar, которого в результатах запроса нет.
Как это работает
Нода делает один запрос к одной коллекции. Адреса перечисляются в поле «Ссылки на события» через
запятую или с новой строки; не более 50 за вызов, иначе нода остановится с кодом VALIDATION до
обращения к серверу. Пустой «Календарь (URL)» означает календарь по умолчанию из
подключения.
На выходе items: у каждого элемента href, etag, ics и разобранный summary — или null,
если сервер не прислал тело.
Частые ошибки
- Ответ может быть короче списка. Адрес, которого на сервере нет, просто не приедет —
ошибки не будет. Если это важно, сверяйте длину
itemsс длиной своего списка. - Порядок задаёт сервер. Считать, что
items[0]соответствует первому адресу в поле, нельзя — сопоставляйте поhref. - Адреса должны лежать в указанной коллекции. Запрос идёт к одной коллекции; события из двух календарей — это две ноды.
- 50 — жёсткий потолок. Список длиннее разбивайте на части и обходите их нодой Для каждого.
- Строка вместо списка. Поле шаблонное и принимает текст: массив из другой ноды подставляйте
через
join, например{{ nodes.<id>.output.hrefs | join(",") }}— иначе в поле окажется запись массива целиком.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Подключение CalDAVcalendar_store | Данныеdata | — | обязателен |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Событияoutput | Исполнение + данныеexecute_data | object | |
Ошибкаon_error | Исполнение + данныеexecute_data | — | показывается, когда expose_error_output = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Подключение CalDAVconnection_id | string | "" | Сохранённое подключение CalDAV из пространства: простому календарному сценарию не нужна отдельная нода «Календарь: подключение CalDAV». Нода, подключённая к порту «Подключение CalDAV», имеет приоритет над этим полем. подключение: caldavперекрывается портом: calendar_store |
Календарь (URL)calendar_url | string | "" | URL коллекции, с которой работаем, например https://cloud.example/remote.php/dav/calendars/user/personal/. Оставьте пустым, чтобы взять URL календаря по умолчанию из CalDAV-подключения; узнать URL можно нодой «Календарь: все календари». поддерживает шаблоны |
Ссылки на событияhrefs | string | "" | href, которые нужно получить, через запятую или с новой строки — в том виде, в каком их вернула нода «Календарь: найти события». Не более 50 за вызов. поддерживает шаблоны |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.