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

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

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

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

Google カレンダー

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

Google

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

Q&A

解決済

1回答

1057閲覧

googleformの回答ごとに新規カレンダーを作成し、予定を追加したい。

Nodachobob

総合スコア1

Google フォーム

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

Google カレンダー

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

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

Google

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

0グッド

0クリップ

投稿2020/05/30 03:59

前提・実現したいこと

gasについて。
多数のユーザーのスケジュールを管理する仕組みを作りたいです。
google formから名前と空いてる日時を選択して登録すると、googleカレンダーに回答した名前のカレンダーを作成し、回答した時間に予定が追加されるようにしたいです。

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

新しいカレンダーは作成されるものの、予定が追加されません。

該当のソースコード

GAS

1function myFunction(e){ 2 3 4 //初期設定 5 var itemResponses = e.response.getItemResponses(); 6 7 var calendar = CalendarApp; 8 9 options = { 10 location: "location", 11 summary: "summary", 12 timeZone: "Asia/Tokyo", 13 color: CalendarApp.Color.RED, 14 hidden: false, 15 selected: true, 16 } 17 //入力項目の解析 18 for (var i = 0; i < itemResponses.length; i++) { 19 20 var itemResponse = itemResponses[i]; 21 var question = itemResponse.getItem().getTitle(); 22 var answer = itemResponse.getResponse(); 23 24 if(question=="登録したお名前"){ 25 var cTitle=answer; 26 }else if(question=="日付"){ 27 var cDate=answer.replace(/-/g,'/'); 28 var cEDate=cDate; 29 }else if(question=="開始時刻"){ 30 var cDate=cDate + " " + answer; 31 }else if(question=="終了時刻"){ 32 var cEDate=cEDate + " " + answer; 33 }} 34 35 calendar.createCalendar(cTitle, options); 36 //Googleカレンダーへの投稿 37 var objCalendar = CalendarApp.getCalendarsByName(cTitle); 38 var objEvent = objCalendar.createEvent(cTitle,cDate,cEDate).setGuestsCanSeeGuests(false); 39 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは、以下のコードで出来ると思います。

Javascript

1function myFunction(e) { 2 //初期設定 3 var itemResponses = e.response.getItemResponses(); 4 5 var calendar = CalendarApp; 6 7 options = { 8 location: "location", 9 summary: "summary", 10 timeZone: "Asia/Tokyo", 11 color: CalendarApp.Color.RED, 12 hidden: false, 13 selected: true, 14 }; 15 //入力項目の解析 16 for (var i = 0; i < itemResponses.length; i++) { 17 var itemResponse = itemResponses[i]; 18 var question = itemResponse.getItem().getTitle(); 19 var answer = itemResponse.getResponse(); 20 21 if (question == "登録したお名前") { 22 var cTitle = answer; 23 } else if (question == "日付") { 24 var cDate = answer.replace(/-/g, "/"); 25 var cEDate = cDate; 26 } else if (question == "開始時刻") { 27 var cDate = cDate + " " + answer; 28 cDate = new Date(cDate); 29 } else if (question == "終了時刻") { 30 var cEDate = cEDate + " " + answer; 31 cEDate = new Date(cEDate); 32 } 33 } 34 //https://developers.google.com/apps-script/reference/calendar/calendar 35 var objCalendar = calendar.createCalendar(cTitle, options); 36 //Googleカレンダーへの投稿 37 //var objCalendar = CalendarApp.getCalendarsByName(cTitle); 38 try { 39 var objEvent = objCalendar.createEvent(cTitle, cDate, cEDate).setGuestsCanSeeGuests(false); 40 Logger.log("イベントのIDは:" + objEvent.getId()); 41 Logger.log("カレンダーにイベントを登録しました。" + "イベントのタイトルは、"+objEvent.getTitle()); 42 } catch (ex) { 43 Logger.log(ex); 44 } 45} 46

投稿2020/05/31 01:22

fake_shibe

総合スコア806

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問