在节点js中获取Google日历事件ID

时间:2019-05-02 12:05:09

标签: javascript node.js google-api google-calendar-api dialogflow

我正在尝试从node.js中的Google日历删除事件, 这需要删除事件的ID。

我在Google日历文档中找不到任何获取此ID的方法。 有没有一种方法可以使用特定方法获取事件ID?

function deleteEvent(agent) {
console.log('delete event function');


    //Check the availability of the time slot and set up an appointment if the time slot is available on the calendar
    return getEventId().then(() => {
      agent.add(`Got it. the event deleted`);
    }).catch(() => {
      agent.add(`Sorry`);
    });

  }
  function getEventId(){


  console.log("get event id function");

  eventId='******';
  return deleteCalendarEvent().then(()=>{
    console.log('success');
  }).catch(()=>{
    console.log('fail');
  });



  }// getEmailsForDepartment

  function deleteCalendarEvent(){
    return new Promise((resolve, reject) => {
      calendar.events.delete({  
        auth: serviceAccountAuth,
        calendarId: calendarId,

        eventId:eventId
      }, (err, event) => {
        err ? reject(err) : resolve(event);
      });
    });
  }


2 个答案:

答案 0 :(得分:2)

您可以使用Events: list列出所有事件。然后按标题,日期或类似内容进行过滤,以获取所需事件的ID。参见https://developers.google.com/calendar/v3/reference/events/list

在浏览器用户界面中,如果单击“疑难解答信息”,则会看到eid。

答案 1 :(得分:1)

首先,您没有指出期望如何知道或弄清楚要删除的事件。

但是,例如,如果请求是“删除5pm事件”,则可以使用Dialogflow @sys.time实体类型来获取日期和时间,然后使用Calendar API的Events.list方法,指定timeMin和可能的timeMax参数以查找匹配的事件。