📅

GASで自分以外のカレンダーを取得する

に公開

要点

  • 自分以外のカレンダーは、カレンダーIDによって取得する
    const calendar = CalendarApp.getCalendarById('カレンダーID');
    
  • Googleカレンダーの他のカレンダーに、取得対象カレンダーを追加している必要がある
    • カレンダーの参照権限があっても、他のカレンダーに未追加だと取得できない
  • 他のカレンダーで取得対象カレンダーを追加するには、参照権限が付与されている必要がある
    • Google Workspaceで管理されているアカウントの場合、組織全体の設定も影響している

取得方法

カレンダーIDによって取得します。取得できない場合はnullが返却されます。

const calendar = CalendarApp.getCalendarById('カレンダーID');

自分のカレンダーの場合は、次の呼び出しでも取得できます。

const calendar = CalendarApp.getDefaultCalendar();

カレンダーIDの確認方法

アカウントに紐づいたカレンダー

カレンダーIDはメールアドレスと同一です。

共有カレンダー

設定からカレンダーIDを確認する必要があります。

  1. Googleカレンダーを開く
  2. 左ペインにある対象のカレンダーにホバーし、縦三点リーダーアイコンを押下
  3. 設定を押下
  4. スクロールしてカレンダーの統合内のカレンダーIDを確認

対象のカレンダーが自分のGoogleカレンダー内に存在しない場合、先に追加を行う必要があります。

GASでカレンダーを取得するための設定

GASで自分以外のカレンダーを取得するためには、いくつかの条件を満たしている必要があります。

  • 自分のアカウントから対象のカレンダーへの適切な権限がある
  • 対象のカレンダーが他のカレンダーに追加されている
  • GASによるカレンダー取得が許可されている

自分のアカウントから対象のカレンダーへの適切な権限がある

自分のアカウントから対象のカレンダーに対して予定の変更および共有の管理が付与されていれば、予定の参照が実行可能です。

権限の確認

カレンダーへの参照権限は、次の方法で確認できます。

  1. Googleカレンダーを開く
  2. 左ペインにある対象のカレンダーにホバーし、縦三点リーダーアイコンを押下
  3. 設定と共有を押下
  4. スクロールして共有する相手を確認

権限が不足している場合、同画面で追加や変更を行います。

Google Workspaceで管理されているアカウントの場合

Google Workspaceで管理されているアカウントの場合、組織のカレンダー共有設定の影響も受けています。
管理者権限を持つアカウントによって設定を確認することができます。
なお、設定の変更は組織のセキュリティポリシーに従って慎重に行ってください。

  1. Google 管理コンソールにログイン
  2. アプリ > Google Workspace > カレンダーの設定を押下
  3. 共有設定内のメイン カレンダーの内部共有オプションを確認

トリガー実行時の権限

GASをトリガー実行する場合、トリガーを追加したアカウントとして実行されます。
トリガーの登録作業をするアカウントが参照権限を持っている必要があります。

対象のカレンダーが他のカレンダーに追加されている

アカウントに参照権限が付与されていても、Googleカレンダー上の他のカレンダーに対象が存在しない場合は取得できません。
他のカレンダーへの追加方法は次のとおりです。

  1. Googleカレンダーを開く
  2. 左ペインにある他のカレンダー行の+アイコンを押下
  3. カレンダーに登録を押下
  4. カレンダーIDを入力してEnterキーを押下

GASによるカレンダー取得が許可されている

対象のGASにカレンダー取得の実行権限を与える必要があります。
初回実行時に権限の許可を求められるので、実行を承認します。

GAS権限の確認方法

個別のGASに何の権限を与えているかは、Googleアカウントで確認できます。

  1. Googleアカウントのセキュリティ設定ページを開く
  2. セキュリティを押下
  3. サードパーティ製のアプリとサービスを押下
  4. 対象のGASスクリプトを押下
  5. GASスクリプトが持つアクセス権が表示される
NCDCエンジニアブログ

Discussion