【GAS】他人のGoogleカレンダーに予定を登録する方法

2022/03/28に公開

はじめに

タイトルにあるように、自分のGoogleアカウント上で作成したGAS(Google Apps Script)から、他人のGoogleカレンダーへ予定を登録する方法を解説します。
自分で調べながらやってみたのですが、少し手間取ってしまったので今後同じようなことがあった時のメモとして残しておきます。
誰かの参考になれば幸いです🙂

そもそもGAS(Google Apps Script)って何?

GASはプログラミング言語です。
Googleが開発しました。
みんな大好きJavaScriptというwebブラウザで動作するプログラミング言語をベースに作られた言語なので、個人的には使いやすいです。
このGASという言語を使ってプログラムを書くと、下記のGoogleの便利なサービスをさらに便利にできます。

  • Gmail
  • Google カレンダー
  • Google ドライブ
  • Google スプレッドシート
  • Google ドキュメント
  • Google Forms
    などなど

できることの一例

  • Googleカレンダー × Googleスプレッドシート
    Googleスプレッドシートに入力した日付や予定などを読み取り、Googleカレンダーに反映させてくれる

  • Googleカレンダー × Googleドキュメント
    Googleカレンダーの翌日の予定に会議がある場合、あらかじめ用意してあるテンプレートをもとにGoogleドキュメントに議事録を作成してくれる

作成するもの

今回は他人のカレンダーの予定に登録することが目的なので

  1. カレンダーを共有する設定
  2. 簡単にGASを書いて実行し、他人のカレンダーに予定を登録

この2点をやっていきます。

1. カレンダーを共有する設定

上記にも書いてますが、他人のカレンダー(登録される方)で設定していきます。
イメージとしては、他人が自分に対して「カレンダー触っていいですよー」と許可をしてやる感じです。
これをしないと自分から他人のカレンダーに予定を追加しようとしてもできません。

1-1 Google ChromeでGoogleカレンダーを開き、設定画面に遷移する

まずはウェブブラウザでGoogleカレンダーを開き、共有したいカレンダーの右にある3点リーダをクリック、「設定と共有ボタン」を押します。

画像で確認

2-2 予定のアクセス権限に追加する

次に「予定のアクセス権限」から予定の登録を許可したいユーザーを追加します。

画像で確認


これで設定は完了です。
次はGASを書いていきます。

2. GASでプログラムを書き、Googleカレンダーに予定を登録する

上記にある通り、他人のGoogleカレンダーに予定を登録するアカウントでログインしてください。
その状態でGoogleドライブを開きます。
新規 -> その他 -> Google Apps Scriptを開きます。

画像で確認する

実際にGASを書いていきます。
下記のGASが書けたら、実行ボタンを押して、実行します。

function myFunction() {
  // 予定を登録するgmailアカウントのアドレスを定数idに代入
  const id = "********@gmail.com"; // <- 予定を登録するGmailアカウントのアドレス

  try {
    // 上で定義したidからカレンダーを取得
    let calendar = CalendarApp.getCalendarById(id);

    // カレンダーに登録する予定のタイトル
    let title = "予定のタイトル";
    // 予定の始まりの日時
    let startTime = new Date();
    // 予定の終わりの日時
    let endTime = new Date();
    // ここでは予定の終わりの日時を始まりの日時 + 1時間に設定しています。
    new Date(endTime.setHours(endTime.getHours() + 1));
    
    // 上で定義した、タイトル、始まりと終わりの日時を使用して予定を登録
    calendar.createEvent(title, startTime, endTime);
  } catch (e) {
    console.log(`カレンダーIDが正しくありません : ${e}`);
  }
}
画像で確認する

実行ボタンを押した後、1.で設定したアカウントのGoogleカレンダーを確認してみると、予定が追加されています!
あとは追加したい内容や、日時はお好みのように変更してください。

おわりに

今回は他人のGoogleカレンダーに予定を登録してみました。
GASに関しては記事が多いのに、これを実装するのに30分ほど時間をしまいました😭(おそらく筆者のググり力がない)

今回GASに関して詳しくは書いてませんが、時間があればGoogleスプレッドシートに入力した日時などから一括でGoogleカレンダーに予定を追加する方法などまとめてみようかなと思います。
ぜひGASを使い倒して、日々の業務を効率化して楽していきましょう!笑

Discussion