前提・実現したいこと
Gasを使ってGoogle カレンダーの予定をスプレッドシートに出力するプログラムを作っています。
予定がある日は問題なく出力できたのですが、ない日が無視されます。
日付 | 内容 | 開始時間など・・ |
---|---|---|
11/06 | 予定1 | あれこれ |
11/08 | 予定2 | かんとか |
11/11 | 予定3 |
シートへの出力において11/7や11/9.10も抽出するにはどうやったらいいのでしょうか?
発生している問題・エラーメッセージ
該当のソースコード
ソースコード
function
1 2 //カレンダーIDを指定して、カレンダーを取得 3 var calendar = CalendarApp.getCalendarById('~~~~@gmail.com'); 4 5 //対象の日付を範囲指定(今回は対象となる1週間分を指定)して予定を取得 6 var date = '2019/10/01'; //対象月を指定 7 var startDate = new Date(date); //取得開始日 8 var endDate = new Date(date); 9 endDate.setMonth(endDate.getMonth()+12); //取得終了日 10 11 //endDateは含まない 例12/01なら11/30がendになる 12 var events = calendar.getEvents(startDate, endDate); 13 14 //アクティブなシートを取得 15 var sheet = SpreadsheetApp.getActiveSheet(); 16 17 //各行のタイトルを指定 18 sheet.getRange('C'+(1)).setValue('予定名'); 19 sheet.getRange('E'+(1)).setValue('作業日'); 20 sheet.getRange('F'+(1)).setValue('開始時刻'); 21 sheet.getRange('G'+(1)).setValue('終了時刻'); 22 sheet.getRange('H'+(1)).setValue('所要時間'); 23 sheet.getRange('K'+(1)).setValue('予定の詳細'); 24 sheet.getRange('J'+(1)).setValue('住所'); 25 26 //予定の数だけ繰り返し 27 for (var i = 0; i < events.length; i++) { 28 //予定のタイトル 29 var title = events[i].getTitle(); 30 //作業日 31 var startTime = events[i].getStartTime(); 32 //開始時刻 33 var startTime = events[i].getStartTime(); 34 //終了時刻 35 var endTime = events[i].getEndTime(); 36 //所要時間の計算 37 var duration = (endTime - startTime) / (1000 * 60); 38 var dur_h = Math.floor(duration / 60); //時 39 dur_h = ('00' + dur_h).slice(-2); 40 var dur_m = duration - (dur_h * 60); //分 41 dur_m = ('00' + dur_m).slice(-2); 42 //予定の詳細 43 var detail = events[i].getDescription(); 44 //開催場所 45 var location = events[i].getLocation(); 46 47 sheet.getRange('C'+(i+2)).setValue(title); 48 sheet.getRange('E'+(i+2)).setValue(startTime).setNumberFormat('yyyy/mm/dd '); 49 sheet.getRange('F'+(i+2)).setValue(startTime).setNumberFormat('hh:mm'); 50 sheet.getRange('G'+(i+2)).setValue(endTime).setNumberFormat('hh:mm'); 51 //スプレッドシートの表示形式で経過時数01、経過分数01にすると桁がそろって見栄えが良い 52 sheet.getRange('H'+(i+2)).setValue(dur_h+':'+dur_m); 53 sheet.getRange('K'+(i+2)).setValue(detail); 54 sheet.getRange('J'+(i+2)).setValue(location); 55 } 56} 57
試したこと
get◯◯を探してみましたが、見つかりませんでした。
コードを読んでないのですが、6日に複数の予定があったらどうするのですか?また予定が複数日にまたがる場合はどうするのでしょうか?
回答2件
あなたの回答
tips
プレビュー