作成したカレンダーの「公開URL」を自動で取得したいと思っております。
CalendarApp.createCalendar(name)を実行して、新規カレンダーを作成した後に
そのカレンダーが持つ「公開URL」を取得するメソッドはありますでしょうか?
リファレンスを見る限り見当たりません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
calendarクラスから公開カレンダーを一発で取り出すメソッドはないようです。
ただし解決策はあり、公開カレンダーのURLは、固定の文字列にカレンダーIDの一部を差し込むことで構成されています。
下の変数URLが公開URLになります。
var calendarId = "カレンダーのID" var before = "https://calendar.google.com/calendar/embed?src=" var after = "%40group.calendar.google.com&ctz=Asia%2FTokyo" var middle = calendarId.replace("@group.calendar.google.com","");) var url = before + middle + after;
投稿2021/03/08 07:42
編集2021/03/08 08:05総合スコア20
0
ベストアンサー
GASにはgetAllOwnedCalendars()という,ユーザーが所持している全カレンダーを取得するメンバーが存在します.このメンバーはカレンダーを配列で取得するため,スプレッドシートか何かで直近のカレンダーを保持しておき,差分を検知したらメールかポップアップかで通知するという方法がとれると思います(ユーザーに紐づいたIDのため,取得したいカレンダーの作成者が複数になると厳しいかもしれません).
もちろん過去のものを残していると差分が必ず発生するため,スクリプトの起動時など特定の日時を範囲の端点にする必要があります.
肝心のトリガーですが,私の調べた限りではカレンダーの作成をトリガーにする方法が見つけられませんでした.即時性には欠けますが,トリガーは時間指定ができますので,毎時00分と30分にこのスクリプトを動かす,のような形でなら実現可能だと思います.(このため,トリガーの起点の間に作成され終了したイベントのIDは取得できません)
投稿2021/03/08 00:28
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/08 06:27
2021/03/08 07:26
退会済みユーザー
2021/03/08 08:14
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。