【GAS】無料版Gmail同士で他人のGoogleカレンダーに予定を書き込む方法
Google Apps Script(GAS)を使ってカレンダー操作をする際、自分のカレンダーなら簡単ですが他人のカレンダーとなると少しハードルが高くなります。Google Workspaceのような組織アカウントでなくても無料版Gmail同士でカレンダー共有設定を変えることでGASからの自動書き込みが可能になります。今回は、権限エラーにハマらないための設定手順とシンプルな実行コードを紹介します。
相手(登録先)のカレンダー設定手順
予定を書き込んでもらう側(店長や共有相手)のアカウントで、以下の設定を行う必要があります。
- PC版Googleカレンダーを開きます。
- 上部の歯車アイコンをクリック、プルダウンメニューから「設定」を選びます。
- 左側の「マイカレンダーの設定」から自分のアカウントを選択するとサブメニューが現れるので、その中から「共有する相手」をクリックします。
- 「ユーザーやグループの追加」をクリックし、共有したいメールアドレス(自分)を入力し、権限を「予定の変更」または「予定の変更および共有の管理」を選択してください。「閲覧権限」だけではGASから書き込みができません。
- 「送信」を押して設定完了です。
書き込むためのプログラム
設定ができたら、GAS側で以下のコードを実行します。相手のメールアドレスをIDとして指定するのがポイントです。
/**
* 共有設定済みの他人のカレンダーに予定を入れる最小コード
*/
function writeToOthersCalendar() {
// 1. 相手のカレンダーID(メールアドレス)を指定
const calendarId = 'target-user@gmail.com';
// 2. カレンダーを取得
const calendar = CalendarApp.getCalendarById(calendarId);
// 3. 予定を作成(タイトル, 開始日時, 終了日時)
// ※ここでは「今日」の「13時〜14時」に固定の予定を作成します
const now = new Date();
const startTime = new Date(now.setHours(13, 0, 0));
const endTime = new Date(now.setHours(14, 0, 0));
calendar.createEvent('GASからのテスト予定', startTime, endTime);
console.log('書き込みが完了しました!');
}
実行結果
結果は以下の通り。(21日のところ)
無料版Gmailでも他人のカレンダー操作に成功しました。共有設定を正しく行えば、特別なAPI不要で店舗やチームの予定一括登録システムが作れます。
スポンサーリンク

