Все важные изменения в этом проекте будут документированы в этом файле.
- Критическое исправление повторяющихся событий: Функция GetEvents теперь возвращает актуальные даты и время для повторяющихся событий вместо оригинальных дат
- Исправлена логика расчета дат для DAILY, WEEKLY, MONTHLY и YEARLY повторений
- Сохраняется время события, но корректируется дата под запрошенный промежуток
- Правильно рассчитывается продолжительность событий
- Корректно обрабатываются таймзоны
- Поля
dtStart,dtEnd,dtStartISO,dtEndISOтеперь содержат актуальные даты
- Добавлена функция
calculateRecurringEventDates()для расчета актуальных дат - Добавлена функция
formatDateToICal()для корректного форматирования дат - Обновлена логика обработки повторяющихся событий в основном цикле GetEvents
- Сохранена обратная совместимость и поддержка всех существующих функций
До исправления:
- Событие: каждый понедельник в 10:00 (начиная с 2024-01-01)
- Запрос событий на: 2024-01-08
- Результат:
dtStart: 2024-01-01T10:00❌ (неправильно)
После исправления:
- Событие: каждый понедельник в 10:00 (начиная с 2024-01-01)
- Запрос событий на: 2024-01-08
- Результат:
dtStart: 2024-01-08T10:00✅ (правильно)
- 🐛 Исправлены ошибки линтера - убраны все any типы, заменены на конкретные типы
- 🔧 Улучшена обработка ошибок - правильное использование NodeOperationError вместо обычных Error
- 🧹 Убраны неиспользуемые переменные - очистка кода от неиспользуемых переменных
- 📝 Улучшена типизация - добавлены правильные типы для всех функций и переменных
- Код соответствует стандартам линтера n8n
- Улучшена совместимость с TypeScript 5.x
- 🗑️ Удалена операция Update Event - операция обновления событий полностью удалена из узла
- 📈 Обновлена версия узла - версия узла изменена с 1 на 2 (breaking change)
- Упрощена функциональность узла - теперь поддерживаются только операции Get Events, Create Event и Delete Event
- Улучшена производительность за счет удаления сложной логики обновления
- Упрощена структура кода и уменьшен размер пакета
Операция Update Event была удалена из-за сложности реализации и низкой стабильности работы с различными CalDAV серверами. Рекомендуется использовать комбинацию Delete Event + Create Event для обновления событий.
- 🐛 Улучшена работа с Yandex CalDAV - специальная обработка URL для серверов Yandex
- 🔄 Альтернативные методы поиска событий - добавлен прямой поиск по имени файла при обновлении/удалении
- ⚡ Устранены таймауты HTTP 504 - улучшенная обработка ошибок с fallback методами
- 🛠️ Исправлены URL событий - правильное формирование путей к .ics файлам
- Улучшена совместимость с различными CalDAV серверами
- Добавлены дополнительные проверки URL событий
- ✅ Создание событий - новая операция
Create Eventдля добавления событий в календарь - ✅ Редактирование событий - новая операция
Update Eventдля обновления существующих событий по UID - ✅ Удаление событий - новая операция
Delete Eventдля удаления событий по UID - ✅ Улучшенная обработка ошибок - детальные сообщения об ошибках с кодами HTTP статусов
- ✅ Альтернативные методы создания - fallback методы при возникновении таймаутов
- ✅ Автоматическая генерация UID - уникальные идентификаторы для новых событий
- ✅ Поддержка всех полей события - заголовок, описание, местоположение, даты начала и окончания
- Улучшена стабильность HTTP запросов к CalDAV серверам
- Добавлены проверки доступности календарей перед операциями
- Обновлена документация с описанием всех операций
- Исправлены проблемы с таймаутами (HTTP 504) при создании и обновлении событий
- Улучшена обработка различных ошибок CalDAV серверов
- 🤖 Поддержка AI Tool - нода теперь может использоваться как инструмент в AI Agent
- Добавлено свойство
usableAsTool: trueв описание ноды - Обновлена документация с примерами использования в AI Agent
- Улучшена совместимость с современными версиями n8n
- Обновлена документация README.md с разделом об AI Tool
- Динамическая загрузка календарей через
loadOptionsMethod - Улучшенные названия календарей с автоопределением типов
- Правильная обработка ошибок с
NodeOperationError - Автоматические тесты с mocha
- TypeScript поддержка и компиляция
- Поддержка различных CalDAV серверов (Google Calendar, iCloud, NextCloud)
- ISO форматы дат с поддержкой таймзон