Все ноды/Integrations/Calendar

Занятость календаря

REPORT free-busy-query для заданных календарей.

Занятость календаря
Calendar storeSuccess
Error

Тип в графе: calendar_freebusy

Exec

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

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

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

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

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

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

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

Отвечает на один вопрос: какие интервалы заняты. Ни заголовков, ни участников, ни адресов событий — если нужны сами встречи, берите Запрос к календарю. Типичное применение — подобрать свободный слот, не заглядывая в содержимое чужого календаря: для этого часто хватает и тех прав, которых не хватает на чтение событий.

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

Нода спрашивает у сервера занятость по списку коллекций. Адреса перечисляются в поле «URL календарей» через запятую или с новой строки; пустое поле означает календарь по умолчанию из подключения. Диапазон обязателен и подчиняется тем же правилам, что и у запроса к календарю: ISO 8601, конец позже начала, не больше 366 дней, значение без часового пояса читается как UTC.

На выходе busy_periods — список пар { "start": …, "end": … }. Значения приходят такими, какими их прислал сервер: в базовом формате iCalendar (20260701T090000Z), а не в ISO с дефисами. Приводите их к нужному виду сами, если собираетесь показывать пользователю.

Частые ошибки

  • Пустой список значит две разные вещи. «В диапазоне свободно» и «сервер не отдал сведений о занятости» выглядят одинаково. Проверьте ноду на календаре с заведомо занятым слотом, прежде чем строить на ней логику.
  • Границей интервала может оказаться длительность. Формат допускает запись «начало и продолжительность», и тогда в end окажется что-то вроде PT1H. Разбирайте значение, а не считайте его временем безоговорочно.
  • Свободные окна нода не считает. Она отдаёт занятое; вычитание интервалов из рабочего дня — ваша задача, например нодой JavaScript-код.
  • Чужой календарь виден не всегда. Права на занятость выдаются на сервере отдельно; отказ приезжает с кодом ACCESS_DENIED.
  • Один запрос — один аккаунт. Перечислять можно только коллекции того подключения, которое подано на порт: календари другого аккаунта — это другая нода с другой конфигурацией.

Входы

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

URL календарейcalendar_urlsstring""

URL коллекций календарей через запятую или с новой строки. Пусто = URL календаря по умолчанию из подключённого CalDAV-подключения.

поддерживает шаблоны

Начало диапазонаtime_startstring""

Начало диапазона, ISO 8601, включительно. Пример: 2026-07-01T00:00:00Z (значение без часового пояса читается как UTC).

поддерживает шаблоны

Конец диапазонаtime_endstring""

Конец диапазона, ISO 8601. Должен быть позже начала; диапазон не может превышать 366 дней. Пример: 2026-07-31T23:59:59Z

поддерживает шаблоны

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.