Schedule icon
Loop icon
CreateTask icon
DiscordIncomingWebhook icon

Create a Recurring Ops Checklist in Todoist on a Schedule

Create a recurring ops checklist in Todoist with Kestra. A weekly fan-out turns a chore list into tasks due at 17:00 and posts the count to Discord.

Categories
Business

Every team has a checklist that exists so nothing gets forgotten, and the checklist itself is the thing most often forgotten. This blueprint removes the human from that loop. The chores live as a plain YAML list inside the flow, and every Monday a Loop fan-out creates one Todoist task per chore through io.kestra.plugin.todoist.CreateTask, each due at 17:00 the same day. Discord gets the created count, so a partial run is visible immediately.

How it works

  1. The chores flow variable holds the checklist as a YAML list. Editing the checklist is a one-line YAML change, reviewed like any other code change.
  2. create_checklist (io.kestra.plugin.core.flow.Loop) iterates over {{ vars.chores }}, passing one chore per iteration as item.value.
  3. create_chore (io.kestra.plugin.todoist.CreateTask) creates the task with the chore text as content and dueString: "today 17:00", so Todoist parses the natural-language due date into a concrete deadline the same day the checklist is generated.
  4. report posts the chore count to Discord using the length filter on the same list, and the errors block posts a distinct alert when creation fails partway.
  5. A disabled-by-default Schedule trigger runs the flow every Monday at 08:00.

What you get

  • A checklist nobody has to remember to create, generated from a version-controlled list.
  • Individual tasks per chore, each independently completable, assignable, and visible in Todoist.
  • A same-day 17:00 deadline on every item, so the checklist cannot roll over silently.
  • A Discord confirmation with the count, making a partial or failed run obvious.

Who it's for

  • Ops and platform teams with weekly hygiene duties that are critical yet individually small.
  • Team leads who keep recreating the same checklist by hand every Monday.
  • Anyone converting a wiki page of "things we should do weekly" into tasks that actually appear weekly.

Why orchestrate this with Kestra

Todoist recurring tasks repeat one task; they cannot regenerate a whole structured checklist from a single source of truth. Kestra keeps the checklist in YAML where it is diffable and reviewable, fans it out on a schedule, isolates per-item failures, and records every generated checklist in the execution history.

Prerequisites

  • A Todoist account and a personal API token.
  • A Discord incoming webhook for confirmations and failure alerts.

Secrets

  • TODOIST_API_TOKEN: Todoist personal API token.
  • DISCORD_WEBHOOK_URL: Discord incoming webhook URL.

Quick start

  1. Add the two secrets to your Kestra namespace.
  2. Replace the sample chores with your team's real checklist.
  3. Execute the flow manually and confirm the tasks appear in Todoist due at 17:00, plus the count in Discord.
  4. Set disabled: false on the weekly trigger.

How to extend

  • Route the checklist into a dedicated project by adding projectId to create_chore.
  • Give heavyweight chores a higher priority by splitting the list into two Loop fan-outs.
  • Switch the cadence by editing the cron, for example the first of the month for monthly duties.
  • Pair with the overdue escalation blueprint so skipped checklist items turn urgent the next morning.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.