Как мне исправить этот скрипт в Google Apps Script, чтобы создать событие календаря с приглашениями? - PullRequest
0 голосов
/ 27 марта 2019

Я связываю скрипт с кнопкой «Отправить в календарь», которая будет на каждом листе моего листа. Я хочу, чтобы скрипт:

1) Создайте новое событие в календаре Google, основав его имя и даты на информации на листе, где расположена кнопка (разные данные на листе, все расположены по одним и тем же адресам ячеек).
2) Установите напоминание для всех участников за 6 недель до даты начала.
3) Пригласите / добавьте гостей (возможно, отправив событие в виде электронного письма на адрес, не являющийся адресом электронной почты? Я гибко отношусь к тому, как это выглядит, при условии, что я могу автоматически приглашать гостей.)
4) Установите colorId всех этих приглашений на «3» (лиловый) или любой другой цвет, кроме цвета события по умолчанию. (Это хорошо, но необязательно.)

Я собирал сценарий вместе с примерами Google и некоторыми ответами, которые нашел на этом сайте, но ни один из них не сделал то, что я хотел. Я также включил расширенные службы Google (https://developers.google.com/apps-script/guides/services/advanced), потому что я прочитал, что проблема может быть в разрешениях API Google, но прошло уже несколько часов с тех пор, как я его включил, и все еще не работает. Я не уверен, это имело значение.

Я думаю, это близко, но возвращает ошибку 404, и я не знаю, почему.

function createEvent() {
  var vSS = SpreadsheetApp.getActiveSpreadsheet();
  var vS = vSS.getActiveSheet(); 
  var vEventName = vS.getRange("M5").getValue();
  var start = vS.getRange("M6").getValue();
  var end = vS.getRange("H3").getValue();
var calendar = CalendarApp.getCalendarById(
 'example@gmail.com');
var event = calendar.createEvent; {vEventName;
 new Date(start);
 new Date(end);                             
 attendees: [
      {email: 'example@example.com'},
      {email: 'example@example.com'}
    ];
    colorId: 3
  };
  event = Calendar.Events.insert(event, calendar);
  Logger.log('Event ID: ' + event.id);
}

Это создает событие в моем календаре успешно, но не добавляет гостей, не создает напоминание и не меняет цвет. (Обнаружено, что здесь: Скрипт Google Apps - Создание событий календаря )

function createEvent() {
var vSS = SpreadsheetApp.getActiveSpreadsheet();
var vS = vSS.getActiveSheet();  
var vStartDate = vS.getRange("M5").getValue();
var vEndDate = vS.getRange("M6").getValue();  
var vEventName = vS.getRange("H3").getValue();
var calendar = CalendarApp.getCalendarById(
 'example@gmail.com');
var event =  calendar.createEvent(vEventName,
 new Date(vStartDate),
 new Date(vEndDate));
Logger.log('Event ID: ' + event.getId());
}

Любая помощь приветствуется, особенно если вы можете добавить некоторые "//" объяснения о том, как работают части кода. Я новичок в сценариях и пытаюсь учить себя. Спасибо за внимание!

1 Ответ

0 голосов
/ 27 марта 2019

Рассмотрим следующий код:

function createEvent() {
  var vSS = SpreadsheetApp.getActiveSpreadsheet();
  var vS = vSS.getActiveSheet(); 
  var vEventName = vS.getRange("M5").getValue();
  // M6 and H3 cells should contain valid dates
  var start = vS.getRange("M6").getValue();
  var end = vS.getRange("H3").getValue();
  var calendar = CalendarApp.getCalendarById('example@gmail.com');
  // Creating event with options (guests list)
  var event = calendar.createEvent(vEventName, start, end, {
    // a comma-separated list of email addresses that should be added as guests
    guests: 'guest1@gmail.com,guest2@mail.ru',
    sendInvites: true
  });
  // Set desired color to the created event
  event.setColor(CalendarApp.EventColor.MAUVE);

  Logger.log('Event ID: ' + event.id);
}

Мы использовали создание события с параметрами с последующей окраской события.Это работает для меня (электронные письма были изменены).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...