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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google

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

Q&A

解決済

1回答

4092閲覧

GAS googleカレンダーとgoogleフォームの同期

Cabe

総合スコア24

Google

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

0グッド

0クリップ

投稿2017/11/16 04:23

編集2017/11/17 04:54

プログラム初心者で知識がほぼありません。。。
現在、Googleフォームを送信したらカレンダーに反映されるところまではできました。
フォームの回答のスプレッドシートに以下のスクリプトを入力しました。
こちらの形だと日にちをまたいでの予約ができないのでできるようにする方法はありますでしょうか?
・予約開始時間2017/11/16 23:00から◯◯時間の予約
・予約開始時間2017/11/16 23:00 予約終了時間2017/11/16 2:00までの予約
といった形のどちらかが取れたら理想です。ご指導いただけたら嬉しいです。

function sendToCalendar(e) { try{ //有効なGooglesプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //新規予約された行番号を取得 var num_row = sheet.getLastRow(); //新規予約された行から名前を取得 var nname = sheet.getRange(num_row, 3).getValue(); //メールアドレスの取得 var nmail = sheet.getRange(num_row,2).getValue(); //予約を記載するカレンダーを取得 var cals = CalendarApp.getCalendarById("f2v76qfhpd00nl7dn7kma7un84@group.calendar.google.com"); //予約の開始時間を取得 var stime = new Date(sheet.getRange(num_row, 5).getValue()); //予約の終了時間を取得 var etime = new Date(sheet.getRange(num_row, 6).getValue()); var ndate = new Date(sheet.getRange(num_row, 4).getValue()); var ndates= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),stime.getHours(),stime.getMinutes(),0); var ndatee= new Date(ndate.getFullYear(),ndate.getMonth(),ndate.getDate(),etime.getHours(),etime.getMinutes(),0); // 先約があるかどうか調べる if(cals.getEvents(ndates, ndatee)==0){ var thing = nname+"様 ご予約"; //予約情報をカレンダーに追加 var r = cals.createEvent(thing, ndates, ndatee); var thing =nname+"様 \n\n ご仮予約を承りました。\n 別途、確定のお知らせをいたします。\n\n ありがとうございました" MailApp.sendEmail(nmail,"仮ご予約",thing); } else{ var thing =nname+"様 \n\n ご予約の時間に先約がありましたので、\n 申し訳ございませんが、ご予約いただけませんでした。\n\n ご予定を変更して再度お申込みください" MailApp.sendEmail(nmail,"ご予約できませんでした",thing); } } catch(exp){ //実行に失敗した時に通知 MailApp.sendEmail(nmail, exp.message, exp.message); } }

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

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

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

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

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

guest

回答1

0

自己解決

終了日程の日時を入力するフォームを追加し、足すことでできました。

投稿2017/11/28 03:39

Cabe

総合スコア24

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問