【问题标题】:Adding multiple calendar IDs and attendee emails to events向活动添加多个日历 ID 和与会者电子邮件
【发布时间】:2020-03-08 10:17:16
【问题描述】:

我有一个脚本,可以根据我们拥有的谷歌工作表来自动化我们的日历。它确实可以将事件添加到特定日历,但我想将单个日历添加到脚本中,并自动将 google 组添加为事件的来宾,以便通知像正​​常的 google 日历事件一样发出。

   function scheduleShifts() {
/**
  Task 1) Open the Event Calendar.
**/
var spreadsheet = SpreadsheetApp.getActive();
var calendarID = spreadsheet.getRange("C2").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);

/**
  Task 2) Pull each shift information into the code, in
  a form that the code can understand. 
**/
var signups = spreadsheet.getRange("A5:C100").getValues();

/**
    [
      [11/9/2019 0:00:00,11/10/2019 0:00:00,Werdah On-Call],
      [11/10/2019 0:00:00,11/11/2019 0:00:00,Lucas On-Call],
      [11/16/2019 0:00:00,11/17/2019 0:00:00,Aiden On-Call],
      [11/17/2019 0:00:00,11/18/2019 0:00:00,Werdah On-Call],
      [11/23/2019 0:00:00,11/24/2019 0:00:00,Mayra On-Call],
      [11/24/2019 0:00:00,11/25/2019 0:00:00,Kyle On-Call],
      [11/30/2019 0:00:00,12/1/2019 0:00:00,Cavan On-Call],
      [12/1/2019 0:00:00,12/2/2019 0:00:00,Adam On-Call],
      [12/7/2019 0:00:00,12/8/2019 0:00:00,Hillary On-Call],
      [12/8/2019 0:00:00,12/9/2019 0:00:00,Melissa Pino On-Call],
      [12/14/2019 0:00:00,12/15/2019 0:00:00,Kristi On-Call],
      [12/15/2019 0:00:00,12/16/2019 0:00:00,Kevin On-Call],
      [12/21/2019 0:00:00,12/22/2019 0:00:00,Alice On-Call],
      [12/22/2019 0:00:00,12/23/2019 0:00:00,Carro On-Call],
      [12/28/2019 0:00:00,12/29/2019 0:00:00,Sruthi On-Call],
      [12/29/2019 0:00:00,12/30/2019 0:00:00,Tara On-Call]
    ]  
**/

/**
  Task 3) Do the work!
**/
for (x=0; x<signups.length; x++) {

var shift = signups[x];

var startTime = shift[0];
var endTime = shift[1];
var oncall = shift[2];

eventCal.createEvent(oncall, startTime, endTime);
  }
}

/**
  Task 4) Make it easy to ue.
**/
function onOpen(){
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Sync to Calendar')
      .addItem('Schedule shifts now','scheduleShifts')
      .addToUi();
}

【问题讨论】:

  • 你能举一个非常具体的例子来说明你想要做什么吗?我们可以用一个小的测试数据集切实解决什么问题?我不确定您是否要求在未经他人许可的情况下编辑他人的日历?
  • 我想要做的是更新谷歌表格某些列中的单元格,并将日历邀请推送给这些人,以通知人们待命的日子。目前,我们只是在一张表中列出它们,然后在一个松弛的频道中调用它们。我注意到人们会错过那些闲散的消息,因为我们白天有很多渠道可以掌握。该脚本会推送日历事件,但不会分配电子邮件,因此有人会收到标准通知。另外,想要调用多个日历 ID。

标签: javascript google-apps-script google-sheets google-calendar-api integration


【解决方案1】:

您要做的是更改您的事件创建代码以使用createEvent(title, startTime, endTime, options) 函数。

有了这个,你可以像这样添加一个对象作为第四个参数:

{
  "guests": "email1,email2,email3,groupsemail,etc",
  "sendInvites": true,
  "description": "Maybe you want to add more details? Up to you"
}

因此,请务必编辑您的 eventCal.createEvent(oncall, startTime, endTime); 以添加额外参数。

此外,您可能希望创建一个要自动添加的电子邮件列表和一个键值对,用于将名称和电子邮件绑定在一起。

祝你好运!

【讨论】:

  • 感谢您的帮助。我是编写脚本的新手,基本上只是我在研究中发现的逆向工程脚本。所以,我明白你在说什么,但很难把它放在剧本中。我在哪里添加你的代码行?在脚本的任务 3 和 4 之间(第 45 行),然后添加第 4 个对象?另外,如何将其设置为仅运行一次特定日期?每次我运行宏时,它都会重新运行所有内容。如有任何帮助,我们将不胜感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多