通过脚本将guest虚拟机添加到日历事件,而不会发送邀请

时间:2014-11-19 09:39:53

标签: google-apps-script google-calendar-api

我想要做的是通过我创建的脚本将访客添加到某些Google日历活动,而不会通过邀请通知他们。我尝试了addGuest()函数,但每当有人添加时,他或她都会收到邀请电子邮件。

这可能吗?

非常感谢你。

最好,菲尔

编辑:

感谢您的回答。是的,我确定有邀请被发送。这是我的代码的相关部分:

for (i = 0; i < events.length; ++i)
{
 if (events[i].getLocation().match("XYZ") || events[i].getTitle().match("ABC")) {events[i].setLocation(addabc) && events[i].addGuest(mailxyz)}  
}
编辑2:我再次核实,邀请确实被发送出去了。这是我的整个脚本,但我不知道哪个部分可能导致这个:

function ModifyAppointments() {  

 var idabc = "idabc..."


  // ABC
  var contactabc = ContactsApp.getContactById(idabc);
  var addressabc = contactabc.getAddresses();
     var addabc = addressabc[0].getAddress();
  var mailsabc = contactabc.getEmails();
     var mailabc = mailsabc[0].getAddress();


  var today = new Date();
  var start = new Date();
  var end = new Date(start.getTime() +(500 * 60 * 60 * 24 * 7));

  var events = CalendarApp.getDefaultCalendar().getEvents(start, end);



   for (i = 0; i < events.length; ++i)
   {

   if (events[i].getLocation().match("abc") || events[i].getLocation().match("abc") || events[i].getTitle().match("abc") || events[i].getTitle().match("abc")) {events[i].setLocation(addabc) && events[i].addGuest(mailabc)}  

   }

}

编辑3:以下是正在发送的邀请之一的屏幕截图。不幸的是它是德语:

screenshot of invite

如果你想知道为什么在发送邀请和约会时间之间存在这么大的时间,我曾经在我的脚本中有更长的时间间隔。现在我提前一周将它缩短了。

2 个答案:

答案 0 :(得分:0)

我已经看过这个了,我非常肯定这个代码不是发送邀请的内容。正如我所说,https://code.google.com/p/google-apps-script-issues/issues/detail?id=574有一个未解决的问题,因为此函数没有发送邀请,我也是自己再次对此进行测试,所以我们可以排除这一点。

这是一个测试功能,您可以复制并粘贴其他人(邀请永远不会发送给活动的创建者)电子邮件地址到新脚本中并自行确认.addGuest( )不是罪魁祸首:

function myFunction() {
   var email = 'ANOTHER-PERSONS-EMAIL-HERE';
   var event = CalendarApp.getDefaultCalendar().createAllDayEvent('Apollo 11 Landing',new Date('November 20, 2014'));
   event.addGuest(email);
}

剩下的假设是脚本的其他部分正在发送邀请(再一次,脚本中的Calendar服务可以来发送邀请)。

答案 1 :(得分:0)

问题源于您编写代码的方式。您必须迭代一系列事件。我已经为你修好了。

function myFunction() {
    var today = new Date();
    var email =  'ANOTHER-PERSONS-EMAIL-HERE';
    var events = CalendarApp.getDefaultCalendar().getEventsForDay(today);

    for (i = 0; i < events.length; ++i)
    {
        events[i].addGuest(email);
    }
}

//如果您有任何疑问,请告诉我们 - amir@serialmetrics.com,Amir Behbehani,//首席科学家,串行指标