【问题标题】:Google Apps Script Move Event From One Calendar To AnotherGoogle Apps 脚本将事件从一个日历移动到另一个日历
【发布时间】:2013-08-05 19:31:58
【问题描述】:

我查看了 Mogsdad 的 对类似问题 here 的回答,但它并不是特别针对我的问题。我还查看了documentation for the Calendar class and its subclasses,但没有将单个事件从日历X复制到日历的方法(在我看来应该实现;有一个待处理的feature request)是的。

我想做的如下:

  1. 将要移动的日历事件的 ID 存储在某处。
  2. 当事件 Z 完成时(外部条件,基于时间),为函数提供日历事件 ID。
  3. 该函数会将事件 Z 从日历 X 移动到日历 Y。

我能想到的唯一方法就是草率(以下是半伪):

// y is Calendar Y, z is the ID of Event Z
function moveToNewCalendar(y, z) {

var eventToMove = getEventByID(z);

// eventDetails is an Object
var eventDetails = getAllEventDetails(eventToMove); // This is not fun!

y.createEvent(eventDetails);
eventToMove.deleteEvent();
}

function getAllEventDetails(e) {

var details = {};

details["title"] = e.getTitle();
details["startTime"] = e.getStartTime();
// ... etc

return details;

}

function createEvent(eventDetails) {
// Create event using the information pulled from eventDetails
}

此功能可通过Google Calendar API v3 - move 函数使用,但不能通过 GAS。

我认为主要问题是复制事件的详细信息。日历原型中没有createEvent(Event e) 的功能。有没有我只是想念的更简单的方法?

【问题讨论】:

  • 好问题...如果您编写代码来获取/设置所有事件属性(因为恐怕这将是完成它的唯一方法:-/)在这里分享!!
  • 好吧,如果这是在开发人员实现自己的功能之前最好的方法,那么我会继续努力的!完成后,我会用代码更新这个问题作为答案。

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


【解决方案1】:

这个由 Romain Vialard 编写的 new library 将为您提供一个完整的解决方案...我很高兴成为一名 beta 测试人员,我的所有测试都成功了 :-)

【讨论】:

  • 我希望我能投票更多!感谢 Romain Vialard,为我们提供了我们都渴望的功能。在回到自己编写moveToAnotherCalendar 函数之前,我打算完成一些其他的副项目,我很高兴我提前来到这里,以免自己重新发明轮子。现在这应该在标准中实施。如果我没记错的话,Romain 不是 GAS 项目成员吗?无论如何,我希望需要这个库功能的人偶然发现这个 SO 问题!再次感谢 Serge,您是 GAS 专家,感谢您的所有帮助 :)
  • 谢谢,Romain 是 top contributor,他开发了很多 gas 应用程序和库,看看他与另一个出色的 TC 的站点,它充满了很棒的东西......: -)
  • 这个链接现在好像坏了。有备用链接吗?
  • 高级日历应用程序很容易做到这一点developers.google.com/apps-script/advanced/calendar#reference 移动事件使用 varmovedEvent = Calendar.Events.move(cal.id,ID,targetCal)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多