【发布时间】:2018-08-20 09:46:20
【问题描述】:
我正在尝试将 Google 日历事件数据提取到电子表格中,这很有效。但是,我使用的代码仅导出由 Google 帐户/日历所有者创建的数据,而不是其他用户添加的事件。
下面是我用来访问日历和检索事件详细信息的一些代码示例。
是否有任何方法可以实现上述所有用户添加的详细信息..?
var cal = CalendarApp.getCalendarById("name of calendar");
var events = cal.getEvents(new Date("18/08/2018 12:00 AM"), new Date("30/08/2018 12:00 AM"))
编辑:
在我原来的帖子的基础上,这可能会有所帮助..
感谢到目前为止的回复...我不完全确定刚刚引用的代码中发生了什么,我的完整功能如下。如果我给出我正在尝试做的实际示例,它也可能会有所帮助。
一个仓库每天进出许多托盘。这些各种输入/输出的详细信息作为事件添加到“输入”和“输出”日历上。每种操作都有一个日历。详细信息仅输入到“标题”部分(例如采购订单号等)并给出时间。我有将托盘数量放入“描述”部分的想法,这样当我们将事件提取到电子表格中时,我们每天、每小时等都会获得进出托盘的计数。
function goodsin() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cal = CalendarApp.getCalendarById("name of calendar");
var events = cal.getEvents(new Date("18/08/2018 12:00 AM"), new Date("30/08/2018 12:00 AM"));
for (var i = 0; i < events.length; i++) {
var title = events[i].getTitle();
var sd = events[i].getStartTime();
var ed = events[i].getEndTime();
var des = events[i].getDescription();
ss.getRange(i+2, 1).setValue(title)
ss.getRange(i+2, 2).setValue(sd);
ss.getRange(i+2, 2).setNumberFormat("dd/mm/yyyy h:mm:ss AM/PM")
ss.getRange(i+2, 3).setValue(ed);
ss.getRange(i+2, 3).setNumberFormat("dd/mm/yyyy h:mm:ss AM/PM")
ss.getRange(i+2, 4).setValue(des);
}
}
【问题讨论】:
-
您可能需要使用实际的日历 API 而不仅仅是日历服务
CalendarApp。你有没有仔细研究过CalendarApp方法,看看它们中是否有任何接近提供或建议类似于你要求的东西?因为(对我而言)知道您正在参加或受邀参加的活动应该是可查询的...... -
感谢您的回复。我已经检查了网页上的列表,看看是否有任何描述与我正在寻找的内容相匹配,但由于我对此有点陌生,所以没有任何东西跳出来。有些方法有选项,但在 [] 字段中。但我不确定在论点中有什么选择......
标签: google-apps-script google-calendar-api