简体   繁体   English

如何获取Google日历活动的扩展属性?

[英]How can I retrieve an extended property for a Google Calendar event?

I have several extended properties I've added to various events using PHP. 我有几个扩展属性,已使用PHP添加到各种事件中。 Now I want to retrieve them using Google Apps Script in Google Sheets. 现在,我想使用Google表格中的Google Apps脚本检索它们。 I'm able to access the calendar, all events and the standard data elements like this: 我可以像这样访问日历,所有事件和标准数据元素:

 var mycal = "... my calendar id ....";
 var cal = CalendarApp.getCalendarById(mycal);

 var events = cal.getEvents(new Date("January 12, 2015 00:00:00 CST"), new Date("January 18, 2017 23:59:59 CST"))

 for (var i=0; i < events.length; i++) {

      var myStart = events[i].getStartTime();
      var myTitle = events[i].getTitle();
      var myDesc = events[i].getDescription();
      var myTalkNo = ??

 }

How do I query the private extended property named "talk-number" on each event? 如何在每个事件上查询名为“ talk-number”的私有扩展属性?

Within Google Apps Script you have two ways to interact with Google Calendar; 在Google Apps脚本中,您有两种与Google日历进行交互的方式: the Calendar Service and the Advanced Calendar Service (aka Calendar API) which must be enabled via Advanced Google Services. 日历服务高级日历服务 (又称日历API),必须通过高级Google服务启用。

The ACS uses the resource representations from the Google Calendar API , so the extendedProperties are available as a part of the event objects you can obtain through the API. ACS使用来自Google Calendar API的资源表示形式,因此extendedProperties可作为可通过API获取的事件对象的一部分。

Here's a simple modification of the example from the ACS docs that will log the "talk-number" for every event that has one. 这是ACS文档中示例的简单修改,它将为每个有一个的事件记录“通话号码”。

function listNext10Events() {
  var calendarId = 'primary';
  var now = new Date();
  var events = Calendar.Events.list(calendarId, {
    timeMin: now.toISOString(),
    singleEvents: true,
    orderBy: 'startTime',
    maxResults: 10
  });
  if (events.items && events.items.length > 0) {
    for (var i = 0; i < events.items.length; i++) {
      var event = events.items[i];
      if (event.start.date) {
        // All-day event.
        var start = parseDate(event.start.date);
        Logger.log('%s (%s)', event.summary, start.toLocaleDateString());
      } else {
        var start = parseDate(event.start.dateTime);
        Logger.log('%s (%s)', event.summary, start.toLocaleString());
      }
      /********************************************************************/
      if (event.hasOwnProperty("talk-number"))
        Logger.log(event.extendedProperties.private["talk-number"]);
      /********************************************************************/
    }
  } else {
    Logger.log('No events found.');
  }
}

You can update your function with this: 您可以使用以下命令更新功能:

var eventId = events[i].getId().replace(/@.*/,'');  // Remove @google.com from eventId
var event = Calendar.Events.get(calendarId, eventId)
myTalkNo = event.extendedProperties.private["talk-number"];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用Google Calendar API检索每月定期发生的事件? - How can I retrieve instances of a monthly recurring event using Google Calendar API? 如何使用 Jquery FullCalender event.extendedProps 获取事件的所有 Google 日历扩展属性 - How to get all of the Google Calendar extended properties for an event with Jquery FullCalender event.extendedProps 如何将事件处理程序添加到Google日历页面上动态添加的元素? - How can I add event handlers to dynamically added elements on a Google Calendar page? 如何使用v3 API和JQuery将事件添加到Google日历? - How can I add an event to a Google calendar using v3 API and JQuery? 如何使用 Node js 更新谷歌日历事件? - How do I update a google calendar event using Node js? FullCalendar - 我无法检索日历上的事件 - FullCalendar - I can't retrieve the events on the calendar 如何在完整日历js中向整个单元格渲染事件? - How can I render an event to whole cell in full calendar js? 如何更改 Vuetify 日历中事件的边框颜色? - How can I change the border color of an event in Vuetify Calendar? Chrome扩展程序-修改Google日历事件用户界面以通过输入字段接受扩展属性 - Chrome Extension - Modify Google Calendar Event UI to accept Extended Properties via input field 如何创建基于日历模式的事件? - How can I create an event based on pattern for calendar?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM