Google/Microsoftカレンダー連携API実装で直面した審査・権限設計の話
2026/10/07
企業向けのWebアプリにGoogle/Microsoftカレンダーとの連携を検討をした時の内容をまとめました。
結論から言うとカレンダー連携は「つなぐだけ」では終わりません。プログラムを書く難しさよりも、「どこまでの権限を求めるか」によって、準備にかかる手間が大きく変わります。
カレンダー連携の悩みどころはどこか
この節では、連携の難しさがどこにあるのかを整理します。
Google/Microsoftカレンダーはすでに多くのアプリで利用されており連携時のログイン機能はGoogleやMicrosoftが担当してくれるため、技術的なハードルはそれほど高くありません。
ただ、着手する前に「予定を見るだけでいいのか」「予定を書き換えたいのか」「同僚の予定まで見せたいのか」を決めておかないと、あとから審査や導入先企業の承認に振り回されます。作業そのものよりこの「どこまで求めるか」の見極めが重要でした。
Google/Microsoftカレンダーとアプリが連携される仕組み
この節では、カレンダーの権限(どの機能をどの程度使えるかの決まり)がどのような流れで決まるのかを説明します。
カレンダー連携ではユーザーのGoogle/Microsoftのパスワードをアプリに渡すことはしません。GoogleやMicrosoftのログイン画面で本人確認を済ませ、その結果として「このアプリは、この範囲までなら操作してよい」という許可証をアプリが受け取ります。ビルの受付で入館証を発行してもらうのに近い仕組みで、技術用語ではこの許可証をアクセストークンと呼びます。
権限が決まるまでの流れ
- アプリ内で使いたいカレンダーの権限を指定してユーザーをGoogle/Microsoftのログイン画面に送る。たとえば「予定の閲覧のみ」なら、Googleは
calendar.readonly、MicrosoftはCalendars.Readを指定する - ユーザーがログインし画面に表示された権限の内容を確認して同意する
- アプリに「引換券」(認可コード)が渡される
- 引換券を使いGoogle/Microsoftのサーバーから入館証(アクセストークン)を受け取る。この入館証には、同意された権限の範囲が記録されている
- 以降、アプリはこの入館証を見せてカレンダーにアクセスする。範囲外の操作は、GoogleやMicrosoft側で拒否される
ポイントは、アプリが自由に権限を決められるわけではないことです。権限は「アプリが申請する」「ユーザーや管理者が同意する」の二段階で決まり、入館証に書かれた範囲を超えることはできません。「予定の閲覧のみ」で同意を得ていれば、あとからアプリが予定を書き換えようとしても弾かれます。書き換えたい場合は、権限を申請し直して、同意を取り直す必要があります。
つまり、アプリにどんな機能を持たせたいかによって申請すべき権限が決まります。そしてその権限の強さが審査や導入先企業の承認の重さに直結します。次の節で権限ごとの違いを見ていきます。
「見るだけ」と「書き換える」では審査の重さが違う
この節では、権限の強さと審査の関係を紹介します。
権限は強いほど慎重にチェックされます。共有カレンダーを「閲覧だけできる人」と「編集もできる人」では、与える側の安心感が違うのと同じ考え方です。具体的には、次のような機能の違いがあります。
- 見るだけの例: 会議調整ツールが、メンバーの空き時間を見て候補日を出す
- 書き換える例: 予約システムが、予約が入ったらそのまま担当者のカレンダーに予定を自動で登録する
Googleでは、この2つで審査のレベルが変わります。書き込みを含む権限は「制限付き」という扱いになり、外部のセキュリティ専門機関による監査を受ける必要があります。しかも一度きりではなく、年に一度の更新が求められます。
一方Microsoftにはそうした外部監査の義務はありません。ただ、予定を書き換えられる権限は導入先企業のIT管理者から警戒されやすい傾向があります。「審査は通るのに、導入先で止められる」という、別の壁があるイメージです。
| 予定を見るだけ | 予定を書き換える | |
|---|---|---|
| 通常のアプリ審査 | 外部の監査が必要(毎年更新) | |
| Microsoft | 通常の手続き | 外部監査は不要だが、導入先の管理者に警戒されやすい |
だからこそ、「本当に書き込みまで必要か」を最初に問い直すことが大切です。見るだけで足りるなら審査の手間もリスクも大きく減らせます。
同僚の予定を見せるときは3つの段階がある
この節では、他の人の予定をどこまで見せられるかを整理します。
Teamsのように同僚の予定を表示したい場合も、「どこまで見せるか」で必要な許可が変わります。会議室の予約表を思い浮かべながら読んでみてください。
- 空き状況だけ: 「この時間は埋まっている」とだけ分かる。会議の日程調整にはこれで十分なことが多く、手続きも一番軽い
- 本人が共有した予定だけ: 予定の持ち主が「この人には見せていいよ」と許可した分だけ、内容まで見える
- 全員の予定をまとめて: アプリが組織全体の予定を見られる。便利だが会社の管理者の承認が必須で強く警戒されやすい
「予定の有無が分かればいい」という機能なら、一番軽い「空き状況だけ」で十分です。内容まで見せたい場合は、導入先の会社への説明や承認が増えることを見込んでおく必要があります。
会社の管理者のOKは、使い始める前にもらう
この節では、導入先の企業で起こりがちな承認の問題を紹介します。
企業では社員が自由に外部アプリを使えないようIT管理者が承認を管理していることがよくあります。新しいアプリを導入するたびに、社員が一人ずつ申請して待たされる状況は避けたいところです。
そこで社員にアプリを案内する前に、まず管理者に「このアプリを会社として許可します」という承認を済ませてもらう流れが現実的です。これを管理者同意と呼びます。先に済ませておけば、社員はログインするだけですぐに使い始められます。
逆にこの準備を後回しにすると社員の画面に「管理者の承認が必要です」と表示されたまま、先に進めなくなることがあります。会社の設定によっては、承認をお願いする窓口すら表示されません。技術的には動いていても、導入先では「使えないアプリ」と受け取られてしまいます。
まとめ
- カレンダー連携はプログラムの難しさより「どこまでの権限を求めるか」の見極めが重要
- 「見るだけ」か「書き換える」かで審査の重さが変わる。特にGoogleは、書き込みで外部の監査が必要になる
- 同僚の予定は「空き状況だけ」から始めると手軽。管理者の承認は、使い始める前にもらっておく
要件を決める段階で「本当にそこまで必要か」と一度立ち止まることが、あとからの手戻りを減らす近道だと感じました。
おわりに
ここまで読んでいただき、ありがとうございました。
私たちは、できることを誠実にやる会社です。
Web・システム・AIのことで気になることがあれば、
「何から相談すればいいか分からない」段階でも大丈夫です。
お気軽にご相談ください。
▶ お問い合わせ
本記事は、Claudeでのやり取りから本記事を作成し、加筆・修正しております。