Я следовал здесь ответу, который был действительно полезен:
Как отправить стандартное электронное приглашение при вызове addGuest на CalendarEvent?
Однако, когда я создаю событие в Apps Script, у него нет свойства участника, к которому можно добавить адрес электронной почты.
Если я добавляю человека в приглашение вручную, а затем запускаю код, он выполняется успешно, потому что там теперь это свойство участника для обновления.
Код для создания события:
function createCalendarEntry(programmeCalendar, eventName, eventStartDateTime, eventEndDateTime) {
var programmeCalendarID = CalendarApp.getCalendarById(programmeCalendar);
var event = programmeCalendarID.createEvent(eventName,
new Date(eventStartDateTime),
new Date(eventEndDateTime),
{sendInvites:true});
console.log('Event ID: ' + event.getId());
//Stop guests inviting other people
event.setGuestsCanInviteOthers(false);
var eventID = event.getId();
return eventID;
}
Код для добавления нового гостя:
// Invite the user to the given event using the Advanced Calendar API
var trimmedEventID = eventID.toString().replace('@google.com', '');
var programmeCalendarID = 'my-calendar@example.com';
var advancedEvent = Calendar.Events.get(programmeCalendarID, trimmedEventID);
console.log('Advanced Event:' + advancedEvent);
if (typeof advancedEvent.attendees === 'undefined') {
console.log('Advanced Event Attendees: is undefined');
// how can I add the attendee property here?
} else {
var attendees = advancedEvent.attendees;
console.log('Advanced Event Attendees: is defined' + attendees);
attendees.push({email: guestEmailAddress});
var resource = { attendees: attendees };
}
var args = { sendUpdates: "all" };
// Add the guest to the invite while also sending an invite email
var eventObjectForDebugging = Calendar.Events.patch(resource, programmeCalendarID, trimmedEventID, args);
console.log('Event object for debugging:' + eventObjectForDebugging);