Skip to content

ychubachi/org-sync-gtasks

Repository files navigation

https://coveralls.io/repos/github/ychubachi/org-sync-gtasks/badge.svg?branch=main

Org Sync GTasks

Synchronize Org TODO lists and Google Tasks.

Usage

This package provides two entriy points.

  1. org-sync-gtasks-at-point
  2. org-sync-gtasks-agenda
  3. org-sync-gtasks-unsync-at-point

Move your cursor to an Org TODO headline and M-x org-sync-gtasks-at-point. Then a new task is inserted to your default Google Tasks tasklist. Several properties of a Google Tasks task will be added to the headline. The GTASKS-ID property is the most important property which enables this command to determin the headline is already synchronized to the Google Tasks item.

If you edit the task on Google Tasks side, using this command again will pull the changes to your Org TODO headline. Or if you edit the Org TODO headline and use this command, the Google Tasks task will be updated.

M-x org-sync-gtasks-agenda applies the org-sync-gtasks-at-point command to all your TODO headlines with the GTASKS-ID property in the Org agenda files. Plus, the new tasks in Google Tasks which are not in Org agend files are inserted as Org headlines at the current cursor position.

M-x org-sync-gtasks-unsync-at-point removes the task from Google Tasks and clears all Google Tasks properties such as GTASKS-ID.

Configration

Obtain your credential file in JSON format from Google Developres Console. Don’t forget to give Google Tasks access permitions to it. Put your JSON file to ~/.gtasks_client_secret.json. You can change this path by customizing org-sync-gtasks-client-secret-json variable.

The access token is stored in ~/.emacs.d/oauth2.plstore and encrypted by GnuPG. If you want to enter the pass phrase in Emacs mini-buffer, set epg-pinentry-mode variable to loopback.

(setq epg-pinentry-mode 'loopback)

This allows the GPG passphrase to be cached during the Emacs session.

(setq plstore-cache-passphrase-for-symmetric-encryption t)

Installation

If you use straight.el,

(straight-use-package '(org-sync-gtasks :type git :host github
                                        :repo "ychubachi/org-sync-gtasks"))

If you use leaf.el with straight,

(leaf org-sync-gtasks
  :straight (org-sync-gtasks :type git :host github
                        :repo "ychubachi/org-sync-gtasks"))

Limitations

  • This command can handle only your default tasklist of Google Tasks.

Releases

No releases published

Packages

No packages published