質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

1260閲覧

【GAS】Googleカレンダーの休業日・営業日判定から呼び出すプログラムを変える方法

batora

総合スコア1

Google カレンダー

Google カレンダーは、Google社が提供する無料のスケジュール管理ツールです。パソコンやスマートフォン、タブレットなどからアクセスし、スケジュールの追加・変更が可能。Googleアカウントがあれば誰でも使用できます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/06/12 00:18

GASのカレンダーから
休業日を取得して、「休業日」の場合はSetTrigger1でフォームの開放を9時に、「営業日」の場合はsetTrigger2でフォームの開放を10時に作動させたいです。
カレンダーには終日予定で「営業日」「休業日」を入力してあります。
openFormAcceptanceは動作確認が済んでいるので下には載せていません。
以下のスクリプトではうまく動作しませんでした。

function isMyBusinessDay1(){  var date = new Date(); const calendar = CalendarApp.getCalendarById('※カレンダーIDを入れています※'); const events = calendar.getEventsForDay(); return events.some(event => (event.getTitle() === '休業日')); } function isMyBusinessDay2(){  var date = new Date(); const calendar = CalendarApp.getCalendarById('※カレンダーIDを入れています※'); const events = calendar.getEventsForDay(); return events.some(event => (event.getTitle() === '営業日')); } function setTrigger1(){ const time = new Date(); time.setHours(9); time.setMinutes(00); if (isMyBusinessDay1(date)){ ScriptApp.newTrigger('openFormAcceptance').timeBased().at(time).create(); } } function setTrigger1(){ const time = new Date(); time.setHours(10); time.setMinutes(00); if (isMyBusinessDay2(date)){ ScriptApp.newTrigger('openFormAcceptance').timeBased().at(time).create(); } } --- 動作させると動作はするときもありますが、トリガーがセットされません。 ご教示いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「休業日」の場合はSetTrigger1でフォームの開放を9時に、「営業日」の場合はsetTrigger2でフォームの開放を10時に作動させたいです

記載していない部分やCodeブロックにない部分を深く考えるのは止めますが…。

掲載していただいたコードについては、単純に一定時間毎(毎時0分等)に動作する関数でこういう考え方で良いのではないでしょうか?
条件にヒットしなければsetTriggerX()を動かす必要はないので。

gas

1if (【フォームが未開放である】and【休業日である】and【午前9時以降である】) { 2 setTrigger1(); 3} else if (【フォームが未開放である】and【営業日である】and【午前10時以降である】) { 4 setTrigger2(); 5}

投稿2021/06/12 01:00

編集2021/06/12 01:02
neonemo

総合スコア191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問