Proudly made on earth

Google Tasks: How to share task lists with other users

Invoking the expression of somebody drowning in tasks, a neatly dressed man sitting in a chair and with his eyes closed is covered in Post-it notes that are sticking to his face, shirt and the walls behind him. The notes read 'Eat', 'Sleep', 'Work out', 'Take a break', 'Don't overthink', among many more.

UnsplashLuis Villasmil

Run your own Google Tasks sync service with this little script. Invite your collaborators and turn any task list into a shared list anyone can edit.

You can memorise them. You can write them down in a notebook. You can even write them down on Post-it notes and stick them right to your forehead. Yet when it comes to digital solutions to managing your to-do lists, I find most of them to be lacking in some way or another.

I like Google Tasks because it has just the right amount of features. It is easy to use, well integrated into other Google products and available on all platforms. Best of all, it lets you display and edit tasks without ever having to leave the home screen of your Android or iOS device.

There is only one crucial feature missing: the ability to share lists and collaborate on Google Tasks.

I wanted to change that, so I wrote a little script. Set up as a cron job by each participating user, it regularly checks the user’s task lists for a predefined list. It pulls in any changes from that list and pushes them out to the other users. The result is a single, unified list any user can edit.

View on GitHub

The way this script is designed means that I can’t offer it as a hosted service like I did with my previous Google Drive web apps. Instead, each group of users who wants to work on a shared task list needs to create a new Google Apps Script project by copying and pasting the code. Each user of that group then needs to authorise the script and add a time-driven trigger.

A step-by-step installation guide can be found in the repository. If those steps sound too technical to you, maybe this is not the right solution for you. Have a look at the alternatives discussed below or ask me any question in the comments.

Known issues

In any truly collaborative environment, users should be able to not just make contributions of their own but also to edit and to delete other users’ contributions. The same is true here. As long as everybody is aware of what they are doing, that shouldn’t be a problem. However, there is a scenario where data can be overwritten without anybody noticing.

Let’s say Tuca and Bertie both edit the same task, roughly at the same time. First Tuca changes the title into an important phone number she needs to write down quickly, then Bertie fixes a typo in the original task. At this point, neither of them has received the other’s changes. Once the script has done its rounds, Tuca’s important phone number is erased by Bertie’s less important edit. The most recent version always wins. We can assume that the data wouldn’t have been lost if Bertie had seen Tuca’s changes first.

Luckily, there’s an easy solution. If you want your collaborators to at least see your content before they make up their mind on whether or not to delete it, always put it in a new task. Not an existing one. That’s it.

One more thing: while the due date of a task is synchronised, the time of day is not. For some inexplicable reason, Google doesn’t expose this information through the API. The same goes for repeating tasks—only the initial due date is shown. These limitations only affect the users receiving a copy of the task. The person who created the task will see the full details they entered, as long as nobody else edits the task.

Alternative options

I would like to mention some no-code alternatives which could be relevant to you if your use case is slighty different from mine.

Florian Lehmuth
12 March 2022

Newer Post

Keine Kommentare

What’s your take?