The Google Tasks pack enables you to view, edit, and manage your tasks and task lists. After connecting a Google account, the pack enables managing tasks with the CreateTask, UpdateTask, and DeleteTask Actions, as well as retrieving all tasks (optionally filtered) with the Tasks and Task Formulas. You can also retrieve task lists with the Tasklists or Tasklist Formulas. Sync tables for Tasks and Tasklists enable you to continuously pull in your latest Tasks into a table in your doc.
More info about the pack including an interactive demo can be found on the Featured doc:
The Google Tasks service and API is fairly complex, so I will be rolling out additional functionality in stages. Please reach out if there is a feature that was not listed or that you would prefer be implemented sooner.
enable toggling the status of tasks between “needsAction” or “completed” with an Action
show task relational information on read Formula results, namely the parent task identifier and position of the task among its sibling tasks
enable moving a task vertically under a different parent or to the top level, and horizontally to another position among its siblings
The Google Tasks API which powers this pack is currently labelled as experimental, and some of the functionality available in various Google experiences is not yet supported through the API. A non-exhaustive list of current limitations is found in the Featured doc, which includes links to corresponding issues in Google’s Issue Tracker folder for the Tasks component. Feel free to +1 these issues if they affect you, for faster resolution.
Nice work, congrats! Really great to see folks like you being able to create Packs so quickly. That has always been our hope, and we’ve strived to make the platform easy to use, but it’s another thing to see it in action. I’ve been an on-and-off user of Google Tasks over the years, and I bet a lot of people will find this Pack useful.
Pack has been published to the Pack Gallery! See the listing here:
Also, if anyone finds themselves building a simple doc that showcases some of the functionality of the pack, please consider sharing it so that it can appear on the Pack listing and demonstrate its usage for other Coda users!
(The below workaround is no longer needed now that the pack is verified)
Note that after adding the pack to your doc, you will need to connect a Google account.
Since the pack uses Google APIs to access Google users’ data, it must undergo a verification process before being properly published. At the moment, it is published but unverified. This means that you can connect your Google account, but Google will display a scary “Unverified app” screen before displaying the usual OAuth consent screen. You can read more about it here: https://support.google.com/cloud/answer/7454865
There is no good way yet as a Pack developer to verify Coda Pack with Google, so the workaround is to click on the “Advanced” link in the “Unverified app” screen, and then on the “Go to coda.io (unsafe)” link. See images below.
Coda has put in place fairly extensive measures to prevent bad actors from mishandling your data associated with 3rd party services (e.g. your Google account), but for peace of mind I have made the source code open source (even though there is no way of knowing whether that code is indeed what was used to build the pack ).
If attempting to install a pack such as this Google Tasks pack that uses Google Workspace authentication and you receive a screen that does not allow for @louca.developer’s workaround …
Very interesting! I have a colleague who keeps his todos in google tasks and out of habit has trouble moving to our coda docs. I suppose this may help if we can have our coda tasks show up in his google task list. Is it possible to use this pack for specific users of a doc?
Certainly possible to have Coda tasks showing up in Google Tasks, although the creation of Tasks in the Google Account would need to be done manually (with buttons etc that could potentially be automated with RunActions or an automation).
Not sure what you mean exactly by “specific users of a doc”, but I will try to answer. Here is a handy (albeit oriented towards developers) guide on how external accounts work within Coda: Authentication - Coda Pack SDK
Essentially, when any user of the doc first installs a pack into the doc, they will be prompted to sign in to their external account (here, the Google account). From there, they can choose whether the “connected account should be shared with other users in the same doc”, allowing collaborators to take action on the behalf of the signed in user. If not, then each user of the doc will have to connect their own account (I suppose when using the pack functionalities, or perhaps immediately after loading the doc, not sure).
By “specific users of a doc” I mean so that each user can connect to their own google account to have their tasks in coda sync with their google account, not some shared single account. And it seems that is possible based on your response by each users authenticating with his own account (or potentially not at all).
Great, thanks! I’ve run a comparison between my own query against the Task API, vs what I see in my Coda doc with your pack, and it’s definitely pulling through the “updated” flag from the API into the “due” date in Coda.
Is there a way to trigger a refresh of the Tasks data into the Code doc, other than via insert → packs → Google tasks → settings then click refresh?
Great question. The current way of doing things (a formula that returns a list of tasks) is not well-suited for data that is likely to change externally (e.g. adding tasks on the web client).
The better way is to use a sync table, which enables the data to be viewed within Coda in a more natural table format, and also auto-refreshes (with a manual refresh option) on a set interval (no more than every hour).
I have studied the documentation and played around with this pack feature a bit, and plan to implement it for the Google Tasks pack as soon as I have the time. Realistically this could be anywhere between two weeks from now to early May.
Thanks - yes I agree, a sync table would work well for my purpose (like in the Calendar pack).
Fair enough re when you might find time for future development! Let me know if you need a tester for anything. I did try to read through the pack code to figure out what’s going on with that due date issue but couldn’t spot a likely culprit.
@Eric_Koleda I cannot see what part of my code would introduce this bug (I do not explicitly manipulate the payload I receive from the API), and also logging the payload I receive at every step (even the final object returned by the execute function in the pack.ts) all show the right dates. Only once it is exposed in Coda are the “due” and “updated” values swapped. I have also checked the schemas I created and all seems to be in order. Could this be a Coda packs bug?
@louca.developer - Perhaps you are using the fromKey field in the schema, and they are mixed up there? In that case you could be returning the correct value from your execute function, but it is being mapped to the wrong value in your schema.
Appreciate the troubleshooting suggestion. I am however not using the fromKey in the schema for any of the problematic properties (though I have recently made a change to the schemas, after I was able to repro the bug, that introduced the two only usages of the fromKey field).
I can create a project in google, but don’t have admin access in my org. Can I make an app that uses this pack and add a private oauth app? (apologies if I’m barely making sense, I’m near out of my depth)
@Brian_Duchek if you are not the Google Workspace admin for your organization, could you contact him/her and ask them to follow steps 4-7 on your behalf?