LoginSignup
4
1

More than 1 year has passed since last update.

【Googleタスク】GASでToDoリストを操作してみた

Last updated at Posted at 2022-04-24

概要

いまさらGoogleのToDoリスト(Googleタスク)を利用するようになったので、GASから操作できるのかな?と試してみたら、意外と出来ることが限られていたり、バグ?仕様?のようなものにブチ当たったってお話。

参考

GASリファレンスのTasksAPIの記述
TasksAPIのリファレンスドキュメント

準備

エディタのサービスの追加でTasks APIを有効にしておく。

リストの取得

リストを取得するメソッドがこちら
Tasks.Tasklists.list()

リストとその情報がJSONで次のように取得できる。

{items=[
        {id=リストのID, 
         etag=リソースのETag,
         selfLink=リストのURL, 
         title=タスクのタイトル,
         kind=tasks#taskList,
         updated=最終更新日時}
       ],
 etag=リソースのETag,
 kind=tasks#taskLists}

itemsの中の波括弧が一つのリストの情報で、リストが複数あれば波括弧のセットがリストの個数分並ぶ。なので、一つ目のリストのタイトルとIDを取得しようと思ったらこんな感じ。

function getList() {
  var taskLists = Tasks.Tasklists.list();
  Logger.log(taskLists.items[0].title);
  Logger.log(taskLists.items[0].id);
}

タスクの取得

リストを取得するメソッドがこちら
Tasks.Tasks.list(リストのID)

タスクとその情報がリストの時と同じ感じで取得できる。

リストと比べて情報量が多いので、詳細は上記参考にも書いたTasksAPIのリファレンスドキュメントのREST resource→tasks→Overviewをご参照。

例えば、一つ目のタスクのタイトル、説明、期日を取得しようとするならこんな感じ。

function getTask() {
  var tasks = Tasks.Tasks.list('リストのID');
  Logger.log(tasks.items[0].title);
  Logger.log(tasks.items[0].notes);
  Logger.log(tasks.items[0].due);
}

期日のタイムスタンプが破棄されるようで、日付しか取得できないのが残念。

タスクの追加

タスクを追加するメソッドがこちら
Tasks.Tasks.insert(オプション, リストのID);

オプションでタイトルや説明を指定できる。
タイトル、説明、期日を指定してタスクを作成するならこんな感じ。

function addTask() {
  var task = {
              title: 'タイトル',
              notes: '説明文',
              due: '2022-12-31T00:00:00.000Z'
             }
  var taskListId = 'リストのID';
  task = Tasks.Tasks.insert(task, taskListId);
}

取得の時と同様タイムスタンプは破棄されるので、期日は日付のみ指定可能。

検討

GASなので他のGoogleサービスと連携させやすい。
特定のメールがあったら、メールの件名をタスクのタイトル、メールへのリンクを説明文にしてタスクを作成するスクリプトを作り、トリガーで毎日作動。とか?

外部のサービスなら、ChatworkやLINEと絡めた使い方も考えられそう。

バグ?仕様?

有料版Google Workspaceで使えるGoogleチャットの「スペース」に、スペース内で作ったタスクをメンバーに振り分ける機能がある。
この機能で振り分けられたタスクがリスト内にあると、タスクを取得する際にエラーになってしまうみたい。2022年4月現在

スペースから割り振られるリストと、GASで操作するリストは別にしておく必要がありそう。

おしまい

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1