【问题标题】:Google apps script - extract numerous Google Calendars and fields to Google SheetsGoogle 应用程序脚本 - 将大量 Google 日历和字段提取到 Google 表格
【发布时间】:2022-08-11 01:03:55
【问题描述】:

我有以下 Google Sheets Apps 脚本来提取日历邀请到 Google Sheet,但是,我正在尝试进行一些调整,我正在努力寻找解决方案:

function getEvents() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(\"Sheet1\");

  var start_time = sheet.getRange(\"A2\").getValue();
  var end_time = sheet.getRange(\"B2\").getValue();
  var id_cal = sheet.getRange(\"P5\").getValue();

  var cal = CalendarApp.getCalendarById(id_cal);
    var events = cal.getEvents(new Date(start_time), new Date(end_time));

  for (var i = 0;i<events.length;i++){
    
    var title =  events[i].getTitle();
    var start_time =  events[i].getStartTime();
    var end_time =  events[i].getEndTime();
    var des =  events[i].getDescription();
    var vis = events[i].getVisibility();
    var guestlist = events[i].getGuestList();

    sheet.getRange(i+5,1).setValue(title);
    sheet.getRange(i+5,2).setValue(start_time);
    sheet.getRange(i+5,3).setValue(end_time);
    sheet.getRange(i+5,4).setValue(des);
    sheet.getRange(i+5,5).setValue(vis);
    sheet.getRange(i+5,6).setValue(guestlist);
  }

  Logger.log(\"Events have been added to the Spreadsheet\");
}

如何将此脚本修改为:

  • 从多个日历中提取我的电子邮件地址位于一系列单元格 (Z1:Z25) 中,而不仅仅是 1 个日历。我尝试更改范围,但它只从顶部单元格中提取日历。
  • 包括所有已接受/待定的与会者(包括组织者)。我试图添加 .getGuestList,但这会返回 \'EventGuest\'
  • 包括从中获取事件的日历

    标签: google-apps-script google-apps-script-api


    【解决方案1】:

    尝试这样的事情:

    function getEvents() {
      var ss = SpreadsheetApp.getActive();
      var sh = ss.getSheetByName("Sheet1");
      var start = sh.getRange("A2").getValue();
      var end = sh.getRange("B2").getValue();
      const ids = [];
      CalendarApp.getAllCalendars().forEach(c => ids.push(c.getId()));
      ids.forEach(id => {
        let cal = CalendarApp.getCalendarById(id);
        let events = cal.getEvents(new Date(start), new Date(end));
        for (var i = 0; i < events.length; i++) {
          var title = events[i].getTitle();
          var start = events[i].getStartTime();
          var end = events[i].getEndTime();
          var des = events[i].getDescription();
          var vis = events[i].getVisibility();
          var guestlist = events[i].getGuestList();
          let row = sh.getLastRow() + 1
          sh.getRange(sh.getLastRow() + 1, 1,1,5).setValues([[title,start,end,des,vis,guestlist]]);      
        }
      })  
      Logger.log("Events have been added to the Spreadsheet");
    }
    

    我将由您来添加其他项目,因为这不是获取免费脚本的场所。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 2023-03-24
      • 2018-06-04
      • 1970-01-01
      • 2022-10-13
      • 2020-12-20
      相关资源
      最近更新 更多