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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

Q&A

解決済

1回答

1014閲覧

GASを使ってフォーム送信時にカレンダーにイベント作成、ゲスト追加、会議室を追加したい 

mutttttton

総合スコア15

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

0グッド

0クリップ

投稿2022/11/17 17:20

編集2022/11/19 04:12

実現したいこと

Googleフォームの入力でカレンダーにイベントの作成、ゲストの追加、
会議室の追加をして追加されたことをメールで通知したいです。

イベントの作成、ゲストの追加とメールで通知まではできていたのですが
そこに会議室も追加したいと考えています。

そもそもできるのかもわかってませんが
ご教示いただけますと幸いです。

発生している問題・エラーメッセージ

・会議室かゲストかどちらかにしかイベントが作成されない
・会議室を追加すると自動で辞退になってしまう

該当のソースコード

function sendToCalendar(e) { //有効なGoogleスプレッドシートを開く var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dat = sheet.getDataRange().getValues(); //ゲストを設定 var aaag = "me-ruadoresu1@~~~.jp,me-ruadoresu2@~~,jp" var bbbg = "me-ruadoresu3@~~~.jp,me-ruadoresu4`~~,jp" //追加された行番号を取得 var num_row = sheet.getLastRow() - 1; //追加された行から名前を取得 var nname = dat[num_row][1]; //追加された行から場所を取得 var loc = dat[num_row][4] //詳細欄の取得 var des = dat[num_row][5] //会議室の取得 var rm = dat[num_row][6]; //予約を記載するカレンダーを取得 var guest =""; if(loc =="東京"){ id="カレンダーID①"; guest=aaag;} else if(loc =="大阪"){ id="カレンダーID②"; guest=bbbg;} var cals = CalendarApp.getCalendarById(id); /* 日時をセット */ var evtDate = new Date(dat[num_row][2]); var evtTime = new Date(dat[num_row][3]); evtDate.setHours(evtTime.getHours()); evtDate.setMinutes(evtTime.getMinutes()); //予約する会議室のカレンダーを取得 if(rm=="会議室1"){ i="会議室1カレンダーID";} else if(rm=="会議室2"){ i="会議室2カレンダーID";} else if(rm=="会議室3"){ i="会議室3カレンダーID";} else if(rm=="会議室4"){ i="会議室4カレンダーID";} else if(rm=="会議室5"){ i="会議室5カレンダーID";} //予約情報をカレンダーに追加 thisevent = cals.createEvent(nname, evtDate, evtDate,{ location: loc, description: des, guests:guest, guests:i, sendinvites: true,}); //メールの送信 var nittei = e.namedValues["日程"]; var jikan = e.namedValues["時間"]; var basyo = e.namedValues["場所"]; var to = guest; var sub = "文章" var body="文章"; MailApp.sendEmail({to:to,subject:sub,body:body}) }

試したこと

自分で調べて以下の部分でguestsにカレンダーのIDを入れるとことろまではわかったのですが、うまくいきませんでした。

thisevent = cals.createEvent(nname, evtDate, evtDate,{ location: loc, description: des, guests:guest, guests:i, sendinvites: true,});

またメールアドレスであればカンマで区切って複数指定ができるとあったので
以下のように変えてみましたができませんでした。

thisevent = cals.createEvent(nname, evtDate, evtDate,{ location: loc, description: des, guests:guest,i, sendinvites: true,});

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

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

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

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

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

guest

回答1

0

自己解決

別のカレンダーを作成して、2種類のイベントを登録する形で無理くり解決しました。

//予約情報をカレンダーに追加 thisevent = cals.createEvent(nname, evtDate, evtDate,{ location: loc, description: des, guests:guest, sendinvites: true,}); thisevent = cals2.createEvent(nname, evtDate, evtDate,{ location: loc, description: des, guests:i, sendinvites: true,});

投稿2022/11/22 07:30

mutttttton

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問