それを行う直接的な方法がありますが、それを達成する方法を一緒にハックすることができます。
アイデアは、時間境界を指定してレコード数を制限できるということであり、それで十分です。
そのため、timeMin から 1 年、= 1 のように、timeMin
現在 (または参照イベントの終了日の直後) に十分な数を設定すると、次のインスタンスが存在する場合はそれが取得されます。timeMax
maxResults
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
1 年前に設定)。timeMax