Googleカレンダーと予定表の取得

 普段から私は

Microsoftの環境で働くことが多くて、

チームの予定もoutlookの画面で見ていることが多いのですが、


こんな感じですね。



参考元: 日経XTECH


私は、下の画像のような状態で社員さんの予定を確認することが多かったです。

社員さんのスケジュールも確認できるほうが、会議の予約入れやすいですからね。


派遣先でOutlookを開いた時はまだ自分の予定しか見えない状態ですが、

予定表の画面の左下にチームの予定表を選択出来る画面があるから、

レ点入れちゃえば自分のチームの人たちの予定も見られるようになる。

…これって、

あらかじめITの人たちが設定してくれた状態でPCを貸してくれているからできるんですよねぇ。




たまにはGoogle環境の派遣先様もあります。コロナ禍をへてGoogle環境の派遣先様も増えたように感じます。

私は、Google製品しか使わない会社様に派遣されたのはまだ2社程度ですが、

そういえばなぜか、

社員さんおよびチームメンバーと、outlookのような予定表の共有をしていなかった…

スプレッドシートを共有して共同編集は頻繁だったのですが、

カレンダーの共有はありませんでした。なんでだろう。



Googleカレンダーもoutlookのような閲覧の仕方をできるかちょっと確認してみたところ、


スプレッドシートみたく権限を渡してもらえれば、人の予定も自分のカレンダー上に入れられるみたいですね。



とりあえず複数アカウント(といっても2つ追加が限界でした)作成して、

それぞれに予定表を入れて…権限付与して共有…をやってみました。



Copilotに架空の百貨店を2つ用意してもらい、アカウント作成し、

東京メイン百貨店



大阪モダン百貨店



それぞれの百貨店に6月の催事と日程まで考えてもらいました。

また、この百貨店は月に1度会議をします。




設定して、2つとも同時に見られるようにしてみましょう。





「大阪モダン百貨店」「東京メイン百貨店」の予定を、私の本アカウントへ共有してもらいます。



  1. 画面左のアカウント名をクリック
  2. 共有する相手をクリック
  3. 画面右のユーザーやグループを追加をクリック






  1. 共有したい相手のメールアドレスを入力
  2. 権限を選択


 送信します




共有したい相手にはメールが届きます。



メール本文の、このカレンダーを追加を押す。


追加するか聞かれるので、追加を押す。







以下、東京メイン百貨店と大阪モダン百貨店の予定が入った状態です。


…私、大阪モダン百貨店の予定を青、東京メイン百貨店を紫にしていたんですが、なぜか色が入れ替わっている…これは自動調整なんでしょうね。




さて。

各百貨店のどこに予定が入っているのか、一つのカレンダーでわかるようになったものの、

いったい何をしているのか、予定をクリックしないと詳細が見えませんねぇ。

(そこはoutlookも同じですが)








ここからは、

それぞれの予定の詳細をまとめたいと思います。

---------------------------------

Copilotに以下のコードを教えてもらいました。

6月中の、(閲覧権限のある)すべてのカレンダーの予定を取得します。

function exportAllCalendarsToSheet() {

  const calendars = CalendarApp.getAllCalendars(); // すべてのカレンダーを取得

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  sheet.clear(); // 既存データを削除

  sheet.appendRow(['カレンダー名', 'タイトル', '開始日時', '終了日時', '場所', '説明']); // ヘッダーを追加

  calendars.forEach(calendar => {

    const events = calendar.getEvents(new Date('2025-06-01'), new Date('2025-06-30'));

    events.forEach(event => {

      sheet.appendRow([

        calendar.getName(), // カレンダー名

        event.getTitle(),

        event.getStartTime(),

        event.getEndTime(),

        event.getLocation(),

        event.getDescription()

      ]);

    });

  });

}

---------------------------------

スプレッドシートへ移ります。

予定を共有されたのは本アカウントなので、本アカウントのスプレッドシートを開きます)



空白のスプレッドシートを開き、

拡張機能 Apps Scriptを選択



コードを書く画面が表示されます。



  1. Copilotに教えてもらったコードを貼り付けて、
  2. 保存を押す。






実行を押す。



初めて実行する際は、承認を求められますので、権限を確認を押します。




自分のアカウントをクリックする。




左下の詳細をクリック

※間違いやすいので注意。詳細をクリックします。





無題のプロジェクト(安全ではないページ)に移動をクリック




全て選択をして、続行を押す。



ぁ、なんかエラー出ちゃった。

exportCalendarToSheet を実行しようとしましたが、削除されました。

…でももう一度実行してみます。


今度は成功したみたいです。




スプレッドシートに戻ってみると、予定表が一覧になっていました。


F列の説明欄は、絵文字が影響してそうですね。。。




さて、

こうやってスプレッドシートに出してみると、

  • 誰が(カレンダー名)、
  • 何の予定(タイトル)に、
  • 何時間費やしたか(開始日時終了日時)
  • 交通費(場所)

も調べることが出来そうですね。

グラフ化などの分析も可能でしょう。


正確な分析のためには、

同じ業務は同じタイトルで予定を入れることが重要ですね。

プロジェクトならいつもタイトルにプロジェクトIDを入れるようにしたほうが確実です。



以上です。

それにしても複数アカウント開いたり、Apps Scriptを開いたりすると途端にPCが重くなります。そういう意味でもこの記事の作成には時間がかかりました。