【これだけは押さえておこう】GASでGoogleカレンダーを操作する方法【基本編】(Google Apps Script)取得・作成・編集・削除の操作

現代社会において、時間管理はますます重要になっています。しかし、複雑な予定を把握し、効率的に管理するのは容易ではありません。

そこでおすすめなのが、Google Apps Script(GAS)を活用してGoogleカレンダーの操作を自動化することです。

GASを使えば、カレンダー情報の取得、イベントの作成・編集・削除など、様々な操作を自動化することができます。たとえば、毎日〇〇時に〇〇というイベントを作成するといった設定も可能です。

本記事では、GAS初心者でも簡単に始められるよう、GASでGoogleカレンダーを操作するメリット、準備方法、基本的な操作方法を丁寧に解説します。ぜひ最後までご覧ください。

目次

GASでGoogleカレンダーを操作するメリット

近年、業務効率化や生産性向上のため、様々なツールが活用されています。その中でも、Googleカレンダーは多くの人にとって欠かせないツールの一つではないでしょうか。

スケジュール管理やタスク共有など、さまざまな機能が備わっているGoogleカレンダーですが、Google Apps Script(GAS)を活用することによって、Googleカレンダーの操作を自動化したり、独自の機能を追加したりすることができます。

たとえば、

  • イベント情報に基づいて、関係者に自動でメールを送信
  • チャットボットでカレンダー操作
  • タスク管理サービスとの連携

などが可能になります。

日々の業務を効率化したい方、カレンダー機能をもっと拡張したい方は、ぜひGASを使ってみることをおすすめします。

GASでGoogleカレンダーを操作するための準備

それでは、実際にGASでGoogleカレンダーを操作していきましょう。

1. GASプロジェクトの作成

Google Apps ScriptでGoogleカレンダーを操作するには、まずGASプロジェクトを作成する必要があります。

まずはGoogleドライブにアクセスし、左上の「新規ボタン>その他>Google Apps Script」をクリックします。

そうすると、GASのプロジェクトが作成されます。

2. GoogleカレンダーのIDを調べる

Googleカレンダーを操作するには、カレンダーのIDが必要になります。

まずは、Googleカレンダーにアクセスし、操作したいカレンダーにカーソルを合わせて「3点リーダ>設定と共有」の順にクリックします。

画面の下の方に「カレンダーID」が記載されています。こちらをコピーしておきましょう。

以上でGASでGoogleカレンダーを操作する準備ができました。

GASでGoogleカレンダーを操作する方法

それでは実際に、GASでGoogleカレンダーを操作してみましょう。

1. 日付を指定してGoogleカレンダーの予定(イベント)を取得する

まずは、GASでカレンダーの予定(イベント)を取得する方法をご紹介します。

たとえば、以下のように2024年4月18日に予定があります。

GASでこのカレンダーのイベントを取得するコードは以下になります。

function getEventsByCalendarIdAndDate() {
  // カレンダーIDを取得
  let calendarId = 'YOUR_CALENDAR_ID'; // ここにカレンダーIDを入力してください

  // 日付を取得
  let date = new Date('2024-04-18'); // ここに取得したい日付を入力してください

  // カレンダーオブジェクトを取得
  let calendar = CalendarApp.getCalendarById(calendarId);

  // 指定した日付の予定を取得
  let events = calendar.getEventsForDay(date);

  // イベント情報を表示
  for (let i = 0; i < events.length; i++) {
    let event = events[i];
    Logger.log('タイトル: ' + event.getTitle());
    Logger.log('開始時刻: ' + event.getStartTime());
    Logger.log('終了時刻: ' + event.getEndTime());
    Logger.log('-------------------------');
  }
}

3行目には先程取得したカレンダーIDを、6行目にはイベントを取得したい日付を設定します。

9行目では、「CalendarApp.getCalendarById(calendarId)」 メソッドを使用して、カレンダーオブジェクトを取得しています。これによってカレンダーを操作することができるようになります。

12行目で、「calendar.getEventsForDay(date)」 メソッドを使用して、指定した日付の予定を取得し、15行目からは取得した予定情報をループ処理で表示しています。

