如何获取其他所有者共享的Google日历活动?

时间:2017-01-12 19:36:48

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

我是日历api的新手,有几个基本问​​题。

我希望在所有日历上获得另一个用户tonya123456@gmail.com与我分享的所有活动。她是老板,不是我。

"此用户拥有或订阅0.0日历"是我运行此代码时的响应:

var calendar = CalendarApp.getCalendarsByName('tonya123456@gmail.com');
if(calendar == null){
//user may not have access, auto-subscribe them.
calendar = CalendarApp.subscribeToCalendar('tonya123456@gmail.com', 
{hidden:true,selected:false});
}
Logger.log('This user owns or is subscribed to %s calendars.',
 calendar.length);

1 个答案:

答案 0 :(得分:0)

我知道的一种方法是列出您自己的所有具有您正在寻找的创建者的事件。下面的函数将获取您的事件并返回与事件创建者匹配的事件ID数组。这不是一个包容性的解决方案,例如它没有日期范围或处理分页结果,只是一种简单的方法来解决这个问题。

  

https://developers.google.com/google-apps/calendar/v3/reference/events/list

function getEventIdsByCreator(calendarId,creator){ 
  return Calendar.Events.list(calendarId,{fields:"items/id,items/creator/email"})
          .items.filter(function(item){          
          try{if(item.creator.email === creator){return true}}
          catch(e){}
          }).map(function(item){return item.id});
}     

您可以使用它:

function myFunction(){
  var IDs = getEventIdsByCreator(myCalendarId,"tonya123456@gmail.com")
}