Обновление календарного события с вложениями в скрипте Google - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь найти следующее предстоящее событие в моем календаре по сводке / названию события под названием «производственное совещание».

Я хочу прикрепить к этому событию файл с моего диска Google.

Пока мне удалось найти событие и найти первое - как я хочу. Оттуда все немного грязнее ... Мне удалось создать новое событие из деталей предыдущего найденного события. Но мне не удалось прикрепить файл к событию ... и это не совсем то, что я хочу.

Так что, если кто-нибудь может указать мне в правильном направлении. Чтобы я мог обновить найденное событие с вложением.

function calUpdate() {
//Find produktion meeting event within a date range
var startSearch = new Date(new Date().setDate(new Date().getDate()+4));
var endSearch = new Date(new Date().setDate(new Date().getDate()+9));

var prodMeeting = CalendarApp.getCalendarById("****@****.com");
var prodEvent = prodMeeting.getEvents(startSearch, endSearch,{search:"production meeting"});

Logger.log(startSearch+ " // "+endSearch+" // "+ prodEvent+" // "+prodEvent.length);

var eventId = prodEvent[0].getId();

var event = prodMeeting.getEventById(eventId);

//Logger.log(eventId);

var eventStart = event.getStartTime();
var eventEnd = event.getEndTime();

//Logger.log("EventTime: "+eventStart+" // "+eventEnd);

var calendarEvent = {
    summary: 'production meeting',
    description: 'Test',
    location: 'Office',
    start: {
      dateTime: eventStart.toISOString()
    },
    end: {
      dateTime: eventEnd.toISOString()
    },
    attachments: [{
      'fileId': '****docId****',
      'title': "Test"
    }],
//    attendees: [{
//      email: 'guest2@guest.com'
//    }, {
//      email: 'guest2@guest.com'
//    }]
  };

calendarEvent = Calendar.Events.insert(calendarEvent, "****@****.com");


}

1 Ответ

0 голосов
/ 17 октября 2019

Вы можете обновить свой календарь, используя Calendar.Events.update () или Calendar.Events.Patch () . Разница между этими двумя заключается в том, что при обновлении все данные, указанные в вашем вызове, будут установлены на ваше событие (а остальные будут сброшены), тогда как при использовании Patch() изменяются только те данные, которые вы укажете (исвойства остались как были). Вы можете увидеть пример ниже:

function calUpdate() {
  var startSearch = new Date(new Date().setDate(new Date().getDate()+4));
  var endSearch = new Date(new Date().setDate(new Date().getDate()+9));
  var calendar = CalendarApp.getCalendarById('<YOUR_CALENDAR_ID>');
  var foundEvents = calendar.getEvents(startSearch, endSearch,{search:"production meeting"});
  var event = foundEvents[0];

  var patch = {
    attachments: [{
      'fileUrl': '<YOUR_FILE_URL>',
      'title': 'Test'
    }]
  }

  var eventId = event.getId().split("@google.com")[0];
  Calendar.Events.patch(patch, 'primary', eventId, {"supportsAttachments": true});
}

Помните, что в настоящее время поддерживается только прикрепление файлов диска.

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