如何通过Google Calendar API筛选仅含自有原始重复事件的实例?
解决Google Calendar API过滤原始事件在自身日历的重复实例问题
Google Calendar API的Events#list接口没有直接参数能帮你过滤出「原始重复事件存在于当前用户日历」的实例,但可以通过两步操作实现需求:
- 第一步:先调用
Events#list,不要加singleEvents参数(默认值为false),获取当前日历中所有的原始重复事件——也就是带有recurrence字段的事件。把这些事件的id收集到一个集合里,比如originalRecurringIds。 - 第二步:再调用
Events#list,带上singleEvents=true获取所有重复事件实例。拿到结果后在本地过滤:只保留recurringEventId存在于originalRecurringIds集合里的实例。
这样过滤后的实例,对应的原始重复事件肯定在你的日历里,后续调用Events#get获取原始事件就不会返回404了。
补充说明
- 注意处理分页:如果你的日历事件较多,两次调用都要检查
nextPageToken,循环获取所有数据,避免遗漏。 - 这种客户端过滤的方式,在事件量极大的场景下可能有轻微性能损耗,但绝大多数日常使用场景下完全够用。
内容的提问来源于stack exchange,提问作者vidu.sh
相关产品推荐
相关产品推荐

