0

我正在尝试使用电子表格创建“事件创建者”,但我无法弄清楚。

好的,我用工作表创建了一些事件(如 5 或 6),但我的问题是当我想更新其中一个事件的一些信息并导出它们时 - 它们重复。所以就像我看到我需要使用事件 id 但我不知道如何。我试过这个 - 我使用 CalendarApp 来调用事件 id 但它返回 null?!

我希望我的其中一列自动填充我日历中的所有 eventID,以及当我需要更新或创建新的以防止重复时。有人可以为此提供一个想法吗?

4

1 回答 1

0

将明年事件从日历复制到对话框和电子表格

希望这个脚本能帮助您开始您的项目。不要忘记将您的日历 ID 添加到第 4 行。

function getCalendarEventsForNextYear() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var cal=CalendarApp.getCalendarById("calendar id");//change calendar id
  var startTime=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1);
  var endTime=new Date(new Date().getFullYear()+1,new Date().getMonth(),new Date().getDate());
  var events=cal.getEvents(startTime, endTime);
  var rA=[["ID","Title","Start Date","End Date","Description"]];
  var html="";
  for(var i=0;i<events.length;i++) {
    html+=Utilities.formatString('ID: %s<br />Title: <strong>%s</strong><br />Start Date: <strong>%s</strong><br />End Date: <strong>%s</strong><br />Description:<strong>%s</strong><br /><hr width="30%" align="left" />',events[i].getId(),events[i].getTitle(),Utilities.formatDate(new Date(events[i].getStartTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),Utilities.formatDate(new Date(events[i].getEndTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),events[i].getDescription());   
    rA.push([events[i].getId(),events[i].getTitle(),Utilities.formatDate(new Date(events[i].getStartTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),Utilities.formatDate(new Date(events[i].getEndTime()),Session.getScriptTimeZone(), "E MMM dd, yyyy"),events[i].getDescription()]);
  }
  html+='<br /><input type="button" value="Close" onClick="google.script.host.close();" />';
  var userInterface=HtmlService.createHtmlOutput(html).setWidth(1000);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, "Events for Next Year");
  sh.clear();
  sh.getRange(1,1,rA.length,rA[0].length).setValues(rA);
  sh.getRange(1,1,1,sh.getLastColumn()).setFontWeight("bold");
  sh.autoResizeColumns(1, sh.getLastColumn());
}
于 2019-11-25T18:28:57.030 回答