社内ツールとして、googleフォームに入力するとスケジュール登録できるようにしています。
正確には、googleフォーム→スプレッドシート→googleカレンダーという流れで、スプレッドシートからgoogleカレンダーに登録する部分をgasで記述し、フォーム送信時にトリガーを設定しています。
動作確認はできているのですが、フォーム送信してもカレンダーに反映されないケースが散見されます。
・スプレッドシートには反映されていることから、フォーム送信は間違いなくできていること
・一度失敗しても、同じ内容で送信し直すと登録されたりすること
以上の状況から、
1,通信環境の問題
2,コードに問題
のどちらかかと思っています。1の方が可能性は高いと思っていて、鉄筋コンクリート造の建物のため電波が届きにくく、社内wifiも場所によっては不安定です。
皆様に伺いたいのは、コードの内容に本当に問題がないかということと、その他の可能性がないかということです。
↓コード
1function createEvent() { 2 var calendar = CalendarApp.getCalendarById("ID"); 3 var spreadsheet = SpreadsheetApp.openById("ID"); 4 var scheduleSheet = spreadsheet.getSheetByName("予定作成"); 5 var lastRow = scheduleSheet.getLastRow(); 6 var title = scheduleSheet.getRange(lastRow,2).getValue(); 7 var startTime = scheduleSheet.getRange(lastRow,3).getValue(); 8 var endTime = scheduleSheet.getRange(lastRow,4); 9 var description = scheduleSheet.getRange(lastRow,6); 10 var options = {description: description.getValue()} 11 12 if(description.isBlank() && startTime < endTime.getValue()){ 13 calendar.createEvent(title, startTime, endTime.getValue()); 14 }else if(description.isBlank() && endTime.isBlank()){ 15 calendar.createAllDayEvent(title, new Date(startTime.getFullYear(),startTime.getMonth(),startTime.getDate(),0,0,0)); 16 }else if(endTime.isBlank()){ 17 calendar.createAllDayEvent(title, new Date(startTime.getFullYear(),startTime.getMonth(),startTime.getDate(),0,0,0), options); 18 }else{ 19 calendar.createEvent(title,startTime,endTime,options) 20} 21}
よろしくお願いいたします。
追記
·このスクリプトはフォームに記載しています
回答2件
あなたの回答
tips
プレビュー