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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google カレンダー

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

1回答

897閲覧

毎週カレンダーに追加するスクリプト

yoyoy

総合スコア14

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google カレンダー

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2019/12/23 06:04

Formから予約日を入力し、毎週同じ時間に予約をする場合は、Googleカレンダーに毎週同じ時間に予定を追加する方法がうまくいきません。
どこを修正すればよいか、教えていただければ幸いです。

開始日、終了日の期間のみ、開始時間~終了時間を開始日の曜日に毎週、終了日まで追加をするルールを作成したいのですが、「TypeError: オブジェクト EventRecurrence で関数 onlyOnWeekday が見つかりません。」のMSGがメールに表示されます。

function PC(e) { //有効なGooglesプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //新規予約された行番号を取得 var num_row = sheet.getLastRow(); //新規予約された行から名前を取得 var nname = sheet.getRange(num_row, 2).getValue(); //メールアドレスの取得 var nmail = sheet.getRange(num_row,4).getValue(); //利用期間(毎週か毎週以外か) var kikan = sheet.getRange(num_row, 7).getValue(); //予約を記載するカレンダーを取得 var cals = CalendarApp.getCalendarById("カレンダーID"); var days = [ CalendarApp.Weekday.SUNDAY, CalendarApp.Weekday.MONDAY, CalendarApp.Weekday.TUESDAY, CalendarApp.Weekday.WEDNESDAY, CalendarApp.Weekday.THURSDAY, CalendarApp.Weekday.FRIDAY, CalendarApp.Weekday.SATURDAY ]; //開始時間を取得 var stime = new Date(sheet.getRange(num_row, 10).getValue()); var stime2 = sheet.getRange(num_row, 10).getDisplayValues(); //終了時間を取得 var etime = new Date(sheet.getRange(num_row, 11).getValue()); var etime2 = sheet.getRange(num_row, 11).getDisplayValues(); //開始日を取得 var sdate = new Date(sheet.getRange(num_row, 8).getValue()); var sdate2 = sheet.getRange(num_row, 8).getDisplayValues(); //終了日を取得 var edate = new Date(sheet.getRange(num_row, 9).getValue()); var edate2 = sheet.getRange(num_row, 9).getDisplayValues(); var ndates= new Date(sdate.getFullYear(),sdate.getMonth(),sdate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(edate.getFullYear(),edate.getMonth(),edate.getDate(),etime.getHours(),etime.getMinutes(),0); var weekday = days[stime.getDay()]; var option = { description : nname, location : space } var result = kikan.indexOf('毎週'); // 空き状況確認(毎週以外) if( result ==-1){ var thing = nname ; //予約情報をカレンダーに追加 var r = cals.createEvent(thing, ndates, ndatee, option); var subject = "件名"; var body =''; body += 'ありがとうございます。\n'; GmailApp.sendEmail(nmail,subject,body, { from: '**********', name: '**********',}); var subject2 = "件名"; var body2 =''; body2 += '確認をお願いします。\n'; GmailApp.sendEmail('************',subject2,body2, { from:'************', name:'************',}); } // 空き状況確認(毎週) if(result !=-1){ var thing = nname ; var rec = CalendarApp.newRecurrence().onlyOnWeekday(weekday).until(edate); //予約情報をカレンダーに追加 var r = cals.createEventSeries(thing, ndates, ndatee, rec,option); var subject3 = "件名"; var body3 =''; body3 += '申請ありがとうございます。\n'; GmailApp.sendEmail(nmail,subject3,body3, { from:'**********', name:'***********',}); var subject4 = "件名"; var body4 =''; body4 += '確認をお願いします。\n'; GmailApp.sendEmail('**********',subject4,body4, { from:'**********', name:'***********',}); } }

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

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

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

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

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

guest

回答1

0

javascript

1var rec = CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekday(weekday).until(edate);

一切確認してないですが、こんな感じですかねぇ

onlyOnWeekdays(days)

投稿2020/02/05 16:14

papinianus

総合スコア12705

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問