通过电子表格和 Google 日历 API 向与会者的电子邮件发送邀请

时间:2021-06-08 04:24:35

标签: google-sheets events notifications calendar google-calendar-api

首先,我没有任何编码知识/背景,所以我不知道在这里寻求建议是否合适,也是我在这里的第一篇文章。我通常在互联网上寻找一些可以找到我的需求的代码,更新它以适合我的数据并完成。

所以,现在我正在我的组织中设置一个共享平台,允许人们注册为共享会话的演示者或参与者。

会话都是预先创建的,他们必须在列表中进行选择。注册后,数据可在电子表格中使用,我有代码为会议添加这些注册人。

但是我的问题是,他们被添加为活动的嘉宾,但没有收到此活动的邀请。这是脚本:

function Presenterscalendar() {
  var cal,i,iCalId,row,sheet,thisEvent,presenter,title,email;

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName("Presenters");
  var dataRange = sheet.getRange("A2:G1000");
  var data = dataRange.getValues();

  cal = CalendarApp.getDefaultCalendar();

  for (i in data) {
    row = data[i];
    presenter = row[1];
    title = row[3];
    tstart = row[2];
    iCalId = row[4];
    email = row[6];

    thisEvent = cal.getEventSeriesById(iCalId);

    if (thisEvent) {
      thisEvent.setTitle(title);
      thisEvent.setDescription('A session presented by '+presenter);
      thisEvent.addGuest(email)


    }
 }
}

我寻找其他脚本,以便向日历中每个会议的所有与会者发送邀请:

function sendInvite(calendarId, eventId, email) {
  var calendarId = 'test@test.com';
  var vss = SpreadsheetApp.getActive();
  var vS = vss.getSheetByName('Presenters');
  var dataRange = vS.getRange("A2:H1000");
  var data = dataRange.getValues();

  for (i in data) {
    row = data[i];
    presenter = row[1];
    title = row[3];
    tstart = row[1];
    iCalId = row[4];
    mail = row[6];


  var eventId = vS.getRange("e2:e1000").getValue();
  var eid = eventId.split("@")[0]; // Added;
  var event = Calendar.Events.get(calendarId, eid);
  var attendees = event.attendees;
   if(event.attendees) {
    event.attendees.push({
      email: email
    });
  } else {
    event.attendees = new Array({email:email});
  }
  event = Calendar.Events.patch(event, calendarId, eid, {
    sendupdates: "all"
  });
}
}

如果我只是为 ex ({email:"test@google.com"}) 放置一个静态电子邮件,这会起作用,但是如果保持原样,它会显示“缺少与会者邮件”。最终,我想要的是:

  • 用于获取日历中的所有事件并将通知发送给已注册的新参与者(更新)的脚本
  • 从电子表格中获取数据的脚本(我在 1 列中有与会者的电子邮件 -1 行 = 1 个与会者-)并将通知发送给新与会者

我确实已经允许脚本和 Google Cloud 平台使用 Calendar API。

我想知道您是否可以帮助我,我尝试复制我在互联网上找到的内容,但我对编码的有限知识不允许我走得更远......

非常感谢!

1 个答案:

答案 0 :(得分:0)

optional query parameters for an event patch 区分大小写

因此,您需要修改

    sendupdates: "all"

    sendUpdates: "all"