このコードをGASのエディタに貼り付けて保存し、実行してみましょう。

実行ログを確認したところ、指定した日付のイベント情報が取得できていました。

また、日付を範囲指定して予定を取得したい場合は、以下のようなコードになります。

function getEventsByCalendarIdAndDateRange() {
  // カレンダーIDを取得
  let calendarId = 'YOUR_CALENDAR_ID'; // ここにカレンダーIDを入力してください

  // 開始日と終了日を取得
  let startDate = new Date('2024-04-15'); // ここに開始日を入力してください
  let endDate = new Date('2024-04-18'); // ここに終了日を入力してください

  // カレンダーオブジェクトを取得
  let calendar = CalendarApp.getCalendarById(calendarId);

  // 指定した日付範囲の予定を取得
  let events = calendar.getEvents(startDate, endDate);

  // イベント情報を表示
  for (let i = 0; i < events.length; i++) {
    let event = events[i];
    Logger.log('タイトル: ' + event.getTitle());
    Logger.log('開始時刻: ' + event.getStartTime());
    Logger.log('終了時刻: ' + event.getEndTime());
    Logger.log('-------------------------');
  }
}

6・7行目でGoogleカレンダーからイベントを取得する開始日と終了日を指定します。

そして、13行目で開始日と終了日の引数を受け取る「calendar.getEvents」メソッドを使用し、範囲内のイベント情報を取得します。

このように、カレンダーIDと日付を指定することで、Googleカレンダーのイベント情報を簡単に取得することができます。

2. Googleカレンダーの予定(イベント)を作成する

GASでGoogleカレンダーのイベントを作成することもできます。

GASでGoogleカレンダーのイベントを作成するには、

  • 件名
  • 開始日
  • 終了日

の3つの項目が必須になります。

それでは、実際にGoogleカレンダーのイベントをGASで作成してみましょう。以下のサンプルコードをGASのエディタに貼り付けて、実行します。

function createEvent() {
  // カレンダーIDを取得
  let calendarId = 'YOUR_CALENDAR_ID'; // ここにカレンダーIDを入力してください

  // イベント情報を設定
  let eventTitle = 'イベントタイトル(テスト)'; // イベントのタイトル
  let startDate = new Date('2024-04-19T09:00:00'); // 開始日時
  let endDate = new Date('2024-04-19T10:00:00'); // 終了日時

  // カレンダーオブジェクトを取得
  let calendar = CalendarApp.getCalendarById(calendarId);

  // イベントを作成
  let event = calendar.createEvent(eventTitle, startDate, endDate);

  // イベントを追加
  Logger.log('イベントを作成しました: ' + event.getTitle());
}

15行目の「createEvent」メソッドを使用することで、イベントを作成できます。このメソッドは予定のタイトルと開始日時、終了日時を引数に取ります。

また、「createEvent」では以下のオプションを使用することも可能です。

  • description:イベントの説明
  • location:イベントの場所
  • guests:イベントに招待するゲスト
  • sendInvites:招待メールを送信するかどうか(デフォルトはfalse)

たとえば場所を指定したい場合は、5行目〜15行目を下記のように書き換えます。

  // イベント情報を設定
  let eventTitle = 'イベントタイトル(テスト)'; // イベントのタイトル
  let startDate = new Date('2024-04-19T11:00:00'); // 開始日時
  let endDate = new Date('2024-04-19T12:00:00'); // 終了日時
  let options = {
    location: '渋谷駅',
  }

  // カレンダーオブジェクトを取得
  let calendar = CalendarApp.getCalendarById(calendarId);

  // イベントを作成
  let event = calendar.createEvent(eventTitle, startDate, endDate, options);

上記のコードを実行してみると、場所が「渋谷駅」に設定されたイベントが作成されました。

3. Googleカレンダーの予定(イベント)を編集する

GASを使用することで、Googleカレンダーのイベント情報を編集することも可能です。

Googleカレンダーのイベントを編集する場合、まずはGoogleカレンダーのイベント情報を取得し、設定している各要素ごとに変更する必要があります。

