Все ноды/Integrations/Calendar

Календарь: занятость

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

Календарь: занятость▶
Подключение CalDAVЗанятость
Ошибка

Тип в графе: calendar_freebusy

Exec

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

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

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

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

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

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

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

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

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

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

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

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

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

Входы

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

обязателен

Выходы

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

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

Настройки

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

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

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

Готовые примеры с этой нодой