The problem
Existing reminder apps make you fight a date picker. Existing voice assistants make you fight their grammar. Most of the time the right interface is the chat window already open on your phone — you say what you mean, the bot does the rest.
What we built
Nudgle is a Telegram bot that accepts natural-language scheduling and turns it into structured reminders. It supports recurring tasks (“every weekday”, “the last Friday of each month”), per-user timezones, quiet hours, vacation mode, and one-shot reminders with relative dates (“in two hours”, “next Tuesday morning”). Tasks live in Postgres; a worker fires them on time and handles silent windows.
The AI angle
Claude does the parsing. The prompt is small, deterministic, and asks for a structured JSON object. We constrain it with a schema and a tight set of examples; the bot only proceeds if the parse round-trips back into a sentence the user agrees with. When the user says “yes that’s right”, both the input and the parse get logged to a regression set we use to vet new prompt versions.
How it’s used
- Busy parents who want to capture a reminder without unlocking another app.
- Founders who already live in Telegram for ops chats.
- Teams using a shared Nudgle bot as a lightweight scheduler for routine pings.
What it taught us
That natural-language input only works when the bot reflects back what it understood, every time. The single biggest reduction in user errors came from making Nudgle say “OK — reminder set for Tuesday 9pm, repeats weekly. Reply ‘no’ to fix.” before committing. The undo is more important than the parser.
Why a chat bot instead of a calendar integration
The tempting build is a Google Calendar sync — more structured, more familiar to build against. We went with a standalone Telegram bot instead, because the entire value proposition is capturing a reminder in the same window you’re already typing in, with zero context switch. A calendar integration means opening a different app, finding the right day, and filling in fields — exactly the friction Nudgle exists to remove. Storing everything in our own Postgres, rather than delegating to a calendar API, is also what makes quiet hours and vacation mode possible: those are business rules about when a reminder is allowed to fire, and they only work if we own the delivery logic end to end rather than handing scheduling off to someone else’s calendar.