Google Apps脚本将事件从一个日历移动到另一个日历

时间:2013-08-05 19:31:59

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

我查看了 Mogsdad的对类似问题的回答here,但这并不是我的问题所特有的。我还查看了documentation for the Calendar class and its subclasses,但是没有方法(我认为应该实施;有一个待定的feature request)用于复制单个事件日历X到日历Y。

我想做的事情如下:

  1. 将要移动的日历事件的ID存储在某处。
  2. 当事件Z完成时(外部标准,基于时间),为该功能提供日历事件ID。
  3. 该功能会将事件Z从日历X移动到日历Y.
  4. 我能想到如何做到这一点的唯一方法是草率(半伪):

    // 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。

    我认为主要问题是复制事件的细节。 Calendar原型中没有createEvent(Event e)的功能。是否有一种更简单的方法可以做到这一点,我只是缺席了?

1 个答案:

答案 0 :(得分:1)

由Romain Vialard撰写的new library将为您提供完整的解决方案......我很高兴成为测试人员并且我的所有测试都成功了:-)