Synchronize Org TODO lists and Google Tasks.
This package provides two entriy points.
org-sync-gtasks-at-point
org-sync-gtasks-agenda
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.
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)
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"))
- This command can handle only your default tasklist of Google Tasks.