You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AppleScript Calendar中获取包含重复事件的全部事件实例?

解决重复事件stamp date获取问题

你当前的筛选逻辑仅针对事件主条目起始日期,而重复事件的主条目起始日期通常早于eventStart,导致其在目标时间段内的实例被遗漏。需要改用事件是否在目标时间段内发生的判断条件,才能覆盖所有包含重复实例的事件。

修改后的AppleScript代码如下:

set eventStart to current date
set eventEnd to eventStart + (30 * days)
set myCal to calendar "你的日历名称" -- 替换为实际日历名称

-- 获取目标时间段内所有非全天事件(含重复实例对应的主事件)
set targetEvents to every event of calendar myCal whose allday event is false and occurs between eventStart and eventEnd
set newStamps to get stamp date of targetEvents

关键说明:

  • occurs between eventStart and eventEnd会匹配所有在目标时间段内有实例的事件,包括重复事件的主条目(即使主条目起始日期早于eventStart)。
  • 重复事件的所有实例共享同一个stamp date(即主事件的stamp date),因此提取结果会包含这些原本被遗漏的stamp date。
  • 若需避免重复事件的多个实例导致stamp date重复,可添加去重逻辑:
-- 对stamp date去重
set uniqueStamps to {}
repeat with aStamp in newStamps
    if aStamp is not in uniqueStamps then
        set end of uniqueStamps to aStamp
    end if
end repeat
set newStamps to uniqueStamps

内容的提问来源于stack exchange,提问作者SamZay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:01:41