#Shukei(集計)

Google Calendar から「タグ」を収集して、活動時間を集計します。

[SHUKEI] というタグをつけたカレンダーの予定
SHUKEIタグを含む予定

##How to Join

⚠️ @uniba.jp アカウントを持つユーザのみが利用可能な β 版です。
https://app.shukei.uni.ba からサインアップしてください。

##Data Usage

集計された活動時間は Web API 経由でアクセスできます。
OpenAPI 形式の仕様書もあります。

### 基本的な考え方

以下の 4 種の視点をクエリパラメータとして指定してください。

これらの組み合わせに対応する「ユーザ x 期間」「タグ x 期間」のテーブル構造のデータを返します。
テーブルのセルには活動時間の集計値が入ります。

### 例 1:foo と bar の、今年の活動 サンプルリクエスト

GET /api/calendar-events/rollups/userを使います。

users
foo@example.com, bar@example.com
since
2025-01-01
until
2026-01-01
interval
month
units
minutes

foo と bar の活動時間が月別に集計されました。

ユーザ x 期間(月)の表
2025-01-01 2025-02-01 2025-03-01 ... 2025-12-01
foo@example.com 2000 1800 2200 ... 2100
bar@example.com 1500 1600 1700 ... 1800

### 例 2:foo と bar の、SHUKEI に対する今週の活動 サンプルリクエスト

同様に GET /api/calendar-events/rollups/userを使います。

users
foo@example.com, bar@example.com
filterTags
SHUKEI
since
2025-09-01
until
2025-09-08
interval
day
units
minutes

foo と bar の活動時間が日別に集計されました。

ユーザ x 期間(日)の表
2025-09-01 2025-09-02 2025-09-03 ... 2025-09-07
foo@example.com 100 150 200 ... 120
bar@example.com 80 90 110 ... 130

### 例 3:活動 SHUKEI と活動 UNIBA の、今年の活動 サンプルリクエスト

GET /api/calendar-events/rollups/tagを使います。

tags
SHUKEI, UNIBA
since
2025-01-01
until
2026-01-01
interval
month
units
hours

SHUKEI と UNIBA の活動時間が月別に集計されました。

タグ x 期間(月)の表
2025-01-01 2025-02-01 2025-03-01 ... 2025-12-01
SHUKEI 20.5 21.75 23.25 ... 24.5
UNIBA 38.25 35.5 41.75 ... 40.25

### 例 4:活動 SHUKEI と活動 UNIBA の、foo と bar による今月の活動 サンプルリクエスト

同様に GET /api/calendar-events/rollups/tagを使います。

tags
SHUKEI, UNIBA
filterUsers
foo@example.com, bar@example.com
since
2025-09-01
until
2025-10-01
interval
week
units
hours

SHUKEI と UNIBA の活動時間が週別に集計されました。

タグ x 期間(週)の表
2025-09-01 2025-09-08 2025-09-15 2025-09-22 2025-09-29
SHUKEI 12.5 15.75 14.25 16.5 3.25
UNIBA 18.75 20.25 19.5 21.75 4.5

### フラット形式での取得 サンプルリクエスト

テーブル形式ではなく、フラットなリスト形式でデータを取得したい場合は、 GET /api/calendar-events/rollups/user/flat または GET /api/calendar-events/rollups/tag/flat を使います。
クエリパラメータは通常のエンドポイントと同じです。

レスポンスは 2 次元のテーブルではなく、各セルを個別のオブジェクトとして並べたフラットな配列になります。 集計済みデータをスプレッドシートや外部ツールに読み込む際に便利です。

### 🔒 予定一覧の取得

集計値ではなく、予定情報そのものの一覧を返す API もあります。
認証が必要で、現在試験運用中です。

## FAQ

どんな予定がデータベースに保存されるの?
ブラケット[ ]で囲まれたタグをタイトルに含む、終日でない予定のみが保存されます。
タイトルからタグを削除した場合、データベース上のレコードも削除されます。
認証なしでアクセスできる API もある?
はい、活動時間の集計テーブルを返す API は認証が不要です。
タグ一覧やユーザ一覧など、自分が知っている & 直接指定した情報以外を取得する方法はありません。
したがって「自分がそもそも把握していないユーザのメールアドレスやタグが見えてしまう」ことはありません。
問い合わせはどこへ?
GitHub または Discord までお願いします。