Все ноды/Integrations/Calendar

Календарь: получить событие

GET одного ресурса календаря (iCalendar).

Календарь: получить событие▶
Подключение CalDAVСобытие
Ошибка

Тип в графе: calendar_get_event

Exec

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

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

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

Минимальный рабочий сценарий

Вход
Календарь: получить событие▶
Календарь: подключение CalDAV
Выход▶
  • Исполнение
  • Данные
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Перед запуском выберите своё подключение или базу знаний — в графе стоит 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_code NOT_FOUND, и повтор ничего не изменит: ошибка детерминированная. Чтобы обработать отсутствие в графе, включите «Выход ошибки» и разберите код в ветке.
  • ETag стареет после любой записи. Значение, полученное здесь, действительно до первого изменения события; после Изменить событие календаря берите etag из его вывода.
  • Целый календарь так не выгрузить. Поле ждёт адрес одного объекта, а не коллекции — список событий даёт Запрос к календарю.

Входы

ПортПроводДанныеПримечания
Подключение CalDAVcalendar_storeДанныеdata—

обязателен

Выходы

ПортПроводДанныеПримечания
СобытиеoutputИсполнение + данныеexecute_dataobject
Ошибкаon_errorИсполнение + данныеexecute_data—

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

Настройки

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

Сохранённое подключение CalDAV из пространства: простому календарному сценарию не нужна отдельная нода «Календарь: подключение CalDAV». Нода, подключённая к порту «Подключение CalDAV», имеет приоритет над этим полем.

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

Ссылка на событиеhrefstring""

Путь или абсолютный 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 — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.