Package: taskw-gcal-sync
Taskwarrior - Google Calendar synchroniserThis project has now migrated totaskwarrior-syncall. Please use that instead.masterdevel_            _                                _
| |_ __ _ ___| | ____      __   __ _  ___ __ _| |    ___ _   _ _ __   ___
| __/ _` / __| |/ /\ \ /\ / /  / _` |/ __/ _` | |   / __| | | | '_ \ / __|
| || (_| \__ \   <  \ V  V /  | (_| | (_| (_| | |   \__ \ |_| | | | | (__
 \__\__,_|___/_|\_\  \_/\_/____\__, |\___\__,_|_|___|___/\__, |_| |_|\___|
                         |_____|___/           |_____|   |___/Descriptiontaskw_gcal_syncprovides a solution for bidirectional synchronisation betweenTaskwarriorandGoogle
Calendar. Given aCalendarname for Google
Calendar and afilterfor Taskwarrior (currently only a single tag is
supported and tested) synchronise all the events between them.Overall, it supports synchronisation on the following events:Creation of an eventModification of an (existing) eventDeletion of an eventThe aforementioned features should work bidirectional, meaning a reminder
created, modified, or deleted from Google Calendar should also be created,
modified, or deleted respectively in TaskWarrior and vice-versaDemo - first run - populating calendar in GCalMotivationWhile Taskwarrior is an excellent tool when it comes to keeping TODO lists,
keeping track of project goals etc., lacks the portability, simplicity and
minimalistic design of Google Calendar. The latter also has the following
advantages:Automatic sync across all your devicesComfortable addition/modification of events using voice commandsActual reminding of events with a variety of mechanismsInstallation instructionsRequirements:Taskwarrior -Installation instructions-
Tested with 2.5.1Python version >= 3.8Installation Options:Pypi (may not contain latest version):pip3 install --user --upgrade taskw_gcal_syncGithub:pip3 install --user git+https://github.com/bergercookie/taskw_gcal_syncDownload and installdevelbranch locally - bleeding edgegitclonehttps://github.com/bergercookie/taskw_gcal_synccdtaskw_gcal_sync
gitcheckoutdevel
pip3install--user--upgrade.Setup usingpoetry- handy for local
development:gitclonehttps://github.com/bergercookie/taskw_gcal_sync
poetryinstall# get an interactive shellpoetryshell# now tw_gcal_sync is in your PATH in this shell and you can also edit and the# changes will take instant effect...Override Calendar API keyUnfortunately I've yet to verify this app with Google so new users are
currently blocked from using it. To bypass that you can register for your own
developer account with the Google Calendar API with the following steps:Firstly, removed the~/.gcal_credentials.picklefile on your system since that
will be reused if found by the app.For creating your own Google Developer App:Go to the Google developer consoleMake a new projectFrom the sidebar go toAPI & Servicesand once there click theENABLE APIS AND SERVICESbuttonLook for and Enable theCalendar APIYour newly created app now has access to the Calendar API. We now have to create
and download the credentials:Again, from the sidebar underAPI And ServicesclickCredentialsEnable theCalendar APIOn the sidebar clickCredentials, and once there clickCREATE CREDENTIALSCreate a newOAuth Client ID. Set the type toDesktop App(app name is not
important).Finally download the credentials in JSON form by clicking the download button
as shown below. This is the file you need to point to when runningtw_gcal_sync.To specify your custom credentials JSON file use the--gcal-secretflag as follows:tw_gcal_sync-c"<calendar-name>"-t"<taskwarrior-tag>"--gcal-secret"<path/to/downloaded/json/file>"Usage instructionsRun thetw_gcal_syncto synchronise the Google calendar of your choice with
the selected Taskwarrior tag(s). Run with--helpfor the list of options.# Sync the +remindme Taskwarrior tag with the calendar named "TW Reminders"tw_gcal_sync--help
tw_gcal_sync-tremindme-c"TW Reminders"Mechanics / Automatic SynchronisationTo achieve synchronization across the two services, we use a push-pull mechanism
which is far easier and less troublesome than an automatic synchronization
solution. In case the latter behavior is desired, users may just run the
script periodically e.g., using cron:$crontab-e
...# Add the following to sync every 10' - modify Calendar and Tag name accordingly# See output and potential errors in your system logs (e.g., `/var/log/syslog`)*/10****tw_gcal_sync-c"TW Reminders"-t"remindme"TroubleshootingHaving trouble installing or using the tool? Take a look at either the
continuous-integration configuration or the unittsests for the installation
steps or the recommended way of using the python code respectively.Something doesn't work? Does the script fail midway through?Record the problem and report it in the ISSUES page. Include as much
information as possible so that I can reproduce it.Clean the configuration file. By default that's going to be$HOME/.config/taskw_gcal_sync:rm -rf ~/.config/taskw_gcal_syncRemove the corresponding Google CalendarRerun synchronisation from scratch to populate Google Calendar with all the
events from your selected taskwarrior filter.Self PromotionIf you find this tool useful, pleasestar it on
GithubTODO ListSeeISSUES listfor
the things that I'm currently either working on or interested in implementing in
the near future. In case there's something you are interesting in working on,
don't hesitate to either ask for clarifications or just do it and directly make
a PR.