Google Apps 脚本缺少结束时间,但事实并非如此
Google Apps Script Missing End Time, but it's not
我想简单地更改事件的日期。我希望它是一整天的活动,但无法弄清楚,所以我使用了 12:00 AM - 11:59 PM。每天一次,我希望 Google Apps 脚本在 运行 清晨并将活动移至第二天。
我得到了正确的信息,但我认为它的格式有误。我收到一个错误,指出缺少结束时间,但事实并非如此。它只是没有以正确的格式显示。
这分明就是个考验。一旦我让一个事件正常工作,我就可以使用我的完整脚本。我已将个人数据更改为 "xxxxxx"...
我有什么错误的想法吗?谢谢!
/**
* Blocks current day, opens next 2 calendar days, blocks 3rd calendar day out for Book Like A Boss sync.
*/
function createEvent33() {
var calendarId = 'xxxxxxx.com_xxxxxxxxxx@group.calendar.google.com';
/**
* Lists the next 10 upcoming events in the user's default calendar.
*/
var now = new Date();
var events = Calendar.Events.list(calendarId, {
timeMin: now.toISOString(),
singleEvents: true,
orderBy: 'startTime',
maxResults: 10
});
if (events.items && events.items.length > 0) {
var todayEvent = events.items[0];
var todayDateStart = new Date();
todayDateStart.setDate(todayDateStart.getDate() + 1);
todayDateStart.setHours(0);
todayDateStart.setMinutes(0);
todayDateStart.setSeconds(0);
todayDateStart.setMilliseconds(0);
var todayDateEnd = new Date();
todayDateEnd.setDate(todayDateEnd.getDate() + 1);
todayDateEnd.setHours(23);
todayDateEnd.setMinutes(0);
todayDateEnd.setSeconds(0);
todayDateEnd.setMilliseconds(0);
todayEvent.start = todayDateStart.toISOString();
todayEvent.end = todayDateEnd.toISOString();
Logger.log(todayEvent);
todayEvent = Calendar.Events.update(
todayEvent,
calendarId,
todayEvent.id,
);
}}
日志:
[20-04-28 18:03:25:847 EDT] {
status=confirmed,
creator={email=xxx@xxxxxxxxxx.com},
id=xxxx,
iCalUID=xxxxxxxxxxx@google.com,
sequence=6.0,
updated=2020-04-28T13:25:13.710Z,
end=2020-04-30T03:00:00.000Z,
htmlLink=https://www.google.com/calendar/event?eid=xxxxxxxxxxxx,
summary=Block Today,
created=2020-04-27T00:26:11.000Z,
kind=calendar#event,
reminders={useDefault=true},
organizer={self=true,
email=xxxxxxx.com_xxxxxxxxxxxxx@group.calendar.google.com,
displayName=Blocking Script},
etag="xxxxxxxxxxx",
start=2020-04-29T04:00:00.000Z
}
[20-04-28 18:03:25:977 EDT] GoogleJsonResponseException: API call to calendar.events.update failed with error: Missing end time.
at createEvent33(DateTest:42:36)
根据 doc,end
和 start
应该是嵌套对象而不是日期。
{
end:{
date: new Date()/*formatted yyyy-mm-dd*/
}
}
我想简单地更改事件的日期。我希望它是一整天的活动,但无法弄清楚,所以我使用了 12:00 AM - 11:59 PM。每天一次,我希望 Google Apps 脚本在 运行 清晨并将活动移至第二天。
我得到了正确的信息,但我认为它的格式有误。我收到一个错误,指出缺少结束时间,但事实并非如此。它只是没有以正确的格式显示。
这分明就是个考验。一旦我让一个事件正常工作,我就可以使用我的完整脚本。我已将个人数据更改为 "xxxxxx"...
我有什么错误的想法吗?谢谢!
/**
* Blocks current day, opens next 2 calendar days, blocks 3rd calendar day out for Book Like A Boss sync.
*/
function createEvent33() {
var calendarId = 'xxxxxxx.com_xxxxxxxxxx@group.calendar.google.com';
/**
* Lists the next 10 upcoming events in the user's default calendar.
*/
var now = new Date();
var events = Calendar.Events.list(calendarId, {
timeMin: now.toISOString(),
singleEvents: true,
orderBy: 'startTime',
maxResults: 10
});
if (events.items && events.items.length > 0) {
var todayEvent = events.items[0];
var todayDateStart = new Date();
todayDateStart.setDate(todayDateStart.getDate() + 1);
todayDateStart.setHours(0);
todayDateStart.setMinutes(0);
todayDateStart.setSeconds(0);
todayDateStart.setMilliseconds(0);
var todayDateEnd = new Date();
todayDateEnd.setDate(todayDateEnd.getDate() + 1);
todayDateEnd.setHours(23);
todayDateEnd.setMinutes(0);
todayDateEnd.setSeconds(0);
todayDateEnd.setMilliseconds(0);
todayEvent.start = todayDateStart.toISOString();
todayEvent.end = todayDateEnd.toISOString();
Logger.log(todayEvent);
todayEvent = Calendar.Events.update(
todayEvent,
calendarId,
todayEvent.id,
);
}}
日志:
[20-04-28 18:03:25:847 EDT] {
status=confirmed,
creator={email=xxx@xxxxxxxxxx.com},
id=xxxx,
iCalUID=xxxxxxxxxxx@google.com,
sequence=6.0,
updated=2020-04-28T13:25:13.710Z,
end=2020-04-30T03:00:00.000Z,
htmlLink=https://www.google.com/calendar/event?eid=xxxxxxxxxxxx,
summary=Block Today,
created=2020-04-27T00:26:11.000Z,
kind=calendar#event,
reminders={useDefault=true},
organizer={self=true,
email=xxxxxxx.com_xxxxxxxxxxxxx@group.calendar.google.com,
displayName=Blocking Script},
etag="xxxxxxxxxxx",
start=2020-04-29T04:00:00.000Z
}
[20-04-28 18:03:25:977 EDT] GoogleJsonResponseException: API call to calendar.events.update failed with error: Missing end time.
at createEvent33(DateTest:42:36)
根据 doc,end
和 start
应该是嵌套对象而不是日期。
{
end:{
date: new Date()/*formatted yyyy-mm-dd*/
}
}