在X个日期和Y次之间显示Google日历活动

时间:2014-03-06 16:31:19

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

我一直试图找到一种方法让Google日历基本上将编程过滤的搜索结果(由javascript推动)转储到电子表格中。

我已经设法分别执行这两项任务,例如在这些日子之间只显示事件,并在这两次之间显示事件,但我还没有找到将两者结合起来的方法。以下是我要过滤的日子:

(这将根据插入的日历名称和日期范围向每列输出日历及其事件)

function onOpen() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  cell = sheet.getRange("A1");

  // To change output:  Enter Name of Desired Calendar Below
  cApp = CalendarApp.getCalendarsByName('Calendar Name');      
  for (var b = 0;b < cApp.length;b++){
  cell.offset(0,b).setValue(cApp[b].getName());

  // To change the date range:            Enter the Starting Date Below    
  var events = cApp[b].getEvents(new Date("August 26, 2013 EST"),

  // To change the date range: Enter the Ending Date Below    
  new Date("January 31, 2014 EST"));

  for ( var j=0;j< events.length;j++){
    cell.offset(j+1,b).setValue(events[j].getTitle());
  }
  } 

这是一个小调整,允许一个时间范围:

  function onOpen() {
  var now = new Date('February 28, 2014 00:00:00 PST')
  var then = new Date('February 28, 2014 08:00:00 PST')


  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  cell = sheet.getRange("A1");

 // To change output:             Enter Name of Desired Calendar Below
  cApp = CalendarApp.getCalendarsByName('Athletics Field');

  for (var b = 0;b < cApp.length;b++){
  cell.offset(0,b).setValue(cApp[b].getName());

  var events = cApp[b].getEvents(now, then);

  for ( var j=0;j< events.length;j++){
    cell.offset(j+1,b).setValue(events[j].getTitle());
  }
  } 
  }

更具体的问题是,我希望看到3月1日至3月8日的活动,但仅限于下午12点至下午3点之间的活动。

请帮帮忙? ^^;

1 个答案:

答案 0 :(得分:0)

其中一个Google Apps Script Templates将是您开始的好地方。

  

收到当天议程的电子邮件:此模板将每天运行   脚本以检查您在Google日历上的约会,然后发送给您   在您选择的时间通过电子邮件发送当天的日程。

包含脚本is here的电子表格。