たとえば、件名や時間、説明文を編集したい場合は、以下のメソッドを使用して更新することができます。

  • 件名を変更したい場合:Event.setTitle(‘新しいタイトル’)
  • 時間を変更したい場合:Event.setTime(‘新しい開始時間’, ‘新しい終了時間’)
  • 説明文を編集したい場合:Event.setDescription(‘新しい説明文’)

それでは、実際にGoogleカレンダーのイベントをGASで編集してみましょう。

以下のサンプルコードをGASのエディタに貼り付けて実行します。

function editEvent() {
  // カレンダーIDを取得
  let calendarId = 'YOUR_CALENDAR_ID'; // ここにカレンダーIDを入力してください

  // 日付を取得
  var date = new Date('2024-04-19'); // ここに取得したい日付を入力してください

  // カレンダーオブジェクトを取得
  var calendar = CalendarApp.getCalendarById(calendarId);

  // 指定した日付のイベントを取得
  var events = calendar.getEventsForDay(date);

  // 1つ目のイベントを取得
  if (events.length > 0) {
    var event = events[0];

    // 件名と時間を編集
    var newTitle = '新しいイベントタイトル'; // 新しいイベントタイトル
    var newStartTime = new Date('2024-04-19T12:00:00'); // 新しい開始日時
    var newEndTime = new Date('2024-04-19T13:00:00'); // 新しい終了日時

    event.setTitle(newTitle);
    event.setTime(newStartTime, newEndTime);

    // イベント編集成功のメッセージをログに出力
    Logger.log('イベントを編集しました: ' + event.getTitle());
  } else {
    Logger.log('指定した日付に予定はありません。');
  }
}

上記のサンプルコードでは、指定した日付の1番最初のイベントを編集しています。

まず、12行目で指定した日付のイベントを全て取得しています。そして、16行目で指定した日付の1番最初のイベントを取得します。

19〜21行目で新しいイベントのタイトルと開始日時、終了日時を定義し、23〜25行目で「event.setTitle()」、「event.setTime()」 メソッドを使用して、件名と時間を編集します。

そして26行目で「event.update()」メソッドを使用して、編集を保存します。

実行してみると、「2. Googleカレンダーの予定(イベント)を作成する」で作成した最初のイベントが、指定した件名と時間に変更されました。

4. Googleカレンダーの予定(イベント)を削除する

最後に、Googleカレンダーのイベント情報を削除する方法をご紹介します。

Googleカレンダーのイベント情報を削除するには、編集する場合と同様に、まずはGoogleカレンダーのイベント情報を取得する必要があります。

それでは、指定した日付のイベントを削除してみましょう。以下のサンプルコードをGASのエディタに貼り付けて実行します。

function deleteEvent() {
  // カレンダーIDを取得
  let calendarId = 'YOUR_CALENDAR_ID'; // ここにカレンダーIDを入力してください

  // 日付を取得
  var date = new Date('2024-04-19'); // ここに取得したい日付を入力してください

  // カレンダーオブジェクトを取得
  var calendar = CalendarApp.getCalendarById(calendarId);

  // 指定した日付のイベントを取得
  var events = calendar.getEventsForDay(date);

  // イベントを削除
  if (events.length > 0) {
    for (var i = 0; i < events.length; i++) {
      var event = events[i];
      event.deleteEvent();
      Logger.log('イベントを削除しました: ' + event.getTitle());
    }
  } else {
    Logger.log('指定した日付に予定はありません。');
  }
}

18行目で、「event.delete()」 メソッドを使用して、イベントを削除しています。

実行後にGoogleカレンダーを見てみると、イベントが正しく削除されていました。

まとめ

今回はGASでGoogleカレンダーを操作する方法についてご紹介しました。GASを活用することで、Googleカレンダーをさらに便利に活用することができます。

プログラミングの知識がなくても、本記事を参考に、比較的簡単に始められるのでぜひ一度試してみてはいかがでしょうか!

記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

日々のタスクや業務でGASを用いて業務効率化・自動化を推進するプロフェッショナル集団。ノンプログラマやプログラムの専門家を含むメンバで構成されており、プログラミング初心者・初学者にもわかりやすいコンテンツを執筆することをミッションとしています。

コメント

コメントする

目次