【问题标题】:How to auto transfer Google Calendar events id into spreadsheets?如何将 Google 日历活动 ID 自动传输到电子表格中?
【发布时间】:2019-11-25 16:27:26
【问题描述】:

我正在尝试使用电子表格创建“事件创建者”,但我想不通。

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

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

【问题讨论】:

    标签: google-apps-script google-sheets duplicates google-calendar-recurring-events


    【解决方案1】:

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

    希望这个脚本能帮助您开始您的项目。不要忘记将您的日历 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());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      相关资源
      最近更新 更多