他アカウントのカレンダーを自分のカレンダーに追加する — subscribeToCalendar
今回のメソッドでは自分がアクセスできる状態の他のアカウントのカレンダーを自分のカレンダーに追加登録する方法を紹介します。正直あまり使用イメージが湧いてこないのでどの場面で使ったら良いのかがわかりませんが、公式リファレンスで紹介されていますのでこちらのページでもご紹介します。
それでは、説明を始めます。
『 引数に入れる値 』
subscribeToCalendar(id)
//カレンダーを追加登録するコード function sampleCode1() { var id = "h349j2dgs3rf6pj9f6v318qnqo@group.calendar.google.com"; //一般公開している管理者のカレンダーID CalendarApp.subscribeToCalendar(id); }
『 変数の説明 』
id = 一般公開している私のカレンダーIDを指定
スクリプトをコピーして▶ボタンでプログラムを実行してみましょう。実行が終了したらカレンダーページを更新してみて下さい。私のカレンダーであるMade by GASというカレンダーが一覧に表示されていると思いますので、ご確認下さい。
subscribeToCalendar(id, options)
//カレンダーを追加登録するコード 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 = 色や表示設定を指定する設定項目を指定
まとめ
今回は、他のアカウントのカレンダーをプログラムを使って自分の予定に入れるコードを紹介しました。
私は使う機会があまり思い浮かびませんが、なにか使えるものを考えた方はぜひ私にもアイディアを教えてください(笑)
すべてのサンプルコードはコピーしてスクリプトエディタに貼り付けることでそのまま利用が可能です。
コメント
コメント一覧 (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()メソッドの場合はカレンダーを削除するメソッドのため、権限がない限りは処理途中でエラーになってしまいます。
ご質問の答えになっていますでしょうか?
スマホからの書き込みなので、コードのコピペでエラーが出たら申し訳ない。
[…] は反対に他アカウントのカレンダーを自分のGoogleカレンダー上に表示させるメソッドはsubscribeToCalendar()というメソッドを使用します。詳しい使い方はこちらのリンク先をご参照ください。 […]