GAS Calendar.createEventで会議招集を自動化!定期実行で業務効率UP
本記事では、Google Apps Script(GAS)のCalendar.createEvent関数を使用して、会議招集を自動化する方法を解説します。特に、定期実行による自動化に焦点を当て、会議招集における業務課題を解決し、効率的なスケジュール管理を実現します。
Calendar.createEventとは?
Calendar.createEventは、指定したカレンダーにイベント(予定)を作成するGASの関数です。イベントのタイトル、開始日時、終了日時、説明、参加者などを設定できます。この関数を自動化処理に組み込むことで、手作業による会議招集の煩雑さを解消できます。
会議招集自動化の課題
会議招集は、日時調整、参加者への連絡、会議室の予約など、多くの手間がかかります。特に、定期的な会議や複数人が参加する会議では、これらの作業が頻繁に発生し、担当者の負担となります。GASを使用することで、これらの課題を解決し、会議招集プロセスを効率化できます。
GASによる会議招集自動化の実装
1. 定期実行トリガーの設定
GASのトリガー機能を使用することで、特定の時間間隔でスクリプトを自動実行できます。例えば、毎日午前9時に会議招集スクリプトを実行するように設定できます。
// 毎日午前9時に実行するトリガーを設定
function createDailyTrigger() {
ScriptApp.newTrigger('createMeetingEvent')
.timeBased()
.atHour(9)
.everyDays(1)
.create();
}
2. カレンダーIDの取得
イベントを作成するカレンダーのIDを取得します。カレンダーの設定画面から確認できます。
// カレンダーIDを指定
const calendarId = 'your_calendar_id@group.calendar.google.com';
3. 会議イベントの作成
Calendar.createEvent関数を使用して、会議イベントを作成します。会議のタイトル、開始日時、終了日時、参加者などを設定します。
function createMeetingEvent() {
  // カレンダーIDを指定
  const calendarId = 'your_calendar_id@group.calendar.google.com';
  const calendar = CalendarApp.getCalendarById(calendarId);
  
  // 現在の日時を取得
  const now = new Date();
  
  // 会議の開始日時と終了日時を設定(例:30分間の会議)
  const startTime = new Date(now.getTime() + 60 * 60 * 1000); // 1時間後
  const endTime = new Date(startTime.getTime() + 30 * 60 * 1000); // 30分後
  // 参加者を設定
  const guestList = 'test1@example.com,test2@example.com';
  
  // イベントを作成
  calendar.createEvent(
    '定例会議',
    startTime,
    endTime,
    {
      description: '定例会議の詳細',
      guests: guestList,
      location: 'オンライン会議'
    }
  );
}
4. メール送信による通知
MailApp.sendEmail関数を使用して、会議の参加者にメールで通知を送信できます。
function sendMeetingNotification(startTime, endTime, guestList) {
  const subject = '会議のお知らせ';
  const body = `会議が${startTime}から${endTime}に開催されます。参加者は${guestList}です。`;
  const options = {
    cc: 'cc@example.com'
  };
  MailApp.sendEmail(guestList, subject, body, options);
}
// createMeetingEvent関数内で呼び出す例
calendar.createEvent(
    '定例会議',
    startTime,
    endTime,
    {
      description: '定例会議の詳細',
      guests: guestList,
      location: 'オンライン会議'
    }
  );
sendMeetingNotification(startTime, endTime, guestList);
実用的なコード例
例1:スプレッドシートから参加者リストを取得
スプレッドシートに登録された参加者リストを読み込み、会議イベントの作成時に使用します。
function createMeetingEventFromSheet() {
  // スプレッドシートを開く
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('参加者リスト');
  
  // 参加者リストを取得
  const guestList = sheet.getRange('A2:A').getValues().flat().filter(String).join(',');
  
  // カレンダーIDを指定
  const calendarId = 'your_calendar_id@group.calendar.google.com';
  const calendar = CalendarApp.getCalendarById(calendarId);
  
  // 現在の日時を取得
  const now = new Date();
  
  // 会議の開始日時と終了日時を設定(例:30分間の会議)
  const startTime = new Date(now.getTime() + 60 * 60 * 1000); // 1時間後
  const endTime = new Date(startTime.getTime() + 30 * 60 * 1000); // 30分後
  
  // イベントを作成
  calendar.createEvent(
    '定例会議',
    startTime,
    endTime,
    {
      description: '定例会議の詳細',
      guests: guestList,
      location: 'オンライン会議'
    }
  );
}
例2:会議室の自動予約
会議室予約システムと連携し、空いている会議室を自動的に予約します。(この例は、連携システムのAPIが存在することを前提とします。)
// (API連携部分は架空の関数として記述)
function reserveMeetingRoom(startTime, endTime) {
// 会議室予約APIを呼び出す(架空の関数)
const meetingRoom = findAvailableMeetingRoom(startTime, endTime);
if (meetingRoom) {
// 予約成功
return meetingRoom;
} else {
// 予約失敗
return null;
}
}
function createMeetingEventWithRoom() {
// カレンダーIDを指定
const calendarId = 'your_calendar_id@group.calendar.google.com';
const calendar = CalendarApp.getCalendarById(calendarId);
// 現在の日時を取得
const now = new Date();
// 会議の開始日時と終了日時を設定(例:30分間の会議)
const startTime = new Date(now.getTime() + 60 * 60 * 1000); // 1時間後
const endTime = new Date(startTime.getTime() + 30 * 60 * 1000); // 30分後
// 参加者を設定
const guestList = 'test1@example.com,test2@example.com';
// 会議室を予約
const meetingRoom = reserveMeetingRoom(startTime, endTime);
// 会議室が予約できた場合
if (meetingRoom) {
calendar.createEvent(
'定例会議',
startTime,
endTime,
{
description: '定例会議の詳細\n会議室:' + meetingRoom,
guests: guestList,
location: meetingRoom // 会議室名をlocationに設定
}
);
} else {
// 会議室が予約できなかった場合の処理
Logger.log('会議室の予約に失敗しました。');
}
}
よくある問題とトラブルシューティング
- カレンダーIDが間違っている:カレンダーIDを正しく設定してください。
 - 権限がない:スクリプトにカレンダーへのアクセス権を付与してください。
 - トリガーが実行されない:トリガーの設定を確認し、実行時間が適切かどうかを確認してください。
 
カスタマイズ方法と応用例
- 会議時間の自動調整:参加者の空き時間に基づいて、最適な会議時間を自動的に調整します。
 - リマインダー通知:会議開始前に、参加者にリマインダーメールを送信します。
 - 議事録作成:会議後に、議事録を自動的に作成し、参加者に共有します。
 
まとめ
GASのCalendar.createEvent関数と定期実行トリガーを組み合わせることで、会議招集を大幅に自動化し、業務効率を向上させることができます。本記事で紹介したコード例を参考に、ぜひ会議招集の自動化に挑戦してみてください。

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう