Мне нужно создать событие за день до ввода пользователя в диалоге - PullRequest
0 голосов
/ 16 июня 2019

Я создал чат-поток диалогового потока, который собирает дату и время от пользователя, затем я использовал API календаря Google, чтобы использовать эту дату и создать событие в календаре Googe. Теперь мне нужно создать другое событие за день до ввода пользователями

это код, который я использую для установки события

 const location = agent.parameters.address;
 const appointment_name = agent.parameters.name;
 var date1 = agent.parameters.date;
 var date2 = (date1()- 1);
 const dateTimeStart2 = new Date(Date.parse(date2.split('T')[0] + 'T' + agent.parameters.time.split('T')[1].split('+')[0] + timeZoneOffset));
 const dateTimeStart = new Date(Date.parse(agent.parameters.date.split('T')[0] + 'T' + agent.parameters.time.split('T')[1].split('-')[0] + timeZoneOffset));
 const dateTimeEnd2 = new Date(new Date(dateTimeStart2).setHours(dateTimeStart2.getHours() + 1));
 const appointmentTimeString = dateTimeStart.toLocaleString(
   'en-US',
   { month: 'long', day: 'numeric', hour: 'numeric', timeZone: timeZone }
 );

function createCalendarEvent (dateTimeStart, dateTimeEnd, appointment_name, location) {
 return new Promise((resolve, reject) => {
   calendar.events.list({
     auth: serviceAccountAuth,
     calendarId: calendarId,
     timeMin: dateTimeStart.toISOString(),
     timeMax: dateTimeEnd.toISOString()
   }, (err, calendarResponse) => {

     if (err || calendarResponse.data.items.length > 0) {
       reject(err || new Error('Requested time conflicts with another appointment'));
     } else {

       calendar.events.insert({ auth: serviceAccountAuth,
         calendarId: calendarId,
         resource: {
  'summary': appointment_name ,
  'description': location,
  'start': {
    'dateTime': dateTimeStart,
  },
  'end': {
    'dateTime': dateTimeEnd,
  },
} ,
       }, (err, event) => {
         err ? reject(err) : resolve(event);
       }
       );
     }
   });
 });

1 Ответ

0 голосов
/ 16 июня 2019

Наиболее прямым способом было бы создание новых объектов Date путем вычитания 1 из объектов dateTimeStart и dateTimeEnd с последующим использованием этих объектов в аналогичном вызове API календаря.

...