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
関数と定期実行トリガーを組み合わせることで、会議招集を大幅に自動化し、業務効率を向上させることができます。本記事で紹介したコード例を参考に、ぜひ会議招集の自動化に挑戦してみてください。