Все ноды/Integrations/Calendar
Календарь: получить событие
GET одного ресурса календаря (iCalendar).
Тип в графе: calendar_get_event
Exec
Можно включить выход ошибки и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий сценарий
- Исполнение
- Данные
- Исполнение + данные
Перед запуском выберите своё подключение или базу знаний — в графе стоит REPLACE_ME.
Как применять
Один адрес — один ресурс: сырой iCalendar целиком и, что важнее, свежий etag, под которым
дальше пойдёт запись. Когда адресов несколько, за ними ходит одним запросом
Мультизапрос календаря. Найти сами адреса — задача
Запроса к календарю.
Как это работает
Нода запрашивает объект по полю «Ссылка на событие». Относительный путь разрешается относительно
базового URL подключения, абсолютный берётся как есть, так что значение из результата запроса
подставляется без правки: {{ nodes.query.output.events[0].href }}.
На выходе href, etag, ics — документ в том виде, в каком его отдал сервер, — и summary с
разобранными полями первого компонента ресурса (VEVENT или VTODO): uid, summary, dtstart,
dtend, all_day, timezone, rrule, status, sequence, last_modified. Если тела нет,
summary равен null.
Частые ошибки
summary— это объект, а не строка. Заголовок события лежит в{{ nodes.<id>.output.summary.summary }};{{ nodes.<id>.output.summary }}отдаст весь набор полей.- Разобран только первый компонент. У повторяющегося события с изменёнными вхождениями
остальные компоненты остаются только внутри
ics— разбирайте его сами, если они нужны. - Отсутствие ресурса — это ошибка. 404 останавливает ноду с
error_codeNOT_FOUND, и повтор ничего не изменит: ошибка детерминированная. Чтобы обработать отсутствие в графе, включите «Выход ошибки» и разберите код в ветке. - ETag стареет после любой записи. Значение, полученное здесь, действительно до первого
изменения события; после
Изменить событие календаря берите
etagиз его вывода. - Целый календарь так не выгрузить. Поле ждёт адрес одного объекта, а не коллекции — список событий даёт Запрос к календарю.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Подключение CalDAVcalendar_store | Данныеdata | — | обязателен |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Событиеoutput | Исполнение + данныеexecute_data | object | |
Ошибкаon_error | Исполнение + данныеexecute_data | — | показывается, когда expose_error_output = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Подключение CalDAVconnection_id | string | "" | Сохранённое подключение CalDAV из пространства: простому календарному сценарию не нужна отдельная нода «Календарь: подключение CalDAV». Нода, подключённая к порту «Подключение CalDAV», имеет приоритет над этим полем. подключение: caldavперекрывается портом: calendar_store |
Ссылка на событиеhref | string | "" | Путь или абсолютный URL объекта календаря — ровно в том виде, в каком его вернула нода «Календарь: найти события» или «Календарь: получить события» ({{ nodes.<query>.output.events[0].href }}). Относительный путь разрешается относительно базового URL подключения. Пример: /remote.php/dav/calendars/user/personal/9f1c-1234.ics поддерживает шаблоны |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.