用匹配的示例开始
每个预设同时带有规则和符合条件的 DTSTART。将周一改为每月第二个周二时,也需要调整起点。生成表单与解析文本各自保留,切换模式不会把其中一份内容写进另一份。
日期与时间
用表单建立重复条件,或解析已有规则,核对起点、时区、结束条件和实际日期。
BYDAY 可填 MO,WE 或 2TU,-1FR,序号仅用于月、年重复。BYMONTHDAY 为 −31…−1 或 1…31;BYMONTH 为 1…12;BYSETPOS 为 −366…−1 或 1…366,且需搭配其他 BY 条件。多个值用逗号分隔,留空的筛选项不输出。
输入仅在当前浏览器中处理,不会发送到服务器。
起点填写带秒的本地 ISO 时间,如 2026-09-14T09:00:00;UNTIL 填带 Z 的 UTC 时间。DTSTART 本身必须符合重复条件。
夏令时缺失时刻按转换前偏移解释,展示顺延后的钟点;重复时刻取第一次。不存在的日历日期直接跳过。
仅支持日、周、月、年重复。输入最多 8,192 个 UTF-16 单元、100 个例外;COUNT 最大 10,000。预览 1–1,000 次,从 DTSTART 起最多十年、最晚到 2099 年,计算五秒超时。
输入或选项已更改,请更新结果后再导出。
每隔两周开会、月底出账、临时取消一次预约,表达的是三种不同的日历关系。RRULE 生成器把这些重复规则展开到具体日期,便于在接入日历前确认:起点是不是第一次发生,短月会不会漏掉一次,时区转换后又落在几点。
作为 RRULE 解析器,它接受裸规则以及带日期属性的片段;作为重复日期生成器,它从 DTSTART 开始预览,而不是从今天开始。例外日期是对确切时刻的排除,不能仅凭日历上的一天猜测。
RRULE 生成器保留这两种意图的差别。BYMONTHDAY=31 会跳过没有 31 日的月份;BYMONTHDAY=-1 则选择每月最后一天。月底账单应该使用哪个条件,可以直接通过二月的预览结果判断。
COUNT 先限定原始系列,EXDATE 再移除匹配时刻。原本五次的安排排除一次后只剩四次,结束条件不会被延长。结果同时给出已检查部分的排除数量,方便核对例外是否真的命中。
每个预设同时带有规则和符合条件的 DTSTART。将周一改为每月第二个周二时,也需要调整起点。生成表单与解析文本各自保留,切换模式不会把其中一份内容写进另一份。
起点及表单内的例外日期填带秒的本地 ISO 时间,按所选 IANA 时区解释。UNTIL 使用带 Z 的 UTC 时刻。若粘贴片段自带 DTSTART,下方备用设置会禁用,实际起点以结果为准。
自动计算等待 350 ms;关闭后可点击执行或按 Ctrl/Cmd+Enter。输入变化立即禁用旧结果导出。日期每批显示 50 条,复制报告和 JSON 包含本次全部预览。示例与清空先展示变更,应用后可撤销一次。
INTERVAL 表示每隔几天、几周、几月或几年。BYDAY 可写普通星期,月和年重复还支持带序号的星期。WKST 决定一周从哪天开始,可能改变隔周规则的实际日期。
BYMONTH 指定月份,BYMONTHDAY 的正负数从月初或月末计数。BYSETPOS 在每个频率周期的候选集合中取位置,例如周一至周五搭配 -1 可以选出最后一个平日;它不读取节假日表。
裸规则使用面板的起点与时区。显式 DTSTART 必须带 UTC 的 Z 或 TZID,规范片段保留实际起点,避免复制后只剩一串缺少时间语境的条件。
每行列出本地时刻、偏移和 UTC;若夏令时导致钟点顺延,还会保留请求的原时刻。通常每周上午的会议在本地仍是同一钟点,但对应的 UTC 会随时区偏移改变。
固定日期只在该日真实存在的月份或年份出现,不会自动挪到前一天。每月末日使用 BYMONTHDAY=-1;按年重复的 2 月 29 日会跳过平年。
预览最多 1,000 次,规则的 COUNT 最多 10,000,二者用途不同。十年搜索窗及 2099 年上限还可能让稀疏规则少于请求数量;结果会说明停止原因。
裸规则使用面板所选 IANA 时区,片段内的 DTSTART 则优先决定时区。结果会列出实际生效的区域、每个本地时刻对应的偏移与 UTC,避免受电脑当前时区影响。
EXDATE 是独立属性,不放在 RRULE 参数里。表单每行填写一个完整本地时刻;解析模式可粘贴带 Z 或 TZID 的 EXDATE。规范输出把例外转换为 UTC。
本工具会直接报错,要求调整截止时刻或起点。不会把已经在截止日期之后的 DTSTART 强行作为第一次发生。检查时应比较确切 UTC 时刻,而不只是日期字符串。
执行时间不符合预期?