私はほぼ2年間実行しているスクリプトを持っています。シートを日付で更新し、イベントが削除/作成されるか、新しいイベントが作成されます。GoogleカレンダーのイベントIDが作成されましたが、リストされたイベントが見つかりません - アプリケーションスクリプト/シート
これは私の経験ではなく、イベントのIDをシートセルに取り込み、気分転換しています。しかし、カレンダーに行くと何も表示されません。
新しい権限のように私が紛失しているものがありますか?エラーはスローされず、ログには何もありません。私はイベントIDを持っていますが、カレンダーに表示されないので何が表示されているかを確認する方法はわかりません。イベントIDをチェックしてその内容を確認する方法はありますか?
シート(私はパイプで区切られた)
件名|開始日|開始時間|終了日|終了時間|終日イベント|会議主催|説明|所在地|リマインダー日|リマインダー時間|ショータイムなど|イベントID |ステータス 調査編集:HC配信の科学| 08/07/2017 | 12:00:00 AM | 8/7/2017 | 12:00:00 PM | TRUE | Seamore Butz ||| 8/7/2017 | 9:00:00 AM |私は最後に...これらの小さな問題の一つは、よりログインして、無効な日付応答をグーグル後に発見された問題を発見したsg5a7jsa[email protected]|y
function pushToCalendar()
{
//spreadsheet variables
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
/*
getRange (row,column,optNumRows,optNumColumns)
row --- int --- top row of the range
column --- int--- leftmost column of the range
optNumRows --- int --- number of rows in the range.
optNumColumns --- int --- number of columns in the range
*/
var range = sheet.getRange(2,1,lastRow,13);
var values = range.getValues();
//calendar variables
// [email protected]
var calendar = CalendarApp.getCalendarById('[email protected]')
var numValues = 0;
for (var i = 0; i < values.length; i++)
{
//check to see if name and type are filled out - date is left off because length is "undefined"
if (values[i][0].length > 0)
{
//check if it's been entered before
if (values[i][13] == undefined)
{
//create event https://developers.google.com/apps-script/class_calendarapp#createEvent
var newEventTitle = values[i][0];
Logger.log(newEventTitle);
var dateStart = values[i][1];
var timeStart = values[i][2];
var dateFinish = values[i][3];
var timeFinish = values[i][4];
var startDateTime = new Date(dateStart+" "+timeStart);
startDateTime.setDate(startDateTime.getDate());
startDateTime.setMonth(startDateTime.getMonth());
startDateTime.setYear(startDateTime.getYear());
startDateTime.setTime(startDateTime.getTime());
var stopDateTime = new Date(dateFinish+" "+timeFinish);
stopDateTime.setDate(stopDateTime.getDate());
stopDateTime.setMonth(stopDateTime.getMonth());
stopDateTime.setYear(stopDateTime.getYear());
stopDateTime.setTime(stopDateTime.getTime());
var description = (values[i][7] == '' ? 'Test Description '+i : values[i][7]);
var location = (values[i][8] == '' ? 'Test Location '+i : values[i][8]);
Logger.log(description);
Logger.log(location);
//var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]);
var newEvent = calendar.createEvent(newEventTitle, startDateTime, stopDateTime, {description:description,location:location});
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(i+2,14).setValue('y');
sheet.getRange(i+2,13).setValue(newEventId);
// in case of larger sheets we need to sleep the process
Utilities.sleep(1000);
}
else if (values[i][14] == 'u')
{
// can update event so need to delete and create again
// delete event
var event = calendar.getEventSeriesById(values[i][9]);
event.deleteEventSeries();
//create event
var newEventTitle = values[i][0];
//create event https://developers.google.com/apps-script/class_calendarapp#createEvent
var newEventTitle = values[i][0];
var dateStart = values[i][1];
var timeStart = values[i][2];
var dateFinish = values[i][3];
var timeFinish = values[i][4];
var startDateTime = new Date(dateStart+" "+timeStart);
startDateTime.setDate(startDateTime.getDate());
startDateTime.setMonth(startDateTime.getMonth());
startDateTime.setYear(startDateTime.getYear());
startDateTime.setTime(startDateTime.getTime());
var stopDateTime = new Date(dateFinish+" "+timeFinish);
stopDateTime.setDate(stopDateTime.getDate());
stopDateTime.setMonth(stopDateTime.getMonth());
stopDateTime.setYear(stopDateTime.getYear());
stopDateTime.setTime(stopDateTime.getTime());
var description = (values[i][7] == undefined ? 'Test Description '+i : values[i][7]);
var location = (values[i][8] == undefined ? 'Test Location '+i : values[i][8]);
//var newEvent = calendar.createAllDayEvent(newEventTitle, values[i][1]);
var newEvent = calendar.createEvent(newEventTitle, startDateTime, stopDateTime, {description:description,location:location});
//get ID
var newEventId = newEvent.getId();
//mark as entered, enter ID
sheet.getRange(i+2,14).setValue('y');
sheet.getRange(i+2,13).setValue(newEventId);
// in case of larger sheets we need to sleep the process
Utilities.sleep(1000);
}
else
{
Logger.log('I am groot');
sheet.getRange(i+2,14).setValue('y');
}
}
numValues++;
}
}
function onOpen()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Grades & Evals", functionName: "pushToCalendar"});
sheet.addMenu("Sync to Academic Master", menuEntries);
}
を変更するために必要な
ライン16でこの
/作成するコードの行は、イベントを削除する私たちを見ます。そして、入力値のサンプルを与えてください。問題はコードではない可能性があります。日付の形式は異なる場合があります。日付が間違っている可能性があります。イベントは作成されている可能性がありますが、1899年に作成されたものなどです。 –
私はちょっとスタックに新しいので、コードを追加することに問題があったことについて申し訳ありません。ここに商品があります。 – user3015057
あなたのコードに 'Logger.log()'ステートメントがあります。だから、 'Logger.log()'の使い方を知っていると仮定しています。開始日を取得するコード行は 'var dateStart = values [i] [1];'であり、その下に3行あります。 'Logger.log()'ステートメントを追加して、値が何であるかを正確に判断してください。変数の値が何であるかはわかりません。 –