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

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

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

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

Google フォーム

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

Google カレンダー

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

Google Apps Script

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

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Q&A

解決済

1回答

936閲覧

GoogleAppsScriptにて予定開始時刻と、予定終了時刻をGoogleカレンダーへ入力出来るようにしたい

82ayaaya

総合スコア4

Google スプレッドシート

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

Google フォーム

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

Google カレンダー

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

Google Apps Script

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

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

0グッド

1クリップ

投稿2021/12/14 07:47

前提・実現したいこと

前回質問分 https://teratail.com/questions/372765
googleフォーム>スプレッドシート>googleカレンダー>googleサイトにて社外向けのZoomミーティング仮予約予定表を作成したい。

スプレッドシート>googleカレンダーの連携、googleサイトは完成。

下記コードでスプレッドシートがカレンダーに反映し、予約が完了できたが
「予定の終了時刻」のみが反映され、「予定の開始時刻」をGoogleカレンダーへ登録出来ない。

該当のソースコード

function addTaskEvents() { var myCal1 = CalendarApp.getCalendarById('****'); //カレンダーIDでカレンダーを取得 var objSpreadsheet = SpreadsheetApp.openById('****'); var mySheet = objSpreadsheet.getSheetByName("フォームの回答 2");  var dat = mySheet.getDataRange().getValues(); //シートデータを取得 for(var i=1;i<dat.length;i++){ if(dat[i][6] == ""){ /* 日時をセット */ var evtDate = new Date(dat[i][3]); var evtTime = new Date(dat[i][4]); evtDate.setHours(evtTime.getHours()); evtDate.setMinutes(evtTime.getMinutes()); var options = {description: dat[i][5]}; var Priority = dat[i][2] /* イベントの追加・スプレッドシートへの入力 */ { var myEvt = myCal1.createEvent(dat[i][2],evtDate,evtDate,options); //カレンダーにタスクをイベントとして追加 } dat[i][6]=myEvt.getId(); //イベントIDを入力 dat[i][7]='済'; } } mySheet.getRange(1,1,i,8).setValues(dat); //データをシートに出力 }

試したこと

1.下記コードの書き換え
該当箇所↓↓↓
/* 日時をセット */
var evtDate = new Date(dat[i][3]);
var evtTime = new Date(dat[i][4]);
evtDate.setHours(evtTime.getHours());
evtDate.setMinutes(evtTime.getMinutes());

var options = {description: dat[i][5]}; var Priority = dat[i][2]

↑↑↑↑↑

→こちらが、
let Start_time = new Date(e.values[2]);// 予約の開始時刻
let End_time = new Date(e.values[3]);// 予約の終了時刻
になっていない事が原因なのかと思いましたが、上記コードをどのように書き換えれば良いか分かりません…

2.下記コードの書き換え
該当箇所↓↓↓
/* イベントの追加・スプレッドシートへの入力 /
{
var myEvt = myCal1.createEvent(dat[i][2],evtDate,evtDate,options); //カレンダーにタスクをイベントとして追加
}
↑↑↑↑↑
こちらを、
/
イベントの追加・スプレッドシートへの入力 */
{
var myEvt = myCal1.createEvent(dat[i][2],Start_time,End_time,options); //カレンダーにタスクをイベントとして追加
}
へ、変更しました。

補足情報(FW/ツールのバージョンなど)

スプレッドシートは
「0」タイムスタンプ
「1」タイトル
「2」名字のみ
「3」予約の開始時刻 (例:2021/12/12 10:00:00)
「4」予約の終了時刻 (例:2021/12/12 12:00:00)
「5」説明
「6」ログ
「7」反映
となっております。

ソースコード欄にあります「****」は本来入力しております。
その他空欄は入力しておりません。
参考URLは下記の通りです。
https://teratail.com/questions/279599

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記のようにした場合はどうでしょうか。

js

1function addTaskEvents() { 2 3 (中略) 4 5 /* 日時をセット */ 6 let Start_time = new Date(dat[i][3]);// 予約の開始時刻 7 let End_time = new Date(dat[i][4]);// 予約の終了時刻 8 9 var options = {description: dat[i][5]}; 10 var Priority = dat[i][2] 11 12 /* イベントの追加・スプレッドシートへの入力 */ 13 14 var myEvt = myCal1.createEvent(dat[i][2],Start_time ,End_time ,options); //カレンダーにタスクをイベントとして追加 15 16 dat[i][6]=myEvt.getId(); //イベントIDを入力 17 dat[i][7]='済'; 18 } 19 } 20 mySheet.getRange(1,1,i,8).setValues(dat); //データをシートに出力 21}

投稿2021/12/14 12:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

82ayaaya

2021/12/14 12:54

反映しました!!感謝致します!! ありがとうございました( ;∀;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問