All Projects → bergercookie → Taskw_gcal_sync

bergercookie / Taskw_gcal_sync

Licence: mit
Synchronization between Taskwarrior tasks and Google Calendar events-reminders

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Taskw gcal sync

calendar-assistant
Command-line tool to manage your Google Calendar
Stars: ✭ 15 (-81.48%)
Mutual labels:  google-calendar
Gcal Cli
Google Calendar command line tool for Node.js
Stars: ✭ 255 (+214.81%)
Mutual labels:  google-calendar
Inout2
A web-based office in/out board powered by Google Calendar, written in Google Apps Script
Stars: ✭ 24 (-70.37%)
Mutual labels:  google-calendar
google-calendar-api
Demo Project for Google Calendar API Using Spring Boot Rest API with OAuth2
Stars: ✭ 25 (-69.14%)
Mutual labels:  google-calendar
calendar-link
📅 Calendar link generator for popular services
Stars: ✭ 193 (+138.27%)
Mutual labels:  google-calendar
Outlookcaldavsynchronizer
Sync Outlook with Google, SOGo, Nextcloud or any other CalDAV/CardDAV server
Stars: ✭ 560 (+591.36%)
Mutual labels:  google-calendar
node-google-calendar
Simple node module that supports Google Calendar API
Stars: ✭ 76 (-6.17%)
Mutual labels:  google-calendar
I3 Agenda
Show your next google calendar event in polybar or i3-bar
Stars: ✭ 62 (-23.46%)
Mutual labels:  google-calendar
react-google-calendar
React Calendar Component that displays data from Google Calendar
Stars: ✭ 64 (-20.99%)
Mutual labels:  google-calendar
Nuaa Ical Python
📆 根据南京航空航天大学的课程表生成 .ics 日历格式文件,以将课程事件导入其他日历软件(如 Google Calendar)。
Stars: ✭ 18 (-77.78%)
Mutual labels:  google-calendar
birthday
农历生日 for Google calendar
Stars: ✭ 60 (-25.93%)
Mutual labels:  google-calendar
garoogle
GaroonとGoogle Calendarの予定を同期します
Stars: ✭ 25 (-69.14%)
Mutual labels:  google-calendar
Laravel Google Calendar
Manage events on a Google Calendar
Stars: ✭ 787 (+871.6%)
Mutual labels:  google-calendar
google-calendar-slack-status
Automatically sync your Google Calendar events to your Slack status
Stars: ✭ 33 (-59.26%)
Mutual labels:  google-calendar
Iobroker.ical
Allows read information from google calender and from iCal into ioBroker.
Stars: ✭ 28 (-65.43%)
Mutual labels:  google-calendar
bhitte-patro
Google Calendar for Nepali Date
Stars: ✭ 25 (-69.14%)
Mutual labels:  google-calendar
Fb2cal
Fetch Facebook Birthdays events and create an ICS file for use with calendar apps
Stars: ✭ 335 (+313.58%)
Mutual labels:  google-calendar
Dark google calendar
Dark theme for Google Calendar.
Stars: ✭ 81 (+0%)
Mutual labels:  google-calendar
Phpcalfeed
A simple PHP script for providing calendar feeds for your website in a variety of different formats including iCalendar, RSS, JSON and XML.
Stars: ✭ 31 (-61.73%)
Mutual labels:  google-calendar
Google Calendar Crx
Google Calendar for Chrome
Stars: ✭ 891 (+1000%)
Mutual labels:  google-calendar

Taskwarrior - Google Calendar synchroniser

master devel
PyPI version Downloads Code style: black
 _            _                                _
| |_ __ _ ___| | ____      __   __ _  ___ __ _| |    ___ _   _ _ __   ___
| __/ _` / __| |/ /\ \ /\ / /  / _` |/ __/ _` | |   / __| | | | '_ \ / __|
| || (_| \__ \   <  \ V  V /  | (_| | (_| (_| | |   \__ \ |_| | | | | (__
 \__\__,_|___/_|\_\  \_/\_/____\__, |\___\__,_|_|___|___/\__, |_| |_|\___|
                         |_____|___/           |_____|   |___/

Description

taskw_gcal_sync provides a solution for bidirectional synchronisation between Taskwarrior and Google Calendar. Given a Calendar name for Google Calendar and a filter for 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 event
  • Modification of an (existing) event
  • Deletion of an event

The 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-versa

Demo - first run - populating calendar in GCal

demo_gif

Motivation

While 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 devices
  • Comfortable addition/modification of events using voice commands
  • Actual reminding of events with a variety of mechanisms

Installation instructions

Requirements:

  • Taskwarrior - Installation instructions
  • Python version >= 3.6 (yeah kind of restrictive, but mypy rocks!)
  • Python package dependencies: pip3 install --user --upgrade -r requirements.txt # from the repo root dir

Installation Choices:

  • Pypi: pip3 install --user --upgrade taskw_gcal_sync

    • (will not contain latest version)
  • github: pip3 install --user git+https://github.com/bergercookie/taskw_gcal_sync

  • Download and install locally - bleeding edge

    git clone https://github.com/bergercookie/taskw_gcal_sync
    cd taskw_gcal_sync
    git checkout devel
    pip3 install --user --upgrade -r requirements.txt
    

Usage instructions

Run the tw_gcal_sync to synchronise the Google calendar of your choice with the selected Taskwarrior tag(s). Run with --help for the list of options.

# Sync the +remindme Taskwarrior tag with the calendar named "TW Reminders"

tw_gcal_sync --help
tw_gcal_sync -t remindme -c "TW Reminders"

Mechanics

To 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
*/10 * * * * tw_gcal_sync -c "TW Reminders" -t "remindme" 2>&1 1>~/tw_reminders_latest.log

Troubleshooting

  • Having 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_sync

    • Remove the corresponding Google Calendar

    • Rerun synchronisation from scratch

Self Promotion

If you find this tool useful, please star it on Github

TODO List

See ISSUES list for 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].