これが最初からの私の問題です...私は本当に誰かの助けが必要です...
私は自分のビジネスのためにイベント予約システムを作成する必要がありました。スプレッドシートに予約を入力するためのGoogleフォームを作成し、このデータをアカウントの関連するGoogleカレンダーに自動的に転送するためのコードが必要でした。私はこのコードを作成する誰かを見つけ、彼らがコードを作成できるようにグーグルフォーム/スプレッドシートを彼らと共有しました。
以下は、それらが作成したコードです。
フォームに情報を入力して送信すると、すべて正しい日付に表示されます。コードを見ると、開始に基づいて終日イベントが作成されます(いずれかの列に終日入力した場合)。時間(startdt)。
私の問題は、私の正しいエントリが、送信したときにカレンダーの1日早く表示され始めることです。これは、午後11時以降に送信したすべてのエントリで発生しました。問題が何であるかはわかりませんが、タイムゾーンに関係している可能性があると思います。私は英国に拠点を置いており、GMT + 0000で、スクリプトを作成した人はインドに拠点を置いています。スクリプトのタイムゾーンを変更しても、トリガーは自動的に変更されないことを読みました(元のタイムゾーンのままです)。
スプレッドシートのすべてが正しいのに、特定の時間後にエントリを送信すると、これが私のエントリがカレンダーの1日早く突然表示される原因になっている可能性がありますか?
コードを編集して、startdtではなく終了時間(enddt)に基づいて終日イベントを作成することで一時的に問題を修正できますが、これは短時間しか機能しません。午前11時までは、コードを元に戻す必要がありますか?そのすべては非常に紛らわしいです。
タイムゾーンの問題が発生した場合は、トリガーのタイムゾーンを確認する方法を教えてください。間違っている場合は、スクリプトでトリガーのタイムゾーンを編集する方法を教えてください。間違った日付に表示されることを混乱させることなく、ビジネスの予約を行うためにこれが必要なため、私は本当に行き詰まっています。
私のカレンダー、スプレッドシート、フォーム、スクリプトはすべてGMT+0000です
以下のスクリプトをコピーして貼り付け、編集できる終日のイベントセクションを太字にして、問題が解決するまで一時的に問題を並べ替えますか?
var ss = SpreadsheetApp.getActive();
/*function onEdit(e) {
var doc = SpreadsheetApp.getActiveSheet();
setRowColors();
Browser.msgBox("Trigger it");
}*/
function onEdit(event){
var doc = SpreadsheetApp.getActiveSheet();
var r = event.source.getActiveRange();
var currentCol = r.getColumn();
// Browser.msgBox("currentCol:- "+currentCol);
if(currentCol!= 10 && currentCol!= 11 && currentCol!= 12)
{
var currentRow = r.getRow();
// Browser.msgBox("currentRow:- "+currentRow);
var v = parseInt(currentRow);
var dataRange = doc.getRange(v, 10, 1,3);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var tom = row[0].toLowerCase();
// Browser.msgBox(tom);
var steven = row[1].toLowerCase();
var lucy = row[2].toLowerCase();
if(tom=="added" )
doc.getRange(v, 10, 1, 1).setValue("ADD");
if(steven=="added" )
doc.getRange(v, 11, 1, 1).setValue("ADD");
if(lucy=="added" )
doc.getRange(v, 12, 1, 1).setValue("ADD");
}
}
// calscript();
//Browser.msgBox("Done:-");
}
function calscript() {
//Browser.msgBox("start calscript:-");
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, sheet.getMaxRows(),35);
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var title = row[32].toString();
// Browser.msgBox(title);// First column
var desc = row[34]; // Second column
var tstart = row[2];
// Browser.msgBox(tstart);// First column
var tstop = row[3];
// Browser.msgBox(tstop);// First column
var loc = row[31];
var tom=row[9].toLowerCase();
var steven=row[10].toLowerCase();
var lucy=row[11].toLowerCase();
var day=row[4].toLowerCase();
if(tom=="add")
{
AddtoTom(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,10).setValue('Added');
}
if(steven=="add")
{
AddtoSteven(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,11).setValue('Added');
}
if(lucy=="add")
{
AddtoLucy(day,title, tstart, tstop, {description:desc,location:loc});
dataRange.getCell(parseInt(i)+1,12).setValue('Added');
}
//cal.createEvent(title, new Date("March 3, 2010 08:00:00"), new Date("March 3, 2010 09:00:00"), {description:desc,location:loc});
// cal.createEvent(title, tstart, tstop, {description:desc,location:loc});
}
}
function AddtoTom(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Tom");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt,** desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function AddtoSteven(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Steven");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt**, desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function AddtoLucy(day,title,startdt,enddt,desc)
{
var cal = CalendarApp.openByName("Lucy");
if(day=="all day")
**cal.createAllDayEvent(title, **startdt**, desc)**
else
cal.createEvent(title, startdt, enddt, desc);
}
function onOpen() {
// Browser.msgBox('start');// First column
var menuEntries = [];
menuEntries.push({name: "Add To Calendar", functionName: "calscript"});
ss.addMenu("Main Menu", menuEntries);
// Browser.msgBox('end');// First column
}
function onInstall() {
onOpen();
}
function onFormSubmit()
{
}
function configure() {
// Browser.msgBox('trigger');// First column
ScriptApp.newTrigger("calscript").timeBased().everyMinutes(1).create();
//Browser.msgBox('trigger ends');// First column
}