# Reminders — Система напоминаний ## Концепция Единый интерфейс для создания, управления и доставки напоминаний. Цель — 100% гарантия доставки в нужное время. ## Проблема OpenClaw heartbeat/cron не дают 100% гарантии. Нужно комбинировать внутренние механизмы с внешним cron. ## Архитектура (концепт) ``` Пользователь OpenClaw Внешний cron │ │ │ │── создаёт ────────→│ │ │ │── пишет в БД ────────│ │ │ │ │←── подтверждение ──│ │ │ │ │── триггер в ~time ──→ Telegram ``` ## Способы доставки | Способ | Гарантия | Сложность | Примечание | |--------|----------|-----------|------------| | **OpenClaw cron** | ~95% | Низкая | Работает пока контейнер жив | | **Heartbeat** | ~90% | Низкая | Только если Слава пишет | | **Внешний cron (VPS)** | 100% | Средняя | Нужен доступ к VPS | | **Telegram Bot API** | 100% | Средняя | Требует cronjob сервис | | **Pushover / SMS** | 100% | Высокая | Дополнительные сервисы | ## Компоненты ### 1. Reminders DB ```json [ { "id": "uuid", "text": "Позвонить Вике", "time": "2026-04-12T10:00:00Z", "repeat": null, "method": "telegram", "status": "pending", "created": "2026-04-11T22:42:00Z" } ] ``` ### 2. Reminder Manager - Создание / редактирование / удаление - Проверка overlaps - Логирование доставок ### 3. Delivery Checker - Периодическая проверка pending напоминаний - Интеграция с heartbeat ## Статус: research ✅ **Решение выбрано: Todoist** — лучший баланс API, интеграций и UX. ## Почему Todoist | Критерий | Оценка | |----------|--------| | REST API | ✅ Полное, открытое, хорошо документировано | | Telegram бот | ✅ @SendToTodoist (forward → задача в Inbox) | | Напоминания | ✅ Push + email + Telegram (Premium: в точное время) | | Мобильные приложения | ✅ iOS, Android | | Десктоп | ✅ Web, macOS, Windows | | Естественный язык | ✅ "завтра в 10", "каждый понедельник" | | Бесплатный план | ⚠️ 5 проектов, без recurring reminders | **Todoist Premium** (~$4/мес) — напоминания в точное время через push/Telegram. ## Как это работает ``` Голос Славы (Telegram) → OpenClaw (Whisper: текст) → OpenClaw: парсит естественный язык → Todoist API: создаёт задачу с due date → Todoist: push-уведомление в нужное время ``` **Todoist API** ( Rest API v2): ``` POST /rest/v2/tasks { "content": "Позвонить Вике", "due_string": "tomorrow at 10", "priority": 3 } ``` **Моя роль:** - Голос → текст ( Whisper) - Текст → структура задачи (парсинг) - Todoist API → создание задачи - Запросы к Todoist (список задач, отчёты) ## Двусторонняя интеграция | Направление | Как | |-------------|-----| | Слава → Todoist | Голос/текст → OpenClaw → API | | Todoist → Слава | Push notification (Todoist native) | | OpenClaw → Todoist | API (чтение, создание, редактирование) | | Todoist → OpenClaw | По запросу (Спрашивает "что сегодня?") | ## Следующий шаг 1. Получить Todoist API токен (todoist.com/settings/integrations/developer) 2. Добавить `TODOIST_API_TOKEN` в `.env` 3. Протестировать создание задачи через API 4. Создать скилл `todoist` с командами: add, list, done, remind