• 公開日:

スプレッドシートとGoogle カレンダーを連携する方法

本記事では、スプレッドシートとGoogleカレンダーを効果的に連携させる方法について解説します。

スケジュール管理やタスク管理をスムーズに行いたい方必見です。

どのように設定すれば二つのツールを連携させることができるのか、具体的な手順をご紹介します。

時間の節約や作業効率を向上させるために、ぜひ活用してみてください。

スプレッドシートとGoogle カレンダーを連携する方法

スプレッドシートとGoogleカレンダーを連携する方法を紹介します。

タスクやイベントをスプレッドシートに入力し、Google Apps Scriptを使って自動的にGoogleカレンダーに同期させる方法を解説していきます。

予定表を作成する

スプレッドシートを開き、列の見出しを設定して、カレンダーに同期させる内容を入力します。

以下のように列の見出しを設定します。

A列:イベント名

B列:日付

C列:開始時間

D列:終了時間

E列:場所

F列:内容

Googleカレンダーを起動する

Googleカレンダーを起動させます。

Apps Scriptを起動する

スプレッドシートの①「拡張機能」をクリックし、②「Apps Script」をクリックします。

コードをコピペする

ファイルを選択し、②以下のコードをスクリプトエディタにコピー&ペーストします。

ファイル名は何でも構いません(デフォルトの「コード.gs」のままでも大丈夫です)。

function addEventsToCalendar() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var calendarId = 'your_calendar_id@group.calendar.google.com'; // カレンダーIDを入力
  var calendar = CalendarApp.getCalendarById(calendarId);

  var startRow = 2;  // データが始まる行
  var numRows = sheet.getLastRow() - startRow + 1;  // データの行数
  var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
  var data = dataRange.getValues();

  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var title = row[0];  // イベント名
    var date = new Date(row[1]);  // 日付

    // 開始時間と終了時間を適切にパース
    var startTimeString = Utilities.formatDate(new Date(row[2]), Session.getScriptTimeZone(), 'HH:mm');
    var endTimeString = Utilities.formatDate(new Date(row[3]), Session.getScriptTimeZone(), 'HH:mm');
    var startTimeParts = startTimeString.split(':');
    var endTimeParts = endTimeString.split(':');
    var startTime = new Date(date);
    startTime.setHours(parseInt(startTimeParts[0], 10));
    startTime.setMinutes(parseInt(startTimeParts[1], 10));

    var endTime = new Date(date);
    endTime.setHours(parseInt(endTimeParts[0], 10));
    endTime.setMinutes(parseInt(endTimeParts[1], 10));

    var location = row[4];
    var description = row[5];

    if (!title || isNaN(date) || isNaN(startTime.getTime()) || isNaN(endTime.getTime())) {
      continue;
    }

    try {
      var event = calendar.createEvent(title, startTime, endTime, {
        location: location,
        description: description
      });
      // 成功時のログ出力を削除し、エラー時のみ処理を行う
    } catch (e) {
      // エラーハンドリング
    }
  }
}
自分のカレンダーIDに置き換える

「your_calendar_id@group.calendar.google.com」の部分を、自分の「カレンダーID」に置き換えます

縦三点リーダーをクリックする

マイカレンダーの中でカレンダーIDを確認したい「カレンダー名」にマウスを合わせます

右側に表示される「縦三点リーダー」をクリックします。

設定と共有をクリックする

表示されたメニューの中の「設定と共有」をクリックします。

カレンダーIDをコピーする

設定画面で下にスクロールしていき、「カレンダーの統合」に表示されているカレンダーIDをコピーします。

自分のカレンダーIDを貼り付けする

先ほどの場所に自分のカレンダーIDを貼り付けます。

注意点として「'your_calendar_id@group.calendar.google.com'」の前後に入力されている、「''」の記号は消さないようにしてください。

「'自分のカレンダーID'」となるようにコピー&ペーストします。

スクリプトを保存する

「プロジェクトを保存」をクリックします。

実行をクリックする

実行する関数が「addEventsToCalendar」と表示されたことを確認し、「実行」をクリックします。

権限の確認をクリックする

承認の確認画面が表示された場合は、「権限の確認」をクリックします。

アカウント名をクリックする

スプレッドシートで使用しているアカウント名をクリックします。

詳細をクリックする

「詳細」をクリックします。

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

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

アクセスを許可する

「許可」ボタンをクリックします。

スクリプトが実行された

スクリプトの実行が開始され、正常にカレンダーと連携されると、実行ログに「実行完了」と表示されます。

スプレッドシートとGoogle カレンダーが連携された

カレンダーにスプレッドシートの予定表が自動入力されたことが確認できます。

スプレッドシートとGoogle カレンダーを連携させることが出来ました。