【コピペで使える】GASで他アカウントのカレンダーを追加してみる

icon_for_CalendarApp_ subscribeToCalendar
URLをコピーする
URLをコピーしました!
目次

他アカウントのカレンダーを自分のカレンダーに追加する — subscribeToCalendar

今回のメソッドでは自分がアクセスできる状態の他のアカウントのカレンダーを自分のカレンダーに追加登録する方法を紹介します。正直あまり使用イメージが湧いてこないのでどの場面で使ったら良いのかがわかりませんが、公式リファレンスで紹介されていますのでこちらのページでもご紹介します。

それでは、説明を始めます。

  1. subscribeToCalendar(id)
  2. subscribeToCalendar(id, options)

『 引数に入れる値 』

  • id(文字列) — 登録したいカレンダーIDを指定
  • options(オブジェクト)— 追加項目を指定
    • color — カレンダーの色 (文字列)
    • hidden — true / false
      • (trueにするとカレンダーは作成されますがリストに表示されません)
    • selected — true / false
      • (trueにすると予定が表示される状態でカレンダーが作成されます。true/falseどちらの場合もリストには表示されます)

subscribeToCalendar(id)

サンプルコード1
//カレンダーを追加登録するコード
function sampleCode1() {
  var id = "h349j2dgs3rf6pj9f6v318qnqo@group.calendar.google.com"; //一般公開している管理者のカレンダーID
  CalendarApp.subscribeToCalendar(id);
}

『 変数の説明 』

id = 一般公開している私のカレンダーIDを指定

スクリプトをコピーして▶ボタンでプログラムを実行してみましょう。実行が終了したらカレンダーページを更新してみて下さい。私のカレンダーであるMade by GASというカレンダーが一覧に表示されていると思いますので、ご確認下さい。

subscribeToCalendar(id, options)

サンプルコード2
//カレンダーを追加登録するコード
function sampleCode1() {
  var id = "h349j2dgs3rf6pj9f6v318qnqo@group.calendar.google.com"; //一般公開している管理者のカレンダーID
  var options = {
    color: CalendarApp.Color.RED,
    hidden: false,
    selected: true
  }
  CalendarApp.subscribeToCalendar(id, options);
}

『 変数の説明 』

id = 一般公開している私のカレンダーIDを指定
options = 色や表示設定を指定する設定項目を指定

まとめ

今回は、他のアカウントのカレンダーをプログラムを使って自分の予定に入れるコードを紹介しました。
私は使う機会があまり思い浮かびませんが、なにか使えるものを考えた方はぜひ私にもアイディアを教えてください(笑)
すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。

icon_for_CalendarApp_ subscribeToCalendar

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初心者でもわかるGoogle Apps Script活用のススメの管理人。
業務でラクをするという邪な目的のためにプログラムを独学で勉強し始め、初心者向けのGoogle Apps Scriptの使い方サイトを運営するに至る。
ラクをするためにはどんな苦労も厭わないという考えから、手っ取り早くスキルアップするためにCrowdWorksやLancersなどで仕事を受注し始め、過去にはTopClass PRO Crowd workerに認定された経験を持つ。
現在では、業務効率化システムの開発を行う会社の代表を務める。

コメント

コメント一覧 (6件)

  • CalendarApp.getCalendarById(element)で取得できるカレンダーは
    実行者のGoogleカレンダーの「他のカレンダー」に表示されているカレンダーのみ、のようなので、困っていたところ、このページにたどり着きました。

    ありがとうございます!

    ただし、getCalendarById利用後は「他のカレンダー」から非表示にするのではなく、削除したいのですが、そのような関数は用意されていないと理解しており、引き続き調査しているのですが、ご存知でしたらお教えください!

    • 追記ですが、こちらのヘルプページで補足します。

      https://support.google.com/calendar/answer/37188?co=GENIE.Platform%3DDesktop&oco=0

      『リストからカレンダーを完全に削除する』と書いてある項目が今回私がご紹介したunsubscribeFromCalendar()メソッドに相当します。

      『カレンダーを完全に削除する(元に戻せません)』と書いてある項目がdeleteCalendar()メソッドに相当します。

      削除する権限まで含めてプログラム実行者アカウントに共有されていればdeleteCalendar()メソッドも利用できますが、カレンダーのオーナーや他の共有者もアクセスができなくなりますので、利用の際はご注意下さい。

      • unsubscribeFromCalendarでできました。
        丁寧な解説ありがとうございました!

        • 解決できたようで良かったです。

          CalendarApp以外でも解説がほしいメソッドがあれば優先的に更新しますので、コメントや問い合わせフォームでいつでもご連絡下さいね。

          コメントありがとうございました。

  • 自分のアカウントで削除権限のないカレンダーの場合はカレンダーを削除するdeleteCalendar()メソッドではエラーになってしまいますので、代わりにunsubscribeFromCalendar()メソッドを使用すれば良いかと思います。

    var calendar = CalendarApp.getCalendarById(“対象のカレンダーID”);
    calendar.unsubscribeFromCalendar();

    これで自分のアカウントから対象のカレンダーが見れなくなると思います。(カレンダーのオーナーアカウントからは削除されませんが、自分のアカウントからはアクセスができなくなります)

    繰り返しになりますが、deleteCalendar()メソッドの場合はカレンダーを削除するメソッドのため、権限がない限りは処理途中でエラーになってしまいます。

    ご質問の答えになっていますでしょうか?

    スマホからの書き込みなので、コードのコピペでエラーが出たら申し訳ない。

admin へ返信する コメントをキャンセル

目次
トップへ
目次
閉じる