🫡 ASPIRA · WORKFLOW + PRD

Agenda Pessoal Diego

Sistema automático de alertas de compromissos do Google Calendar. Notificações inteligentes no Telegram tópico #192 (exclusivo Diego) e WhatsApp — com 3 fluxos distintos.

📅 Automação Pessoal 🤖 1 Agente ⏰ Cron a cada 30min 🧠 Claude Haiku 💰 ~$0.001/run
Status
Operacional
Versão
v1.0
Tópico exclusivo
Telegram #192
Ferramenta
gogcli v0.11.0
3 Fluxos
Alerta · Registro · Resumo

3 Fluxos do Sistema

Alerta proativo · Registro via mensagem · Resumo semanal

FLUXO A
Notificação de Compromisso a cada 30min · 07h-22h BRT
Cron
📅
gogcli
📱
Alerta
FLUXO B
Registro via Mensagem on-demand · Diego escreve
💬
Diego
🧠
ASPIRA
Calendar
FLUXO C
Resumo Semanal domingo 21h BRT
📆
Cron dom
📅
gogcli semana
📝
Formata
📬
Tópico #192
💰
Custo/verificação
~$0.001
gogcli + Haiku = mínimo
Frequência
a cada 30min
07h-22h BRT (ativo)
🔕
Quiet hours
23h-07h
Sem alertas fora do horário
🛡️
Anti-spam
1x/dia
Por evento — sem repetição

⚠️

Regras Críticas

