New to Kestra?
Use blueprints to kickstart your first workflows.
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.
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.
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.create_checklist (io.kestra.plugin.core.flow.Loop) iterates over {{ vars.chores }}, passing one chore per iteration as item.value.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.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.Schedule trigger runs the flow every Monday at 08:00.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.
TODOIST_API_TOKEN: Todoist personal API token.DISCORD_WEBHOOK_URL: Discord incoming webhook URL.disabled: false on the weekly trigger.projectId to create_chore.priority by splitting the list into two Loop fan-outs.