CData Office365 Drivers で Microsoft To Do のタスクリスト・タスクデータに SQL でアクセスする方法

by 浦邊信太郎 | August 17, 2026 | Last Updated: August 17, 2026

Microsoft 365 には、個人のタスク管理アプリである Microsoft To Do の情報が TodoTaskList(タスクリスト)と TodoTask(タスク)という単位で保持されています。CData Office365 Drivers の TodoTaskLists ビューTodoTasks ビューを使えば、Microsoft Graph API の認証や個別のエンドポイント呼び出しを意識することなく、使い慣れた SQL でこれらのデータを取得・更新できます。タスクの棚卸しや進捗レポート作成など、BI ツールやスクリプトから直接クエリするだけで完結します。

前提条件

  • CData Office365 Drivers(JDBC / ODBC など)がインストール済みであること

  • Microsoft 365(Office 365)テナントのアカウントがあること

  • Azure AD アプリの登録・API アクセス許可の設定権限があること

Microsoft Graph の To Do API について

Microsoft Graph v1.0 の To Do API は、ユーザー個人の Microsoft To Do データを取得・操作するためのエンドポイントを提供します。

リソース

エンドポイント

説明

タスクリスト

/me/todo/lists

ユーザーが持つタスクリストの一覧

タスク

/me/todo/lists/{todoTaskListId}/tasks

指定したタスクリストに属するタスクの一覧

CData Office365 Drivers の TodoTaskLists ビューTodoTasks ビューはこれらの API を内部的に呼び出し、SQL でシームレスにアクセスできるように抽象化します。

設定手順

1. Azure AD アプリを登録する

To Do のデータを取得するには Azure AD アプリの登録が必要です。ドキュメントを参考にアプリを作成してください。その際、API のアクセス許可に委任されたアクセス許可として Tasks.Read(読み取りのみの場合)または Tasks.ReadWrite(更新も行う場合)を追加します。他ユーザーから共有されたTodoタスクにアクセスする場合はさらにTasks.ReadWrite.Sharedを追加してください。

2. CData Office365 Drivers の接続文字列を設定する

以下の接続文字列を参考に、対象テナントの情報を入力します。

JDBC の場合

String connectionString =
    "jdbc:office365:" +
    "AuthScheme=AzureAD;" +
    "InitiateOAuth=GETANDREFRESH;" +
    "OAuthClientId=[your_client_id];" +
    "OAuthClientSecret=[your_client_secret];";

ODBC の場合(DSN)

プロパティ

説明

AuthScheme

AzureAD

InitiateOAuth

GETANDREFRESH を指定すると初回起動時に自動でトークンを取得

OAuthClientId

Azure AD アプリのクライアント ID

OAuthClientSecret

Azure AD アプリのクライアントシークレット

3. 接続を確認する

接続が成功したら、以下の SQL でテーブル一覧を確認します。TodoTaskLists ビューと TodoTasks ビューが存在することを確認してください。

SELECT * FROM sys_tables

タスクリスト・タスクデータを取得する SQL クエリ

すべてのタスクリストを取得する

SELECT *
FROM TodoTaskLists;

主要カラム一覧(TodoTaskLists)

カラム名

説明

Id

タスクリストの内部 ID

DisplayName

タスクリストの表示名(例:「仕事」「個人」)

IsOwner

ログインユーザーがオーナーかどうか

IsShared

他のユーザーと共有されているかどうか

WellknownListName

既定のリストかどうかを示す種別(defaultList 等)

特定のタスクリストのタスクを取得する

SELECT Id, Title, Status, Importance, DueDateTime_dateTime, CompletedDateTime_dateTime
FROM TodoTasks
WHERE TodoTaskListId = '[your_task_list_id]';

主要カラム一覧(TodoTasks)

カラム名

説明

Id

タスクの内部 ID

Title

タスクのタイトル

Status

ステータス(notStarted / inProgress / completed 等)

Importance

重要度(low / normal / high

IsReminderOn

リマインダーが有効かどうか

DueDateTime_dateTime

期限日時

StartDateTime_dateTime

開始日時

CompletedDateTime_dateTime

完了日時

CreatedDateTime

作成日時

LastModifiedDateTime

最終更新日時

Categories

カテゴリ(複数の特徴を示すラベル)

TodoTaskListId

所属するタスクリストの ID

未完了のタスクだけを絞り込む

SELECT Title, Status, Importance, DueDateTime_dateTime
FROM TodoTasks
WHERE TodoTaskListId = '[your_task_list_id]'
  AND Status <> 'completed'
ORDER BY DueDateTime_dateTime ASC;

期限切れのタスクを取得する

SELECT Title, DueDateTime_dateTime, Status
FROM TodoTasks
WHERE TodoTaskListId = '[your_task_list_id]'
  AND DueDateTime < CURRENT_TIMESTAMP()
  AND Status <> 'completed'
ORDER BY DueDateTime_dateTime ASC;

タスクリストごとのタスク件数を集計する

SELECT l.DisplayName, COUNT(t.Id) AS TaskCount
FROM TodoTaskLists l
INNER JOIN TodoTasks t ON t.TodoTaskListId = l.Id
GROUP BY l.DisplayName
ORDER BY TaskCount DESC;

まとめ

CData Office365 Drivers の TodoTaskLists ビュー・TodoTasks ビューを使うことで、Microsoft Graph の To Do API を直接呼び出すことなく、標準 SQL を通じて Microsoft To Do のタスクリスト・タスクデータにアクセスできます。委任されたアクセス許可の設定と接続文字列の設定を済ませれば、あとは馴染みのあるクエリでタスクの一覧取得・フィルタリング・集計が可能です。個人タスクの進捗管理レポートや、他システムとのタスク連携など、さまざまなシナリオで活用してみてください。