使用Google电子表格/日历创建事件后获取事件ID

时间:2019-05-23 19:21:18

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

我编写了一个脚本,用于通过表单和电子表格为Google日历创建事件。 创建事件后是否有可能获得事件ID? 想要将其保存在电子表格中,以便我可以根据需要更改或删除该事件...

1 个答案:

答案 0 :(得分:0)

通常,您可以通过在getId()类实例上调用CalendarEvent方法来访问事件的ID(假设您是通过CalendarApp服务创建事件的)。另一方面,如果您向Calendar API发送http请求(例如insert),则可以生成一个ID,并将其作为请求正文属性id传递(有三个要求:base32hex编码,5 <= id.length <= 1024,必须是唯一的),并保留其值,但您认为合适。

这是一个非常简单的示例,用于说明第二种方法(该示例假定您已在“ Calendar”名称下的高级服务中启用了Calendar API)

/**
 * Test for created event;
 * @returns {Object} requested event;
 */
function getEvent() {
  var id = 'eventid1';
  var event = Calendar.Events.get('primary', id);
  Logger.log(event);
  return event;
}

/**
 * Inserts event (for example simplicity, hardcoded Id);
 */
function insertEvent() {

  var id = 'eventid1';

  var start = new Date()
      start.setHours(21);

  var end = new Date()
      end.setHours(22);

  var tz = 'America/Los_Angeles';

  var event = {
    start : {
      dateTime : start.toISOString(),
      timeZone : tz    
    },
    end : {
      dateTime : end.toISOString(),
      timeZone : tz   
    },
    id : id
  };

  Calendar.Events.insert(event, 'primary');
}

希望这两种解决方案中的任何一种都会有所帮助,否则,请提供示例代码以创建事件!