Let your Oura readiness score reshuffle your Todoist day

By General Input

Every weekday at 7am, your recovery decides the plan: hard work when you have the capacity, lighter admin when you do not.

Integrations

  • Oura
  • Todoist
  • Slack Bot

Type

Agentic Task

Categories

  • Personal Productivity

Every weekday at 7am in my local timezone, look at how recovered I actually am and decide what I should work on today. Use a cron trigger for this, since it needs to run on a fixed morning schedule.

Step 1. Read this morning's numbers from Oura. Use List Daily Readiness and List Daily Sleep, both scoped to today's date. Take my readiness score, and use the sleep score plus the readiness contributors (HRV balance, resting heart rate, body temperature, previous night's sleep) as supporting evidence for the explanation you will give me later.

Step 2. Pull my open tasks due today from Todoist with List Tasks. Scope this to a single project so the workflow never touches my personal or shared lists. Default that project to my main work project, and make it easy for me to change.

Step 3. Read the task titles and classify each one as either deep work (writing, designing, analysis, strategy, anything needing sustained focus) or light admin (approvals, quick replies, expenses, scheduling, filing, short calls). Judge this from the actual wording of each task. If a title is too vague to classify with confidence, treat it as light admin and say so in the summary rather than moving it.

Step 4. Branch on the readiness score. If readiness is 80 or above, pick the single hardest deep work task and promote it to top priority using Update Task, then tell me to do it first while I have the capacity. Note that Todoist's API represents the highest priority as 4, which shows up as P1 in the app, so set it to 4. Change nothing else.

If readiness is between 70 and 79, leave my plan completely untouched. Make no writes at all. This is a normal day and I do not want the workflow fiddling with it.

If readiness is below 70, rebalance the day. Use Update Task to move the most cognitively demanding items to tomorrow, and use Update Task to pull lighter admin work forward to today so the day still moves without wrecking me. Be conservative: reschedule at most the two or three heaviest items, never the entire list. Also use Create Task to add exactly one evening wind down reminder for tonight, and only on these low readiness days.

Step 5. Finish by sending me a Slack direct message with Send a Message. This is the accountability step, not decoration. Because this workflow edits my real task list, the message must always state exactly what changed: every task moved, what it was changed from and to, anything newly created, and the readiness number and reasoning behind each call. Explicitly note what you left alone too. Write it so I can scan it in ten seconds and reverse any wrong call before I start work.

Guardrails. If Oura returns no readiness data for this morning, for example because I did not wear the ring or it has not synced, make no changes at all and send me a Slack message saying the workflow ran but stayed hands off, and why. Never guess a readiness score. Never move a task that is already overdue, and never move the same task to tomorrow two days running, since that means it will never get done. Only ever touch tasks in the one project I scoped it to.

Knobs I will want to change: the 80 and 70 thresholds, since the right cutoffs depend on my personal readiness baseline; which Todoist project the workflow is allowed to operate on; the 7am run time; and whether the summary goes to a direct message or a private channel.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them