Google 驱动电子表格和日历邀请客人

Google drive spreadsheet and calendar invite guest

好的,首先,我要做的是同时更新 Google sheet 和日历。因此,假设您的点差sheet 有更新,日历也会有更新。但是,这是我未能做到的所有事情。

  1. 如果日历有变化,点差不会有变化sheet
  2. 我找不到邀请客人加入日历的代码。到目前为止,我所知道的是我需要使用“attendee[]”,但我无法找到示例来向我展示它是如何完成的。我找到了一些 java 代码,但如果我没记错的话,它是不同的。

因此,这些将是价差的顺序sheet

日期标题开始时间结束时间位置描述来宾事件 ID

这是 google sheet 上的代码。

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Export Events",
    functionName : "exportEvents"
  }];
  sheet.addMenu("Calendar Actions ", entries);
};


function exportEvents() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var headerRows = 1;  
  var range = sheet.getDataRange();
  var data = range.getValues();
  var calId = "email"; // calenderID
  var cal = CalendarApp.getCalendarById(calId);
  for (i in data) {
    if (i < headerRows) continue; 
    var row = data[i];
    var date = new Date(row[0]); 
    var title = row[1];           
    var tstart = new Date(row[2]);
    tstart.setDate(date.getDate());
    tstart.setMonth(date.getMonth());
    tstart.setYear(date.getYear());
    tstart.setMinutes( tstart.getMinutes() + 6)
    var tstop = new Date(row[3]);
    tstop.setDate(date.getDate());
    tstop.setMonth(date.getMonth());
    tstop.setYear(date.getYear());
    tstop.setMinutes(tstop.getMinutes() + 6)
    var loc = row[4];
    var desc = row[5];
    var guest = row[6]
    var id = row[7];              
   
  
    
    try 
    {
      var event = cal.getEventSeriesById(id);
      event.deleteEventSeries();
      row[7] = '';    
    }
    catch (e) {
      
    }
    
    var newEvent = cal.createEvent(title, new Date(tstart), new Date(tstop), {description:desc,location:loc}).getId();
    row[7] = newEvent;  
    debugger;
    
   }

  range.setValues(data);
}

如果可能的话,我会对此提供一些指导,因为我被卡住了。

为此,如果您想为传播 sheet 中的每个新条目创建一个新事件,您可以使用 Calender class 并创建一个事件。

如果您想编辑已创建的活动并添加新客人,您可以使用 CalendarEvent class 并添加客人。

希望对您有所帮助!