-
Notifications
You must be signed in to change notification settings - Fork 1
π Usage
igorp74 edited this page Sep 20, 2025
·
7 revisions
Usage: todo [global options] <command> [command options]
--db-path Custom path and name for the database file (e.g., /path/to/my/todo.db)
Add
add Add a new task.
| Short | Long | Description |
|---|---|---|
| -t | --title | Title of the task (required) |
| -d | --description | Description of the task |
| -p | --project | Project name (will be created if not exists) |
| -s | --start-date | Start date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -D | --due-date | Due date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -E | --end-date | End date (completion date) (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -r | --recurrence | Recurrence pattern (daily, weekly, monthly, yearly, or comma-separated days of week for weekly, e.g., 'weekly:Tue,Thu') |
| -ri | --recurrence-interval | Interval for recurrence (e.g., 2 for every 2 days) (default: 1) |
| -c | --contexts | Comma-separated list of contexts (e.g., 'work,home') |
| -T | --tags | Comma-separated list of tags (e.g., 'urgent,bug') |
| -sw | --start-waiting | Start date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -ew | --end-waiting | End date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -st | --status | Initial status of the task (pending, completed, cancelled, waiting) (default: pending) |
Delete
del Delete a task by ID.
| Short | Long | Description |
|---|---|---|
| -I | --ids | Comma-separated IDs or ID ranges of tasks to delete (e.g., '1,2,3-5,10'). If filters are used, applies to the filtered set. |
| -i | --id | ID of a single task to delete (use -ids for multiple or ranges). If filters are used, applies to the filtered set. |
| -C | --complete | Mark task as completed instead of deleting (for recurring tasks) |
| -p | --project | Filter tasks by project name before deletion |
| -c | --context | Filter tasks by context name before deletion |
| -T | --tag | Filter tasks by tag name before deletion |
| -st | --status | Filter tasks by status (pending, completed, cancelled, waiting) before deletion |
| -x | --confirm | Confirm deletion without prompt when using filters |
Update
update Update an existing task.
| Short | Long | Description |
|---|---|---|
| -I | --ids | Comma-separated IDs or ID ranges of tasks to update (e.g., '1,2,3-5,10') |
| -i | --id | ID of a single task to update (use -ids for multiple or ranges) |
| -t | --title | New title of the task |
| -d | --description | New description of the task |
| -p | --project | New project name |
| -s | --start-date | New start date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -D | --due-date | New due date (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -E | --end-date | New end date (completion date) (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -st | --status | New status (pending, completed, cancelled, waiting) |
| -r | --recurrence | New recurrence pattern |
| -ri | --recurrence-interval | New interval for recurrence |
| -c | --contexts | Comma-separated list of contexts (replaces existing) |
| -T | --tags | Comma-separated list of tags (replaces existing) |
| -sw | --start-waiting | New start date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -ew | --end-waiting | New end date of waiting period (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
| -ac | --add-contexts | Comma-separated list of contexts to add (e.g., 'new_work,urgent_call'). Will append to existing. |
| -rc | --remove-contexts | Comma-separated list of contexts to remove (e.g., 'old_context'). Will remove from existing. |
| -at | --add-tags | Comma-separated list of tags to add (e.g., 'new_feature,high_priority'). Will append to existing. |
| -rt | --remove-tags | Comma-separated list of tags to remove (e.g., 'bug_fix'). Will remove from existing. |
| -cp | --clear-p | Clear project association |
| -cc | --clear-c | Clear all context associations |
| -cT | --clear-T | Clear all tag associations |
| -cs | --clear-s | Clear start date |
| -cD | --clear-D | Clear due date |
| -cE | --clear-E | Clear end date |
| -cr | --clear-r | Clear recurrence |
| -cw | --clear-wait | Clear waiting period |
Notes
add-note Add a new note to a task.
| Short | Long | Description |
|---|---|---|
| -i | --task-id | ID of the task to add a note to (required) |
| -d | --description | Description of the note (required) |
| -ts | --timestamp | Timestamp for the note (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
update-note Update an existing note by its permanent database ID.
| Short | Long | Description |
|---|---|---|
| -n | --id | Permanent database ID of the note to update (as shown in 'list' command) (required) |
| -d | --description | New description for the note |
| -ts | --timestamp | New timestamp for the note (YYYY-MM-DD HH:MM:SS orYYYY-MM-DD). Use empty string with flag to set current time. |
delete-note Delete one or more notes by ID.
| Short | Long | Description |
|---|---|---|
| -I | --ids | Comma-separated IDs or ID ranges of notes to delete (e.g., '1,2,3-5,10') |
| -a | --all | Delete all notes |
| -ti | --task-id | ID of the task whose notes should be deleted |
| -ai | --all-for-task | Delete all notes associated with the specified task ID |
List tasks
list List tasks.
| Short | Long | Description |
|---|---|---|
| -p, | --project | Filter by project names (comma-separated) |
| -xp, | --project | Exclude tasks by project names (comma-separated) |
| -c, | --context | Filter by context names (comma-separated) |
| -xc, | --context | Exclude tasks by context names (comma-separated) |
| -T, | --tag | Filter by tag names (comma-separated) |
| -xT, | --tag | Exclude tasks by tag names (comma-separated) |
| -st | --status | Filter by status (pending, completed, cancelled, waiting, all) (default: pending) |
| -sb | --start-before | Filter by start date before (YYYY-MM-DD HH:MM:SS) |
| -sa | --start-after | Filter by start date after (YYYY-MM-DD HH:MM:SS) |
| -db | --due-before | Filter by due date before (YYYY-MM-DD HH:MM:SS) |
| -da | --due-after | Filter by due date after (YYYY-MM-DD HH:MM:SS) |
| -eb | --end-before | Filter by end date before (YYYY-MM-DD HH:MM:SS) |
| -ea | --end-after | Filter by end date after (YYYY-MM-DD HH:MM:SS) |
| -SB | --sort-by | Sort by field (id, title, start_date, due_date, status, project, end_date) (default: due_date) |
| -o | --order | Sort order (asc, desc) (default: asc) |
| -f | --format | Output format: 0=Full, 1=Condensed, 2=Minimal (default: 0) |
| -n | --notes | Display notes: 'none', 'all', or a number (e.g., '1', '2' for last N notes) (default: none) |
| -i | --ids | Comma-separated IDs or ID ranges of tasks to list (e.g., '1,2,3-5,10') |
| -S | --search | Search for text in task titles, descriptions and notes (case-insensitive) |
Holidays
holiday Manage holidays.
Subcommands for holiday:
| Subcommand | Short | Long | Description |
|---|---|---|---|
add |
-d | --date | Date of the holiday (YYYY-MM-DD) (required) |
add |
-n | --name | Name of the holiday (required) |
list |
List all holidays. | ||
del |
--ids | Comma-separated IDs or ID ranges of holidays to delete (e.g., '1,2,3-5,10') | |
del |
--all | Delete all holidays | |
update |
-i | --id | ID of the holiday to update (required) |
update |
-d | --date | New date of the holiday (YYYY-MM-DD). Use empty string with flag to clear. |
update |
-n | --name | New name of the holiday. Use empty string with flag to clear. |
Working hours
workhours Manage working hours.
Subcommands for workhours:
| Subcommand | Short | Long | Description |
|---|---|---|---|
set |
-d | --day | Day of week (0=Sunday, 1=Monday, ..., 6=Saturday) (required) |
set |
-sh | --start-hour | Start hour (0-23) (required) |
set |
-sM | --start-minute | Start minute (0-59) (default: 0) |
set |
-eh | --end-hour | End hour (0-24) (required) |
set |
-eM | --end-minute | End minute (0-59) (default: 0) |
set |
-b | --break-minutes | Break duration in minutes for this day (default: 0) |
list |
List all defined working hours. | ||
del |
--days | Comma-separated day of week numbers or ranges to delete working hours for (e.g., '1,2,3-5') | |
del |
--all | Delete all working hours |
Managers
Only one command needs to be used, and all the sub commands and flags are the same for project, tag and context.
| Command | Sub-command | Short | Long | Description |
|---|---|---|---|---|
project / tag / context
|
add |
-n |
--name |
Add new item with unique name |
project / tag / context
|
del |
-I |
--ids |
Comma-separated IDs or ID ranges of items to delete (e.g., '1,2,3-5,10') |
project / tag / context
|
update |
-i |
--id |
ID of item to update (required) |
-n |
--name |
Add new item wits unique name | ||
project / tag / context
|
list |
List all items |