Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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_Google Sheets - Fatal编程技术网

Google apps script 通过邀请和编辑活动将工作表谷歌到日历

Google apps script 通过邀请和编辑活动将工作表谷歌到日历,google-apps-script,google-sheets,Google Apps Script,Google Sheets,场景:我希望几个用户为他们通过GoogleMeet举办的讨论活动在日历中添加标题、日期、描述等。这一切都应该由谷歌表单上的触发器来处理。如果在google工作表中编辑事件,则日历中的事件也应编辑。 我找到了一些代码,对其进行了轻微的编辑,它在某种程度上起了作用 工作原理:创建活动并邀请客人,因此创建google meet(只要邀请1位客人)。编辑事件也有效 什么不起作用:如果两个事件的时间冲突,例如,事件一从14:00到15:00运行,事件二从14:30到15:30运行,则只有事件二被添加到日历

场景:我希望几个用户为他们通过GoogleMeet举办的讨论活动在日历中添加标题、日期、描述等。这一切都应该由谷歌表单上的触发器来处理。如果在google工作表中编辑事件,则日历中的事件也应编辑。 我找到了一些代码,对其进行了轻微的编辑,它在某种程度上起了作用

工作原理:创建活动并邀请客人,因此创建google meet(只要邀请1位客人)。编辑事件也有效

什么不起作用:如果两个事件的时间冲突,例如,事件一从14:00到15:00运行,事件二从14:30到15:30运行,则只有事件二被添加到日历中

有人能帮助我们添加重叠事件吗

function create_calendar() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var index = 2;
var lastRow = sheet.getLastRow();

for (;index <= lastRow; index++){
  
  var taskTitle = sheet.getRange(index, 1, 1, 1).getValue();
  var taskDesc = sheet.getRange(index, 2, 1, 1).getValue();
  var location = sheet.getRange(index, 3, 1, 1).getValue();
  var startDate = sheet.getRange(index, 4, 1, 1).getValue();
  var endDate = sheet.getRange(index, 5, 1, 1).getValue();
  var guests = sheet.getRange(index, 6, 1, 1).getValue();
  
  var type = sheet.getRange(index, 7, 1, 1).getValue();
  var onCalendar = sheet.getRange(index, 8, 1, 1).getValue();
  var status = sheet.getRange(index, 9, 1, 1).getValue();
  
  var sendInvites = true;
  if (onCalendar == 'Yes' && startDate && endDate && status != 'Done')
  {
    var events =  CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").getEvents(startDate, endDate);
    delete_events(events);
    var calendar = CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").createEvent(taskTitle, 
                                                                                      startDate, 
                                                                                      endDate,
                                                                                      {description: taskDesc, 
                                                                                        location: location, 
                                                                                        guests: guests, 
                                                                                        sendInvites: sendInvites}
                                                                                      );

  }
    
}// End of for Loop
  
}// End of CalendarTest Function


函数创建日历(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var指数=2;
var lastRow=sheet.getLastRow();
对于(;索引请尝试以下方法:

const ss=SpreadsheetApp.getActive();
const sheet=ss.getSheetByName('Events');
const startRow=1;
let vA=sheet.getRange(startRow,1,sheet.getLastRow()-startRow+1,9).getValues();
vA.forEach(function(r,i){
  var taskTitle = r[0];
  var taskDesc =r[1]; 
  var location =r[2];
  var startDate =r[3];
  var endDate =r[4];
  var guests =r[5];
  var type =r[6];
  var onCalendar =r[7];
  var status =r[8];
  var sendInvites = true;
  if (onCalendar=='Yes' && startDate && endDate && status != 'Done')
  {
    CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").createEvent(taskTitle, startDate, endDate,{description:taskDesc,location:location,guests:guests,sendInvites:sendInvites});
  }
});

参考:

函数
ev.deleteEvent()在哪里
defined?进一步考虑一下,我不认为我需要删除功能,因为任何已取消的事件都将被编辑为已取消的事件。我将重新表述我的原始问题,只询问如何使其能够添加重叠事件。我认为这一行是创建重叠事件的问题
delete\events(事件);
谢谢Cooper,我现在得到一个异常:参数(字符串,(类),(类))CalendarApp.Calendar.createEvent的方法签名不匹配。但是我知道这是因为代码需要工作表中未提供的内容。这给了我一些需要调查和处理的内容,谢谢您缺少stateDate