/alfred-workflow-todoist

An Alfred workflow for adding tasks to Todoist

Primary LanguageTypeScriptMIT LicenseMIT

Build Status Coverage Status Greenkeeper badge

ALFRED TODOIST WORKFLOW

Add and search Todoist tasks straight from Alfred. It uses Todoist v8 REST API.

Getting started Installation Configuration Usage Contributing

Getting started

  • For this workflow to work you need version 3.x of Alfred and a powerpack licence.
  • Node.js. If you install node.js in a non-standard way be advised that the workflow expects the binary to be in /usr/local/bin or /usr/bin

Installation

Download and import workflow.

Configuration

Name Notation Explanation
token ^[0-9a-fA-F]{40}$ (default empty) The todoist API token.
language en, da, pl, zh, ko, de, pt, ja, it, fr, sv, ru, es, nl (default en) The language for natural language date processing (by todoist) and to calculate time to complete a task.
cache_timeout A positive number (default 3600, an hour) The time (in seconds) until the cache is refreshed (until that time todoist information is stored locally to make things a little faster)
anonymous_statistics true or false (default true) Doesn't do much at the moment but I intent to use it to track installs

todo:setting token {api token}

Example: todo:setting token 2d2e2a334c5f36e7a7c43b46e

todo:setting language {language}

Example: todo:setting language nl

todo:setting cache_timeout {time in seconds}

Example: todo:setting cache_timeout 13

todo:setting anonymous_statistics {true or false}

Example: todo:setting anonymous_statistics false

Usage

Name Notation Explanation
task Any text except , The task title.
date A date string See the Todoist documentation for supported date formats.
project Either #personal or #[next actions] Use either the hashtag notation or bracket notation if the project name has spaces in it. The project name is case insensitive.
label @label Label names can't contain any whitespace characters. Labels are case insensitive.
priority Either p2 or !!2 A value between 1 (urgent) and 4 (normal)

Search for tasks

todos {query}

Query

Any search query one character or longer. Uses fuzzy search to find the tasks.

Example: todos car => returns (because of fuzzy search):

  • Rent car
  • New cat recipe's
  • Cut Gras tomorrow

Create task

todo {task}, {date}

Example: todo Get things done, tomorrow @ 9 Example: todo Build tree house #home !!2 @15min, tomorrow @ 9

Documentation

Read the docs.

Changelog

View CHANGELOG.md

Contributing

Instructions

- Fork and clone the repo
- Install dependacies
- Symlink to project workflow folder

  git clone https://github.com/YOUR-USERNAME/alfred-worflow-todoist
  npm install
  npm run setup:dev

Build

Create a new build with

npm run build

Run tests

Run Jest test suite with:

npm run test npm run test:prod

Or run a watcher with

npm run test:watch

Commits

For commits I follow the angular commit guidelines and use semantic release to automate builds, semver version updates and changelog creation. The way to make sure this all works is to run:

npm run commit

Which guides you through the motions

Code of conduct

code-of-conduct.md

License

License MIT © Martien Oranje