GASでWebアプリ開発:Calendar.createEventでフォームからのイベント登録を自動化
Webアプリケーション開発において、ユーザーからのイベント登録を自動化することは、業務効率化に大きく貢献します。特に、フォームで受け付けた情報をGoogleカレンダーに自動登録する機能は、予約管理やスケジュール調整をスムーズにします。この記事では、Google Apps Script(GAS)のCalendar.createEvent関数を用いて、WebアプリからGoogleカレンダーにイベントを自動登録する方法を解説します。フォーム作成、API連携、ダッシュボードなど、様々な利用シチュエーションで活用できる実装例を紹介し、具体的な業務課題の解決を目指します。
Calendar.createEvent関数の基本
Calendar.createEvent(title, startTime, endTime, options)は、指定されたカレンダーに新しいイベントを作成するGASの関数です。
title:イベントのタイトル(文字列)startTime:イベントの開始日時(Dateオブジェクト)endTime:イベントの終了日時(Dateオブジェクト)options:その他のオプション(オブジェクト形式、例:説明、場所、ゲストなど)
WebアプリのフォームからGoogleカレンダーへイベント登録
Webアプリのフォームから送信されたデータをGASで処理し、Calendar.createEventを使ってGoogleカレンダーにイベントを登録する例を紹介します。
実装例1:シンプルなイベント登録
フォームからイベント名、開始日時、終了日時を受け取り、カレンダーに登録します。
function doPost(e) {
// フォームから送信されたパラメータを取得
const params = e.parameter;
const eventTitle = params.eventTitle;
const startDate = new Date(params.startDate);
const endDate = new Date(params.endDate);
// カレンダーを取得(カレンダーIDはご自身のものに変更)
const calendarId = "your_calendar_id@group.calendar.google.com";
const calendar = CalendarApp.getCalendarById(calendarId);
// イベントを作成
calendar.createEvent(eventTitle, startDate, endDate);
// レスポンスを返す
return ContentService.createTextOutput("イベントを登録しました");
}
解説:
doPost(e)関数は、フォームからのPOSTリクエストを処理します。e.parameterからフォームのパラメータを取得します。CalendarApp.getCalendarById(calendarId)でカレンダーを取得します。calendarIdは、対象となるカレンダーのIDに置き換えてください。calendar.createEvent(eventTitle, startDate, endDate)でイベントを作成します。
実装例2:詳細なオプション設定
フォームからイベント名、開始日時、終了日時、説明、場所、ゲストを受け取り、カレンダーに登録します。
function doPost(e) {
// フォームから送信されたパラメータを取得
const params = e.parameter;
const eventTitle = params.eventTitle;
const startDate = new Date(params.startDate);
const endDate = new Date(params.endDate);
const eventDescription = params.eventDescription;
const eventLocation = params.eventLocation;
const eventGuests = params.eventGuests;
// カレンダーを取得(カレンダーIDはご自身のものに変更)
const calendarId = "your_calendar_id@group.calendar.google.com";
const calendar = CalendarApp.getCalendarById(calendarId);
// オプションを設定
const options = {
description: eventDescription,
location: eventLocation,
guests: eventGuests
};
// イベントを作成
calendar.createEvent(eventTitle, startDate, endDate, options);
// レスポンスを返す
return ContentService.createTextOutput("イベントを登録しました");
}
解説:
optionsオブジェクトに、description、location、guestsなどの詳細情報を設定します。guestsには、招待するゲストのメールアドレスをカンマ区切りで指定します。
実装例3:時間指定なしイベント(終日イベント)
終日イベントとしてカレンダーに登録する例です。
function doPost(e) {
// フォームから送信されたパラメータを取得
const params = e.parameter;
const eventTitle = params.eventTitle;
const eventDate = new Date(params.eventDate);
// カレンダーを取得(カレンダーIDはご自身のものに変更)
const calendarId = "your_calendar_id@group.calendar.google.com";
const calendar = CalendarApp.getCalendarById(calendarId);
// 終日イベントを作成
calendar.createAllDayEvent(eventTitle, eventDate);
// レスポンスを返す
return ContentService.createTextOutput("終日イベントを登録しました");
}
解説:
calendar.createAllDayEvent(eventTitle, eventDate)で終日イベントを作成します。
よくある問題とトラブルシューティング
- カレンダーIDが間違っている:
CalendarApp.getCalendarById()で正しいカレンダーIDを指定しているか確認してください。 - 日付の形式が正しくない:フォームから送信された日付が正しい形式(
YYYY-MM-DDなど)であることを確認し、new Date()で正しくDateオブジェクトに変換されているか確認してください。 - 権限の問題:GASプロジェクトがカレンダーへのアクセス権を持っているか確認してください。
カスタマイズ方法と応用例
- タイムゾーンの設定:
optionsにtimeZoneを追加することで、タイムゾーンを指定できます。 - リマインダーの設定:Events.Events.insert API を使用することで、リマインダーを設定できます。(より高度な設定が必要です)
- 定期的なイベントの作成:Events.Events.insert API を使用することで、定期的なイベントを作成できます。(より高度な設定が必要です)
まとめ
GASのCalendar.createEvent関数を使用することで、WebアプリからGoogleカレンダーへのイベント登録を自動化できます。フォームからのデータを受け取り、柔軟なオプション設定を行うことで、様々な業務ニーズに対応できます。この記事で紹介した実装例を参考に、ぜひご自身のWebアプリケーションに組み込んでみてください。

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