sxsphinxstack

Projects / The chore rotation bot

The chore rotation bot

Level 2: two to three weeks, real architecture. Use with: automate-a-task, use-an-api, backend-basics. Resume line when done: Built {bot_name}, a scheduled messaging bot managing a real household rotation — {n} weeks of on-time reminders, zero missed rotations

Brief

Whose week is it for dishes, trash, or driving is a recurring argument in your house because the rotation lives in everyone's memory. Build a bot that knows the rotation and messages the right person on the right day. Use a platform your household already reads with a free official bot API: Telegram bots are free and simple, a Discord webhook works if your family server exists. The bot posts under its own name in the shared chat, so everyone sees whose turn it is. Rotation state lives in a file the bot updates, and the schedule runs on GitHub Actions cron or Val Town (both free).

Personalize

Milestones

  1. Write the rotation on paper and run it manually for one week: you send the reminder text yourself each day. Note every complaint about timing and wording.
  2. Encode the rotation as data: people, chores, cadence, exceptions. A script prints today's assignment correctly for any date you feed it.
  3. Create the bot (Telegram via BotFather, or a Discord webhook) and send one hand-triggered message to a private test chat.
  4. Wire the rotation to the bot: one command sends today's real assignment. Token goes in an env var.
  5. Schedule it. Confirm the timezone math: the message must land at the agreed local hour.
  6. Add state: the bot records what it sent, so a rerun on the same day never double-pings.
  7. Go live in the household chat with the household's blessing. First week: watch, collect complaints, adjust wording and timing.
  8. Add the swap feature your house needs most (skip a day, trade a week), triggered by a command anyone in the chat can send.
  9. Two more weeks unattended. README: the rotation model, setup, and what the house says about it now.

Done means