节点js发送gmail的会议/日历邀请

时间:2017-07-21 13:48:00

标签: node.js calendar gmail google-calendar-api nodemailer

我正在尝试使用节点js发送日历邀请。

我已尝试过nodemailer库,并发送带日历邀请的邮件

与提及this问题

相同

但这是发送邀请之类的 check add to calendar link

但我希望发送邀请 enter image description here

如果有人知道更好的方法,建议一些帮助。

[更新] 使用谷歌日历API 输出显示为 enter image description here

3 个答案:

答案 0 :(得分:2)

我会使用Google Calendar API:https://developers.google.com/google-apps/calendar/create-events,您可以使用https://www.npmjs.com/package/google-calendar等库来执行此操作。它还具有您不必从服务器发送电子邮件的好处。

通过这种方式,您可以添加与会者,邀请将与您直接从日历发送请求相同,而不是Google将您的电子邮件解释为日历活动。

  

您创建的事件会显示在所有主要Google日历上   您使用相同事件ID包含的与会者。如果你设置   与会者将在您的插入请求中将sendNotifications设置为true   还会收到有关您活动的电子邮件通知。查看事件   多位与会者指导了解更多信息。

答案 1 :(得分:0)

如果有人仍在寻找答案:

尝试使用sendNotifications键更新events.insert负载,如图所示

var calendar = google.calendar("v3");

  calendar.events.insert({
  auth: auth,
  calendarId: "primary",
  resource: event,
  sendNotifications:true
}, function(err, event) {
  if (err) {
    console.log("There was an error contacting the Calendar service: " + err);
    return;
  }
  console.log("Event created: %s", event);
});

这将向google docs中指示的作为事件元数据的一部分发送的所有与会者发送电子邮件。

答案 2 :(得分:0)

sendNotifications已过时,请使用sendUpdates。请注意,它不是布尔值,而是字符串。

calendar.events.insert({
    auth: auth,
    calendarId: 'primary',
    resource: event,
    sendUpdates: 'all',
  }, function(err, event) {
    if (err) {
      console.log('There was an error contacting the Calendar service: ' + err);
      return;
    }
    console.log('Event created: %s', event.htmlLink);
  });

来自打字稿签名:

     * @param {boolean=} params.sendNotifications Deprecated. Please use sendUpdates instead.  Whether to send notifications about the creation of the new event. Note that some emails might still be sent even if you set the value to false. The default is false.
     * @param {string=} params.sendUpdates Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.