🔒
Tópico #192 EXCLUSIVO de Diego
O tópico Agenda Pessoal (#192) é reservado 100% para a agenda de Diego. Nunca usar para logs técnicos, automações do sistema ou notificações operacionais do ASPIRA.
🚫
Sem spam — 1 alerta por evento
Verificar se alerta para aquele evento já foi enviado hoje antes de disparar. Usar flag em /tmp/agenda-sent-{event_id}-{date}.flag.
🔕
Quiet hours 23h-07h BRT
Nenhum alerta enviado entre 23h e 07h BRT. Cron não executa neste período.
🛠️
gogcli v0.11.0 — sem OAuth manual
Usar sempre gogcli (CLI confiável) para operações de Calendar. Não usar Python scripts com OAuth manual — propenso a erros de token.
Status
Operacional
Versão
v1.0
Cron jobs
2 ativos
Tópico exclusivo
Telegram #192
Última revisão
25/03/2026 BRT
A

Fluxo A — Notificação de Compromisso

Cron a cada 30min · verifica eventos nas próximas 60 minutos

A0
Cron — a cada 30min (07h-22h BRT)
Verifica agenda e decide se envia alerta
Agente responsável
Sistema
LLM
n/a
Tools
exec
Custo$0.00~1s
1
Verificar quiet hours
Se hora atual BRT < 07h ou > 22h → encerrar. Não disparar nenhuma ação.
2
Iniciar verificação
Calcular janela: agora + 60 minutos. Passar para ASPIRA buscar eventos.
A1
ASPIRA — Busca no Google Calendar
gogcli events list com janela de 60min
Agente responsável
🫡ASPIRA
LLM
Claude Haiku 4.5
Skills
google-agenda-v2
Tools
exec (gogcli)
Custo~$0.0005~1k tokens~5s
1
exec gogcli events list
gogcli events list --calendar diegospanevello@gmail.com --time-min {AGORA} --time-max {AGORA+60min} --format json. Retorna lista de eventos na janela.
2
Verificar flag anti-spam
Para cada evento: verificar se /tmp/agenda-sent-{event_id}-{date}.flag existe. Se sim → já enviado hoje → pular.
3
Formatar alerta
Para eventos novos: formatar mensagem de alerta com título, horário em BRT, local (se houver), tempo até o início.
A2
Envio de Alerta — Telegram #192 + WhatsApp
Tópico exclusivo Diego + canal prioritário
Agente responsável
📱ASPIRA
Tools
message
Custo$0.00~2s
1
Enviar para Telegram tópico #192
message(action=send, target=-1003880005285, threadId=192, message=alerta formatado). Tópico EXCLUSIVO Agenda Pessoal.
2
Criar flag anti-spam
touch /tmp/agenda-sent-{event_id}-{YYYY-MM-DD}.flag. Previne reenvio do mesmo alerta na próxima verificação (30min).
💡Formato do alerta: "📅 Em {X} minutos — {Título do evento} | {Horário BRT} | {Local se houver}"

B

Fluxo B — Registro via Mensagem

Diego manda evento no Telegram → ASPIRA cria no Google Calendar

B
Registro On-Demand de Eventos
Diego escreve em linguagem natural → gogcli events create
Agente responsável
🫡ASPIRA
LLM
Claude Haiku 4.5
Skills
google-agenda-v2
Tools
exec (gogcli)
Custo~$0.001~8s
1
Diego envia evento em linguagem natural
Ex: "Lembrete: buscar Lara na escola quinta 17h30" ou "Reunião com cliente sexta às 14h no escritório". Enviado no Telegram tópico #192.
2
ASPIRA interpreta com Haiku
Extrai: título, data, hora (convertendo para UTC), local (se mencionado), duração estimada. Confirma interpretação com Diego antes de criar.
3
exec gogcli events create
gogcli events create --title "..." --start "..." --end "..." --location "..." --calendar diegospanevello@gmail.com. Retorna ID do evento criado.
4
Confirmação para Diego
Responde no tópico #192: "✅ Evento criado: {título} em {data/hora BRT}". Diego confirma ou pede correção.

C

Fluxo C — Resumo Semanal

Todo domingo 21h BRT — preview da semana seguinte

C
Resumo — Semana Seguinte
Cron domingo 21h BRT → Telegram tópico #192
Agente responsável
🫡ASPIRA
LLM
Claude Haiku 4.5
Tools
exec (gogcli)message
Custo~$0.001~10s
1
Buscar eventos da semana seguinte
gogcli events list --time-min {SEGUNDA} --time-max {DOMINGO_23h59} --format json. Retorna todos os eventos da semana.
2
Formatar resumo semanal
Haiku formata em markdown por dia: "📅 Segunda, 27/03: 14h Reunião X | Quinta, 30/03: 17h30 Buscar Lara...". Total de compromissos no cabeçalho.
3
Enviar para tópico #192
message(action=send, target=-1003880005285, threadId=192, message=resumo). Título: "📆 Sua semana — {DATA INÍCIO} a {DATA FIM}"
⚙️

Matriz Técnica

FluxoFaseAgenteLLMSkillsToolsInputOutputCustoTempo
ACron trigger⏰ Sisteman/a
exec
Horário atual BRTjanela 60min$0.00~1s
ABusca Calendar🫡 ASPIRAClaude Haiku 4.5
google-agenda-v2
execgogcli v0.11.0
janela 60minlista de eventos~$0.0005~5s
AEnvio alerta🫡 ASPIRAn/a
message
evento formatadoTelegram #192$0.00~2s
Fluxo A total~$0.001~8s
BInterpretar evento🫡 ASPIRAClaude Haiku 4.5
google-agenda-v2
execgogcli create
texto natural Diegoevento criado + confirmação~$0.001~8s
CResumo semanal🫡 ASPIRAClaude Haiku 4.5
google-agenda-v2
execmessagegogcli list
semana seguinteResumo Telegram #192~$0.001~10s

Cron Jobs

Job A — Verificação periódica
  • Schedule: */30 7-22 * * 1-7 (BRT) — a cada 30min das 07h às 22h
  • Script: scripts/agenda-check.sh
  • Ação: gogcli events list → verificar próximas 60min → alertar se novo
Job C — Resumo semanal
  • Schedule: 0 0 * * 1 (UTC) = domingo 21h BRT
  • Script: scripts/agenda-weekly-summary.sh
gogcli
  • Versão: v0.11.0
  • Auth: OAuth2 configurado via gog auth (não requer OAuth manual por run)
  • Calendar: diegospanevello@gmail.com
📅
Fluxo B — Interpretação de Evento em Linguagem Natural
ASPIRA
🧩 PROMPT — Registro via Mensagem
Você é ASPIRA gerenciando a agenda pessoal de Diego. MENSAGEM DE DIEGO: {{ MENSAGEM_DIEGO }} DATA/HORA ATUAL (BRT): {{ AGORA_BRT }} TAREFA: Interpretar o evento descrito e criar no Google Calendar. 1. Extrair do texto: - titulo: título claro e descritivo - data: converter para formato ISO 8601 em UTC (Diego está em UTC-3) - hora_inicio: horário de início (se mencionado, senão usar 09:00) - hora_fim: hora_inicio + 1h (padrão) - local: se mencionado, senão null - descricao: qualquer contexto adicional 2. ANTES de criar: confirmar com Diego em 1 linha: "✅ Criar: {titulo} em {data} às {hora BRT}? (local: {local})" 3. Aguardar confirmação. Se confirmado: exec gogcli events create 4. Se não confirmado: pedir correção IDIOMA: Português BR TIMEZONE: Sempre mostrar horários em BRT para Diego
📆
Fluxo C — Formatação do Resumo Semanal
ASPIRA
🧩 PROMPT — Resumo Semanal
Você é ASPIRA. Crie o resumo semanal da agenda de Diego. EVENTOS DA SEMANA: {{ EVENTOS_JSON }} SEMANA: {{ SEGUNDA }} a {{ DOMINGO }} FORMATAR como: 📆 Sua semana — {SEGUNDA} a {DOMINGO} 📋 {N} compromissos **Segunda (DD/MM)** • HH:MM — Título do evento (local se houver) **Terça (DD/MM)** • HH:MM — ... [continuar para cada dia com eventos] **Dias sem compromissos:** {lista de dias livres} Tom: conciso, útil, sem enrolação Horários sempre em BRT
🧭
Visão Geral
O que é
Sistema de notificações da agenda pessoal de Diego com 3 fluxos: (A) alertas proativos antes de compromissos, (B) registro de eventos via mensagem em linguagem natural, (C) resumo semanal toda domingo às 21h BRT. Usa gogcli v0.11.0 para integração com Google Calendar sem OAuth manual.
Canal exclusivo
Tópico #192 (Agenda Pessoal) no CENTRAL ASPIRA é EXCLUSIVO de Diego. Nunca misturar com automações técnicas do sistema ASPIRA.
🎯
Objetivos
60 min
Antecedência
Alerta antes do compromisso
~$0.001
Custo/verificação
Ultra eficiente
1x
Por evento
Anti-spam garantido
3 fluxos
Cobertura
Alerta + Registro + Resumo
⚠️
Riscos & Mitigações
  • Risco: gogcli token expirado
    ✅ Mitigação: Notificar Diego para reautenticar via gog auth. Log de erro em /tmp/agenda-auth-error.log.
  • Risco: Evento duplicado no Calendar
    ✅ Mitigação: Confirmação obrigatória de Diego antes de exec gogcli events create.
  • Risco: Spam de alertas
    ✅ Mitigação: Flag /tmp/agenda-sent-{id}-{date}.flag garante 1 alerta por evento por dia.
Status
Operacional
Versão
v1.0
Cron jobs
2 ativos
Tópico
#192 exclusivo Diego
Última revisão
25/03/2026 BRT