Все ноды/Integrations/Calendar

Получить событие календаря

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

Получить событие календаря
Calendar storeSuccess
Error

Тип в графе: calendar_get_event

Exec

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

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

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

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

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

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

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

Один адрес — один ресурс: сырой iCalendar целиком и, что важнее, свежий etag, под которым дальше пойдёт запись. Когда адресов несколько, за ними ходит одним запросом Мультизапрос календаря. Найти сами адреса — задача Запроса к календарю.

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

Нода запрашивает объект по полю «href события». Относительный путь разрешается относительно базового 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 из его вывода.
  • Целый календарь так не выгрузить. Поле ждёт адрес одного объекта, а не коллекции — список событий даёт Запрос к календарю.

Входы

ПортПроводДанныеПримечания
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

href событияhrefstring""

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