iOS快捷指令开发需求:筛选指定时段内每日首个日历事件
实现方案:给iOS快捷指令添加每日首尾事件的签到/签出字段
核心思路
先把事件按日期分组,再对每组内的事件按时间排序,标记首尾事件并添加对应字段,最后合并所有事件生成JSON。
具体操作步骤(基于你现有快捷指令修改)
按日期分组事件
- 在现有流程的「获取日历事件」动作之后,插入分组动作:
- 设置「按」为「开始日期」
- 「分组方式」选择「仅日期」(确保同一天的事件被归为一组,忽略具体时间)
- 在现有流程的「获取日历事件」动作之后,插入分组动作:
遍历每组事件并处理首尾项
- 添加重复动作,选择「重复列表中的每一项」(即遍历每个日期分组)
- 在重复循环内:
a. 排序事件:插入排序动作,选择当前分组的事件列表,按「开始时间」升序排列
b. 处理首个事件(签到):- 用获取项目动作,取排序后列表的「第一个项目」
- 用添加到字典动作,给该事件新增键值对:
- 键:
checkInTime(根据目标应用要求调整) - 值:用调整日期动作,将该事件的「开始时间」提前指定时长(比如30分钟),再转成与原有事件时间一致的字符串格式(如ISO 8601)
- 键:
- 将修改后的事件放回原分组的对应位置
c. 处理最后一个事件(签出,后续需求): - 用获取项目动作,取排序后列表的「最后一个项目」
- 同理,添加
checkOutTime键值对,值为事件结束时间延后指定时长的字符串 - 将修改后的事件放回原分组的对应位置
d. 跳过空分组:如果当前分组的事件数量为0(比如示例中11月10日无航班),用如果动作判断后直接跳过处理
合并事件并导出
- 用合并动作,将所有处理后的分组事件合并为一个完整列表
- 继续执行你原有的「生成JSON字典」「URL Scheme导入」流程
注意事项
- 确保新增的时间格式与原有事件的时间格式完全一致,避免目标应用解析失败
- 可以添加选择菜单或询问输入动作,让用户自定义签到提前/签出延后的时长,提升灵活性
- 测试时重点验证无事件的日期、单日仅一个事件的场景,避免出现逻辑错误
内容的提问来源于stack exchange,提问作者ScoobyDooku
相关产品推荐
相关产品推荐

