【问题标题】:Getting the Event ID After creating Event with google spreadsheet/calendar使用谷歌电子表格/日历创建事件后获取事件 ID
【发布时间】:2019-05-23 19:21:17
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

通常,您可以通过在CalendarEvent 类实例上调用getId() 方法来访问事件的ID(假设您通过CalendarApp 服务创建事件)。另一方面,如果您向日历 API 发出 http 请求(例如 insert),您可以生成一个 id,将其作为请求正文属性传递 id(有三个要求:base32hex 编码,5

这是一个非常简单的示例来说明第二种方法(该示例假设您已在“日历”名称下的高级服务中启用日历 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');
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多