Кратко

  • В AUTOMATIC-FAILURE ответ об отказе одного назначенного участника или срок незавершённой задачи могут перевести общий статус VTODO в FAILED.
  • В SERVER статус задают правила конкретной реализации. CalDAV-сервер может объявить доступные режимы и ответить HTTP 403 на неподдерживаемый.

Представьте общую задачу с двумя назначенными исполнителями. Один отмечает свою часть как невыполненную, а следующая команда видит уже не частный ответ, а статус всей работы. RFC 10051 считает каждого назначенного участника (ATTENDEE) в запросе iTIP исполнителем задачи. Его ответ (PARTSTAT) может быть неудачным. В режиме AUTOMATIC-FAILURE этот ответ меняет запись всей задачи (VTODO): общий статус становится FAILED.

Отметка одного участника становится видна как отказ всей задачи. Если последующая очередь сортирует работу по общему статусу, она видит именно этот итог; ответ участника, причина и время изменения остаются дополнительными данными VSTATUS.

Есть и второй триггер — просрочка. Если задача всё ещё не завершена, когда наступил срок, серверу следует поставить FAILED. Срок может быть указан напрямую в DUE или вычислен: время начала (DTSTART) плюс отведённая длительность (DURATION). VSTATUS сохраняет причину, подстатус и время изменения; без этих следов одна метка не объяснит, кто и почему закрыл работу как неудачную.

Опубликованный в октябре 2026 года RFC обновляет VTODO для проектов и рабочих процессов. Свойство TASK-MODE задаёт порядок смены статуса; без него действует CLIENT, и сервер принимает статус от клиента. Другие режимы передают часть решений серверу.

При AUTOMATIC-COMPLETION серверу следует завершить задачу после ответов всех участников о выполнении; неудачу в этом режиме обрабатывает клиент. AUTOMATIC объединяет оба перехода.

SERVER оставляет решение правилам бизнеса, которые определила сама реализация: сервер выбирает статус при поступлении ответов или по истечении срока. RFC 10051 не устанавливает общий льготный период, правила частичного выполнения, число повторов или обработку незакрытой зависимости. Одна и та же задача может попасть в разные системы и получить разные статусы.

В CalDAV часть границы видна клиенту. Сервер может опубликовать поддерживаемые режимы в CALDAV:supported-task-mode-set. Если клиент сохранит задачу с неподдерживаемым режимом, сервер должен ответить HTTP 403 и вернуть ошибку DAV со списком доступных режимов. Клиент, который не знает TASK-MODE, должен безопасно игнорировать это свойство.

Опубликованный список — доступное клиенту подтверждение; актуальный ответ конкретного сервиса покажет, поддерживает ли он эту возможность.

Обновление отделяет окно для работы от оценки её длительности. DTSTART вместе с DUE или DURATION задаёт, когда работу можно выполнить; ESTIMATED-DURATION — сколько времени она, как ожидается, займёт. Например, двухчасовой ремонт можно запланировать в четырёхчасовом окне: ожидание и срок — разные величины.

Операционной команде нужен не только ярлык FAILED. Важны режим, разрешивший смену, расчёт срока, ответы участников и причина, подстатус или отметка времени в VSTATUS. Статус может перейти между системами, а правило, которое его породило, останется локальным.

Источники