Skip to main content

Automatically reschedule tasks in Todoist to reduce the size of the todo lists you see each day.

Project description

Release Notes Downloads Python Versions GitHub CI Status License: MIT

Todoist Task Scheduler & Filterer

I'm a heavy user of Todoist and I noticed that:

  1. If I have a smaller list of tasks to accomplish, I get through them faster.
  2. Having a large list of tasks creates 'cognitive drag' and stresses me out
  3. It takes time to look through and review long list of tasks

This tool enables you to set up rules to automatically punt tasks that don't need to get done today. This reduces the size of your todoist lists and tricks your monkey mind into getting more done. The ultimate goal for me is to get to 'inbox zero' on todoist.

This tool has helped in a big way, acting as a 'virtual assistant' in a way: automatically determining what I shouldn't see for the day. I tie this into a 'first awake' script executed by hyper focus.

Usage

Usage: todoist-scheduler [OPTIONS]

  Organizes todoist tasks based on custom rules

Options:
  --task-limit INTEGER   Total task limit for the day  [default: 20]
  --default-filter TEXT  Default todoist filter  [default: (today | overdue) &
                         !assigned to:others & !recurring]
  --filter-json TEXT     Default filter file  [default: filters.json]
  --punt-time TEXT       How far to punt a task into the future. Use todoist
                         natural language format. The special value 'jitter'
                         will generate a random date.  [default: in 2 days]
  --jitter-days INTEGER  What day range to jitter tasks across when
                         rescheduling them  [default: 14]
  --dry-run              Dry run the task updates
  --api-key TEXT         API key. Sourced from TODOIST_API_KEY as well
  --help                 Show this message and exit.

Take a closer look at the default filter:

default: (today | overdue) & !assigned to:others & !recurring

Here's what this does:

  • Only applies filters to task that are assigned to you
  • Ignores recurring tasks
  • Looks at tasks due on or before today

filters.json schema

[
  // limit defines the number of tasks you think you can complete today
  { "filter": "@writing", "limit": 2 },
  { "filter": "@research", "limit": 3 },

  // the filter text uses the todoist search syntax
  { "filter": "#House", "limit": 3 },
]

The JSON file is loaded in as JSON5 so you can add comments.

You can also override options for specific entries and reference saved/named filters:

[
  // loosen the priority filter
  { "filter": "@writing", "limit": 2, "priority": 2 },

  // reference a saved filter
  { "filter": "Communication", "limit": 3 },
]

Development

Run with debug logging:

LOG_LEVEL=DEBUG todoist-scheduler

Play with the Todoist API (in ipython):

from todoist_api_python.api import TodoistAPI
import os
api = TodoistAPI(os.getenv("TODOIST_API_KEY"))

Note that ipython is not included in the repo, I install all my debugging tools via this alias instead of including them in the poetry config.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todoist_scheduler-0.3.3.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

todoist_scheduler-0.3.3-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file todoist_scheduler-0.3.3.tar.gz.

File metadata

  • Download URL: todoist_scheduler-0.3.3.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/6.2.0-1016-azure

File hashes

Hashes for todoist_scheduler-0.3.3.tar.gz
Algorithm Hash digest
SHA256 731abfb44a5679859cb4d7fdb74243eb676e78b6091601f8e419a42fb517aff7
MD5 55ed361e484af2f4b411f427962a425b
BLAKE2b-256 aac980c62464734bbf147bde475434a4132d2c5380c12a09c11854dbbe22a09d

See more details on using hashes here.

File details

Details for the file todoist_scheduler-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: todoist_scheduler-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.6 Linux/6.2.0-1016-azure

File hashes

Hashes for todoist_scheduler-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0225055ea311e3ec2d1b4b49e26d55c7a0b985c8706f9ef53317df62d3b4e214
MD5 f4bb7bae37f8dafa05fa7fac872fd6e6
BLAKE2b-256 d9f6a1ff500c126e03d50646230d59f8ca123ae0ba99bb10254113cde12fb614

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page