Files
wiki/tasks/reminders/PROJECT.md
2026-04-12 21:55:33 +03:00

4.5 KiB
Raw Blame History

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

[
  {
    "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