javascript - 如何知道 Google 日历中是否使用 GAS 创建了事件?

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

我想知道是否有可能知道谷歌日历中的事件何时创建,我刚刚找到了如何创建一个事件并利用其信息来创建另一个我想将事件的信息发送到电子表格或任何文件

我刚收到这个..

function createEvent() {
  var calendarId = 'primary';
  var eventSeries = CalendarApp.getDefaultCalendar().createEventSeries('Evento de prueba',
      new Date('December 20 2014 10:00:00 AM -6'),
      new Date('December 20 2014 10:30:00 AM -6'),
        CalendarApp.newRecurrence().addWeeklyRule().
        onlyOnWeekdays([CalendarApp.Weekday.SATURDAY]),
       { location: 'Tacos'});
     Logger.log('EventSeriesID: ' + eventSeries.getId());
     if (eventSeries.getTitle() == 'Evento de prueba'){
         var calendarId2 = 'primary';
         var event = CalendarApp.createEvent(eventSeries.getTitle(), eventSeries.getDateCreated(), new Date(eventSeries.getDateCreated() + 2),
         {location : eventSeries.getLocation()});
     }
}

最佳答案

我不确定你想要这种方式还是其他方式,但你可以尝试以下代码。

function createEvent() {
  try{
     var calendarId = 'primary';
     var eventSeries = CalendarApp.getDefaultCalendar().createEventSeries('My Events',
      new Date('December 20 2014 12:00:00 PM'),
      new Date('December 20 2014 03:30:00 PM'),
        CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekdays([CalendarApp.Weekday.SATURDAY]),
       { location: 'Tacos'});
     Logger.log('EventSeriesID: ' + eventSeries.getId());
     if (eventSeries.getTitle() == 'My Events'){
         var calendarId2 = 'primary';
         var event = CalendarApp.createEvent(eventSeries.getTitle(), eventSeries.getDateCreated(), new Date(eventSeries.getDateCreated() + 2),
         {location : eventSeries.getLocation()});

         var ss_id = logEventData(event);
       Logger.log(ss_id);
         sendMail(ss_id);
     }
  }catch(error){
    Logger.log(error.message); 
  }
}

function logEventData(event) {
  var ss = SpreadsheetApp.create('calender-events-logs');
  var eventDetails = [];

  eventDetails.push(event.getTitle());
  eventDetails.push(event.getDescription());
  eventDetails.push(event.getCreators()[0]);

  //You can get number of other details here if you want to.

  ss.appendRow(eventDetails);

  return ss.getId();
}

function sendMail(ss_id) {
  var emailTo = 'Put your email id here';
  var subject = 'Test';
  var body = 'Test';

  var pdf = DocsList.getFileById(ss_id).getAs('application/pdf').getBytes();
  var attachment = {fileName:'CalendarEventLogs.pdf',content:pdf, mimeType:'application/pdf'};

  // Send the freshly constructed email 
  MailApp.sendEmail(emailTo, subject, body, {attachments:[attachment]});
  //MailApp.sendEmail(recipient, subject, body);

  // Delete the dummy spreadsheet
  deleteDummySheet(ss_id);
}

function deleteDummySheet(ss_id) {
  DocsList.getFileById(ss_id).setTrashed(true);
}

关于javascript - 如何知道 Google 日历中是否使用 GAS 创建了事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552817/

相关文章:

javascript - 在同一个 div 中两次 ng-clicks

javascript - 从 Google 表格中删除所有未使用的行和列

google-apps-script - 如何在 Google 表单问题中添加代码片段

api - 未配置 Google Calendar API v3 访问

php - 将事件添加到 Google 日历时的时差

javascript - 如何在 WKWebView 中播放音频?

asp.net - OnClientClick 不起作用

javascript - 提交动态创建的表单

javascript - 未捕获的类型错误 : Untaming of guest constructed objects unsupported: [object Object]

php - 如何在开源(Github + Heroku)应用程序中保护 Google API Key