Criei meu "bot pessoal" no Telegram para resumos diários e lembretes — sem depender de nenhum SaaS

Depois de meses testando assistentes de IA locais para o trabalho, resolvi aplicar a mesma lógica na vida pessoal: um canal único que me avisa, todo dia, o que importa — sem eu precisar abrir cinco apps diferentes pra lembrar de pagar conta, levar o carro pra revisão ou simplesmente respirar e beber água. O resultado foi um "bot pessoal" simples no Telegram, acionado por agendamento, que hoje me manda um resumo do dia pela manhã e lembretes pontuais ao longo da semana.

Não é nada corporativo nem complexo — é só um exemplo de como qualquer pessoa com um pouco de linha de comando consegue montar isso em uma tarde. Vou mostrar o caminho que segui, as duas abordagens que considerei (script + cron vs. automação visual) e por que acabei ficando com a mais simples.

O problema que eu queria resolver

Minha vida pessoal tem exatamente o mesmo problema que vejo em ambientes corporativos: informação espalhada. Compromissos na agenda, tarefas em um app de notas, contas em outro lugar. Eu queria um único canal de saída — o Telegram, que já abro o dia inteiro — recebendo um resumo compilado, gerado automaticamente, em horários fixos.

A ideia central é simples: um processo agendado roda, monta uma mensagem (pode vir de uma lista de tarefas, de um arquivo, de uma IA que resume algo) e dispara essa mensagem para o meu chat via API do Telegram.

Passo 1 — Criar o bot no Telegram

Isso é feito direto no app, conversando com o @botfather:

  1. Abra uma conversa com @BotFather no Telegram.
  2. Envie /newbot e siga as instruções (nome e username do bot).
  3. Guarde o token que ele devolve — é a credencial de acesso à API.
  4. Envie uma mensagem qualquer para o seu novo bot e descubra o chat_id consultando https://api.telegram.org/bot<TOKEN>/getUpdates.

Esse token nunca deve ir para um repositório público ou para texto puro em script — guarde em uma variável de ambiente ou em um arquivo .env fora do controle de versão.

Passo 2 — Testar o envio manualmente

Antes de automatizar qualquer coisa, vale confirmar que o bot realmente fala com você. O método sendMessage da Bot API resolve isso com uma chamada simples:[1]

curl "https://api.telegram.org/bot<SEU_TOKEN>/sendMessage" \ -d "chat_id=<SEU_CHAT_ID>" \ -d "text=Teste de conexão do meu bot pessoal" 

Se a resposta JSON trouxer "ok":true, o canal está funcionando e dá pra passar para a parte de agendamento.

Passo 3 — Decidir onde mora o "relógio"

Aqui vale um ponto importante: a Bot API do Telegram não tem agendamento nativo para bots — isso existe só para contas de usuário dentro do próprio app, não para a API que os bots usam.[3] Ou seja, o bot só envia quando alguém (ou algum processo) manda ele enviar. O relógio precisa ficar do seu lado.

Tenho visto basicamente dois caminhos pra isso:

Opção A — Script simples + cron

É o caminho que escolhi por ser o mais barato em recursos e o mais fácil de entender linha por linha. A lógica:

import os import requests TOKEN = os.environ["TG_TOKEN"] CHAT_ID = os.environ["TG_CHAT_ID"] def enviar_resumo(texto: str): url = f"https://api.telegram.org/bot{TOKEN}/sendMessage" resp = requests.post(url, data={"chat_id": CHAT_ID, "text": texto}) resp.raise_for_status() if __name__ == "__main__": resumo = "Bom dia! Resumo de hoje: 3 tarefas pendentes, 1 conta vence em 2 dias." enviar_resumo(resumo) 

E o agendamento fica a cargo do cron do sistema:

# todo dia às 7h da manhã 0 7 * * * /usr/bin/python3 /caminho/para/resumo_diario.py 

Vantagem: nenhuma dependência extra rodando 24/7, memória quase zero, fácil de depurar — é só um script e uma linha de crontab. Essa combinação (script pontual + cron) é inclusive recomendada como o padrão mais barato para hosts que não ficam sempre ativos, já que o cron só desperta o processo quando necessário, em vez de manter um daemon residente em memória.[4]

Opção B — Automação visual (n8n ou similar)

Se o objetivo for conectar várias fontes diferentes (planilha, e-mail, calendário, um resumo gerado por IA) sem escrever muito código, uma ferramenta de automação visual como o n8n compensa. Ele é open source, pode ser autohospedado via Docker e tem nós prontos para IA, HTTP e agendamento, construindo o fluxo visualmente a partir de blocos.[1][2] A desvantagem é que você passa a manter um serviço rodando (o próprio n8n), o que é mais peso do que precisa para uma tarefa tão pequena quanto "me manda uma mensagem todo dia".

Para o meu caso — um resumo diário e alguns lembretes pontuais — o script com cron resolvia 100% do problema sem precisar manter nenhum serviço adicional de pé. Guardei o n8n como opção para quando eu quiser encadear fontes mais complexas (por exemplo, puxar de uma planilha e gerar um resumo com IA antes de enviar).

Passo 4 — Evoluindo o conteúdo da mensagem

A parte "bot" é só o canal de saída. O conteúdo pode evoluir de um texto fixo para algo gerado dinamicamente: ler uma lista de tarefas de um arquivo, montar um resumo com um modelo de linguagem, ou agregar múltiplas fontes antes de montar a mensagem final. O ponto chave é manter a separação de responsabilidades: um pedaço do código monta o texto, outro pedaço só dispara o sendMessage. Isso facilita trocar a lógica de conteúdo sem tocar na parte de entrega.

Cuidados que vale levar a sério

  • Token fora do código: sempre em variável de ambiente, nunca hardcoded.
  • Rate limit: a API do Telegram tem limites de mensagens por minuto; não adianta tentar usar isso para spam ou broadcast em massa sem tratar isso.
  • Falha silenciosa: se o host reinicia ou o cron falha, o bot simplesmente não envia nada e você não fica sabendo — vale adicionar um log simples ou um alerta de "último envio" para não descobrir isso dias depois.

Conclusão

Dá pra montar um assistente pessoal de notificações em poucas horas, sem gastar nada com SaaS de automação: um bot criado pelo BotFather, um script curto fazendo sendMessage e o cron do próprio sistema cuidando do agendamento. Para casos mais simples — um resumo diário, um lembrete pontual — essa combinação já resolve. Para fluxos mais ricos, com múltiplas fontes de dados e lógica mais elaborada, ferramentas como o n8n valem a complexidade extra. O importante é começar pequeno, testar o envio manual primeiro, e só então automatizar — assim qualquer erro aparece antes de virar um hábito de notificação quebrada.

📚 Recursos recomendados

  • Vilros Raspberry Pi 5 Starter Kit Max — uma placa dedicada e barata de manter ligada 24/7 é o próximo passo natural para hospedar esse tipo de bot/automação pessoal sem depender do seu notebook.

Sources

[1] https://n8n.io — n8n - AI Workflow Automation Platform
[2] https://www.infralovers.com/blog/2025-05-09-n8n-workflow-automation — n8n Guide: Self-Hosted Workflow Automation vs Zapier & Make (2025)
[3] https://core.telegram.org/bots/api — Telegram Bot API - sendMessage
[4] https://crontap.com/use-cases/cron-jobs-for-telegram-bots — Scheduled Telegram bot messages | Crontap