0

Working with such code to extract google calendar to sheets (code has been implemented from other sources here:

function cal_to_gsht(){

  var ss = SpreadsheetApp.openById( ' id_gsheet ' ), // Id is set to file 'CAL-to-gsheets' in LPRMF dir
      sheet = ss.getActiveSheet(),
      cals = [' cal1 ', ' cal2 '], c, cal, calName,

 //??     cals = getAllCalendars(),

      today = new Date(),
      start = new Date( today ), end = new Date( 'Dec 31, 2019' ),
      events, i, details,
      eventslog = [], e,
      rows = [], range;

  for (c = 0; c < cals.length; c += 1) {

    cal = CalendarApp.getCalendarById(cals[c]);
    calName = cal.getTitle();
    events = cal.getEvents(start, end);

    // add the events of the current calendar to the array of all events
    eventslog = eventslog.concat(
      events.map(function(event) {
        return {
          time: new Date(event.getStartTime()).getTime(), // sort by this
          details: [
            calName, // calNAme-change calendar info position in array to adjust
            event.getTitle(),
            event.getDescription(),
            event.getLocation(),
            event.getStartTime(),
            event.getEndTime(),
            event.addGuest()
   //         event.getGuestList()
     //       event.getGuestByEmail(0)
          ]
        };
      })
    );
  }

  // sort array of event so date order can be either way by reversing a & b
  eventslog.sort(function(a, b) { return a.time - b.time; });

  rows = eventslog.map(function(entry) { return entry.details; });

  range = sheet.getRange(2, 1, rows.length, 7);  // no. of event.details ; increase if more event.get
  range.setValues(rows);
}

How to add to event. another record which will be Guest name and/or email.

please advise,

afterwhile ... tired to extract email by getEmail(), but no success:

function(event) {
       var guestList=event.getGuestList();
       var email1=guestList[0]; // how to get EMAIL out of it !
       var email2=guestList[1];
        return {
          time: new Date(event.getStartTime()).getTime(), 
          details: [
            calName,
            event.getTitle(),
            event.getDescription(),
            event.getLocation(),
            event.getStartTime(),
            event.getEndTime(),
            email1,
            email2

          ]
        };
      })

how getEmail() works?

yetson
  • 19
  • 4
  • Possible duplicates of [Google Apps script event EventGuest does not have .getEmail](https://stackoverflow.com/questions/31627675/google-apps-script-event-eventguest-does-not-have-getemail) for `getEmail`, and [Adding guests to calendar event](https://stackoverflow.com/questions/26376942/adding-guests-to-calendar-event) for `addGuest(email)`. – Tedinoz Dec 13 '18 at 11:24

1 Answers1

0

found solution, required little advanced approach to arrays, mapping them and joining again two:

function(event) {  
        return {
          time: new Date(event.getStartTime()).getTime(),
          details: [
            calName,
            event.getTitle(),
            event.getDescription(),
            event.getLocation(),
            event.getStartTime(),
            event.getEndTime(),
            event.getGuestList().map(function(x) {return x.getEmail();}).join(',')
          ]
        };
yetson
  • 19
  • 4