Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用谷歌工作表控制谷歌日历_Google Apps Script - Fatal编程技术网

Google apps script 使用谷歌工作表控制谷歌日历

Google apps script 使用谷歌工作表控制谷歌日历,google-apps-script,Google Apps Script,我希望能够通过运行工作表中的代码来更新、删除工作表中的新事件,并将其添加到日历中。到目前为止,我可以添加新事件并防止上载重复的事件,但我需要工作表能够在日历上修改和/或删除工作表上更改/删除的事件 以下是我目前掌握的代码: function CreateEvent() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var calendarId = sheet.getRange("D2&qu

我希望能够通过运行工作表中的代码来更新、删除工作表中的新事件,并将其添加到日历中。到目前为止,我可以添加新事件并防止上载重复的事件,但我需要工作表能够在日历上修改和/或删除工作表上更改/删除的事件

以下是我目前掌握的代码:

function CreateEvent() 
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var calendarId = sheet.getRange("D2").getValue();

var eventCal = CalendarApp.getCalendarById ('CalendarID');

var lr = sheet.getLastRow();

var count = sheet.getRange("A9:E"+lr+"").getValues();

for (x=0; x<count.length; x++) {
          var shift = count[x];
      
      var summary = shift[0];
      var startTime = shift[1];
      var endTime = shift[2];
      var guests = shift[3];
      var location = shift[4]; 
  
      var event = {
          'location': location,
          'guests':guests +',',
          'sendInvites': 'True',
}
var events = eventCal.getEvents(startTime, endTime, {search: summary});
if (events.length == 0) {
  eventCal.createEvent(summary, startTime, endTime, event);
}
}
}
}
函数CreateEvent()
{
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var calendarId=sheet.getRange(“D2”).getValue();
var eventCal=CalendarApp.getCalendarById('CalendarID');
var lr=sheet.getLastRow();
var count=sheet.getRange(“A9:E”+lr+”).getValues();
对于(x=0;xTo)要更新已存在事件的详细信息,最好使用
  • 它允许您在应用程序脚本中使用日历API方法
  • 要使用高级日历服务,请打开
    Resources>Advanced Google services
  • 完成后,您可以按以下方式修改代码以修改现有事件:
函数CreateEvent()
{
var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var calendarId=sheet.getRange(“D2”).getValue();
var eventCal=CalendarApp.getCalendarById(calendarId);
var lr=sheet.getLastRow();
var count=sheet.getRange(“A9:E”+lr.getValues();

对于(x=0;x您希望更改哪种信息?时间?来宾?位置?您将如何告诉脚本您希望删除/修改事件?您是否有带有复选框的列来指示您希望修改/删除?或者这些请求是否包含在与创建事件的请求不同的工作表中?我有一个具有以下列将用作日历的源:任务、开始时间、结束时间、与会者、位置。如果我更改了工作表上的任何一列,我希望在运行脚本时更新日历。为了验证事件是否已存在,它需要具有一些不变的标识符。该标识符是什么在您的案例中是标识符吗?摘要?也是开始时间和结束时间?这将是摘要,在这里我使用了连接函数并创建了一个唯一的事件ID,该ID组合了任务、开始时间、结束时间和位置。这太好了,非常感谢。这段代码不允许我在向电子邮件发送电子邮件邀请时做一些事情ls列在工作表的“来宾”部分。另一个问题是它不会删除我在工作表中删除的日历上的事件。您将如何实现删除工作表中删除的事件?您可能希望对此进行登录。