abandoned spike at a Google Calendar-backed TODO CLI app
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



I started writing this command-line app that uses Google Calendar as a backend to store TODO tasks that are scheduled, and helps you conveniently manage rescheduling and following up on your tasks.

Luckily, I didn't get too far before I realized that Taskwarrior can already do what I need my app to do, minus the Google Calendar integration which is really not important to me. (In fact, I took a previous stab at implementing my TODO manager app using a SQLite database, which was working out OK, but it felt kind of clunky to have to write migrations and manage a database, when it occurred to me that I could use an existing calendar service as a backend. I also chose to try writing it in Rust, which slowed me down because I'm not great at Rust!)

So, I've started using Taskwarrior instead, which means I can stop where I am on this app. I'm pushing it to GitHub so that I have a backup of the code, in case I ever need to leverage some of the work that I've done so far. Things I've done so far that could be useful in the future:

  • Kotlin command-line app boilerplate, including JCommander for arg parsing.

  • Basic setup to be able to use the Google Calendar API on users' behalf, which is a bit complicated. (This includes the Setup section below.) I translated some clunky Java code into Kotlin (see GoogleCalendar.kt) and started building my own abstractions on top of it.


tdz requires some credentials authorizing it to use the Google Calendar API on your behalf. To set this up, follow Step 1 of this guide to create credentials and download them as a JSON file.

Then, make a directory ~/.credentials/tdz-google-calendar and place your client_secret.json file there.

The first time you use tdz, you will be asked to authorize tdz to use the Google Calendar API in your browser. After that, it will remember you so that you don't have to re-authorize the application every time.


Copyright © 2018 Dave Yarwood

Distributed under the Eclipse Public License version 2.0.