Скрипт Google Apps отсутствует время окончания, но это не так - PullRequest
2 голосов
/ 29 апреля 2020

Я пытаюсь просто изменить дату события. Я бы хотел, чтобы это было мероприятие на весь день, но не смог понять, поэтому я использовал 12:00 - 23:59. Раз в день я хочу, чтобы Google Apps Script запускался рано утром и переносил событие на следующий день.

Я получаю правильную информацию, но думаю, что она отформатирована неправильно. Я получаю сообщение об ошибке, что время окончания отсутствует, за исключением того, что это не так. Он просто не отображается в нужном формате.

Это явно тест. После того, как одно событие работает правильно, я могу использовать свой полный сценарий. Я изменил личные данные на "xxxxxx" ...

Есть идеи, где я ошибся? Спасибо!

Missing End Time

/**
 * 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)

1 Ответ

1 голос
/ 29 апреля 2020

Согласно do c, end и start должны быть вложенными объектами, а не датами.

{
  end:{
    date: new Date()/*formatted yyyy-mm-dd*/
  }
}
...