わかりましたので、Google Apps Script の深いところに少し飛び込みました。職場では、決まった時間の週単位のシフトがあります。シフトには、アーリー (午前 7 時~午後 3 時 30 分)、ミドル (午前 8 時 30 分~午後 5 時)、レイト (午前 10 時 30 分~午後 7 時) の 3 つのタイプがあります。
私がやろうとしているのは、日付ピッカーと 3 つのボタン (シフトごとに 1 つ) を備えた UI を生成することです。アイデアは、日付ピッカーで月曜日をクリックしてからシフト ボタンをクリックすると、5 つのシフト (曜日ごとに 1 つ) が生成され、イベントとして Google カレンダーに追加されます。
イベントを生成する関数を取得できますが、日付ピッカーからの入力を各関数の日付に結び付けることができません。イベントの日時を分割する方法はありますか? 理想的には、時間はスクリプトに「ハードコード」されているため、変更できませんが、日付はユーザーが選択できます。
これがすべて理にかなっていることを願っています。以下のコード:
// loads the UI
function doGet() {
var app = UiApp.createApplication();
var label1 = app.createLabel("To use this application, select a Monday and then hit the Early Middle or Late button");
app.add(label1);
var label2 = app.createLabel("5 events will be created from the start date across five days");
app.add(label2);
var picker = app.createDatePicker().setId("picker");
var handler = app.createServerHandler("change");
app.add(picker);
var button1 = app.createButton("Early").setId("button1");
button1.addClickHandler(app.createServerHandler("early"));
app.add(button1);
var button2 = app.createButton("Middle").setId("button2");
button2.addClickHandler(app.createServerHandler("middle"));
app.add(button2);
var button3 = app.createButton("Late").setId("button3");
button3.addClickHandler(app.createServerHandler("late"));
app.add(button3);
return app;
};
//Handles date picker changes
function change(eventInfo) {
var app = UiApp.getActiveApplication();
app.add(app.createLabel("The value of the date picker changed to " + eventInfo.parameter.picker));
return app;
};
//Generates the events
function early(){
var cal = CalendarApp.getDefaultCalendar();
var title = "Computacenter";
var start = new Date("July 21, 2012 07:00:00");
var end = new Date("July 21, 2012 15:30:00");
var loc = "Unspecified";
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
var event = cal.createEventSeries(title, start, end, recurrence, {location : loc});
};
function middle(){
var cal = CalendarApp.getDefaultCalendar();
var title = "Computacenter";
var start = new Date("July 21, 2012 08:30:00");
var end = new Date("July 21, 2012 17:00:00");
var loc = "Unspecified";
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
var event = cal.createEventSeries(title, start, end, recurrence, {location : loc});
};
function late(){
var cal = CalendarApp.getDefaultCalendar();
var title = "Computacenter";
var start = new Date("July 21, 2012 10:30:00");
var end = new Date("July 21, 2012 19:00:00");
var loc = "Unspecified";
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
var event = cal.createEventSeries(title, start, end, recurrence, {location : loc});
};