现在有直接的方法可以做到这一点,但您可以组合一种方法来实现这一点。
这个想法是您可以指定时间边界并限制记录数量,这足以完成这项工作。
因此,将设置timeMin
为现在(或在您的参考事件结束日期之后)timeMax
设置为足够大的数字,例如从 timeMin 和maxResults
= 1 开始的一年,如果它存在,将获得下一个实例。
这是如何在 nodejs 中完成的:
let startDate = startTime ? new Date(startTime) : new Date()
let endDate = endTime ? new Date(endTime) : new Date(startDate.getTime() + 12 * 31 * 24 * 60 * 60 * 1000) // 1 year ahead
let startDateISO = startDate.toISOString()
let endDateISO = endDate.toISOString()
let result = await calendar.events.instances({
calendarId: "primary",
eventId: masterEventId,
maxResults: 1,
timeMin: startDateISO,
timeMax: endDateISO,
orderBy: "startTime",
timeZone: "UTC"
})
let nextInstance = result.data.items[0]
timeMin
同样,如果您按降序排列结果并反转时间边界(设置为一年前和timeMax
参考事件开始之前),您可以获得前一个实例。