Bot completo em Node.js + TypeScript para monitorar sua Google Agenda, enviar notificações automáticas, mostrar um menu organizado no Telegram e gerar relatório semanal.
- menu com botões inline
- agenda do dia
- próximo evento
- relatório semanal
- alerta automático antes dos compromissos
- resumo diário automático
- relatório semanal automático
- configurações persistidas localmente em JSON
- integração com Google Calendar via OAuth2
- sem custo de infraestrutura obrigatória
- Node.js
- TypeScript
- Telegraf
- Google Calendar API
- persistência local em JSON
- Cron jobs com
cron - Luxon para datas e timezone
- você autentica a conta Google uma vez
- o bot monitora sua agenda automaticamente
- ele envia:
- resumo diário
- alerta antes dos eventos
- relatório semanal
- você controla tudo por menu
src/
bot/
config/
db/
google/
jobs/
services/
types/
utils/
scripts/
data/- Node.js 20+
- conta no Telegram
- bot criado no BotFather
- projeto Google Cloud com Calendar API habilitada
npm installCopie o arquivo de exemplo:
cp .env.example .envPreencha:
TELEGRAM_BOT_TOKEN=SEU_TOKEN
TELEGRAM_ALLOWED_CHAT_ID=SEU_CHAT_ID
GOOGLE_CLIENT_ID=SEU_CLIENT_ID
GOOGLE_CLIENT_SECRET=SEU_CLIENT_SECRET
GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback
GOOGLE_CALENDAR_ID=primary
APP_TIMEZONE=America/Campo_Grande
AUTH_SERVER_PORT=3000
DEFAULT_ALERT_MINUTES=30
WEEKLY_REPORT_DAY=1
WEEKLY_REPORT_HOUR=7
WEEKLY_REPORT_MINUTE=0
DAILY_DIGEST_HOUR=7
DAILY_DIGEST_MINUTE=0
CHECK_EVENTS_EVERY_MINUTES=1
DATA_DIR=./data
TOKENS_PATH=./data/google-tokens.jsonVocê pode usar um bot auxiliar como @userinfobot no Telegram e pegar o ID do seu usuário.
- acesse o Google Cloud Console
- crie um projeto
- habilite a Google Calendar API
- vá em APIs e serviços > Credenciais
- crie um OAuth Client ID do tipo Web application
- adicione este redirect URI:
http://localhost:3000/oauth2callbacknpm run authO script vai:
- subir um servidor HTTP local na porta definida
- mostrar um link para login
- salvar os tokens em
data/google-tokens.json
npm run devnpm run build
npm start/start/menu/hoje/proximo/semanal
- ver a agenda do dia
- consultar o próximo compromisso
- gerar relatório semanal
- ativar ou desativar:
- alertas automáticos
- resumo diário
- relatório semanal
- ajustar antecedência do alerta para 15, 30 ou 60 minutos
🤖 Central da sua Google Agenda
Use o menu abaixo para:
• ver agenda do dia
• consultar o próximo compromisso
• gerar relatório semanal
• ajustar notificações automáticas📅 Agenda de hoje (17/04/2026)
• 08:00–09:00 — Daily com equipe
• 10:30–11:30 — Reunião com cliente
• 14:00–15:00 — Revisão técnica📌 Reunião com cliente
🗓️ 17/04/2026 às 10:30 até 11:30
📍 Google Meet
🔗 https://calendar.google.com/...⏰ Evento em 30 min
📌 Revisão técnica
🗓️ 17/04/2026 às 14:00 até 15:00
📍 Sala 2📊 Relatório semanal (14/04 - 20/04)
Total de eventos: 9
Com horário: 8
Dia inteiro: 1
• segunda-feira, 14/04
• 08:00–09:00 — Daily com equipe
• 15:00–16:00 — Planejamento
• terça-feira, 15/04
• 10:00–11:00 — Alinhamento- o projeto está preparado para um usuário e um chat autorizado
- o estado local fica salvo em
data/store.json - ideal para uso pessoal sem custo
- os jobs automáticos rodam enquanto o processo Node estiver ativo
- se quiser deixar 24h online sem custo, você pode rodar em uma máquina sua
- multiusuário com SQLite ou PostgreSQL
- parser de linguagem natural para criar eventos
- comando para criar/remarcar/excluir evento
- integração com OpenAI para interpretar mensagens como “marca reunião amanhã às 14h”
- envio de relatório em HTML ou PDF
A implementação segue o uso do client oficial do Google para Node.js e do fluxo OAuth2 recomendado para apps de servidor, além do ecossistema atual do Telegraf e de cron jobs em Node.js. citeturn725752search1turn725752search7turn725752search10turn725752search2