# 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
