# ICS 日历重复规则展开器

将带 RRULE 的 VEVENT 展开为具体 occurrence，并导出为 JSON 或展开后的 ICS 日历

> 标准页面: https://elysiatools.com/zh/tools/ics-calendar-recurrence-rule-expander

- **分类:** Date & Time

- **关键词:** ics, rrule, 日历, 重复规则, ical

## 概述

粘贴完整 .ics 文本或单个 VEVENT 片段，然后把 RRULE 展开成具体事件实例。工具支持常见的 FREQ、INTERVAL、COUNT、UNTIL、BYDAY 与 BYMONTHDAY。

填写说明：
- ICS 或 VEVENT 输入：直接粘贴日历文本
- ICS 文件：上传 .ics 文件代替粘贴
- 时区覆盖：可选，在导出的日历头部附加时区标签
- 节假日日期：按 YYYY-MM-DD 每行一个，命中时会过滤该次 occurrence
- 最大展开次数：当 RRULE 没有 COUNT 时的安全上限
- 输出格式：返回 JSON、ICS，或同时返回两者

当前范围：
- 只展开输入中的第一个 VEVENT
- 支持 DAILY、WEEKLY、MONTHLY、YEARLY
- 生成结果统一按 UTC 风格规范化

## 输入项

- **ICS 或 VEVENT 输入** (textarea): BEGIN:VEVENT DTSTART:20260401T090000Z DTEND:20260401T100000Z RRULE:FREQ=WEEKLY;BYDAY=MO,WE;COUNT=6 SUMMARY:Team sync END:VEVENT
- **ICS 文件** (file)
- **时区覆盖** (text): Asia/Shanghai
- **节假日日期** (textarea): 2026-05-01 2026-10-01
- **最大展开次数** (number)
- **输出格式** (select)

## 适用场景

- 需要将复杂的 ICS 重复日程（RRULE）转换为具体的日期列表以便在自建系统中展示时。
- 跨时区同步日历数据，需要统一附加特定时区标签并规范化为 UTC 格式时。
- 提取日程实例时需要自动跳过法定节假日或特定休息日时。

## 工作原理

- 粘贴包含 VEVENT 的 ICS 文本，或直接上传 .ics 日历文件。
- （可选）设置时区覆盖、输入需要排除的节假日日期（YYYY-MM-DD），并调整最大展开次数以防无限循环。
- 选择输出格式（JSON、ICS 或两者兼有），工具将解析第一个 VEVENT 的 RRULE 并生成具体的日程实例。

## 使用案例

- 研发团队解析第三方日历订阅源，将重复会议数据落库到内部的排班系统中。
- 销售团队导出包含每周例会的 ICS 文件，展开后剔除法定节假日，生成实际的会议排期表。
- 个人用户将复杂的重复日程转换为扁平化的单次事件列表，以便导入不支持 RRULE 的简易日历应用。

## 常见问题

### 工具支持解析哪些重复频率（FREQ）？

当前支持解析 DAILY（按天）、WEEKLY（按周）、MONTHLY（按月）和 YEARLY（按年）的重复频率。

### 如果 RRULE 中没有设置结束时间（UNTIL）或次数（COUNT）怎么办？

工具提供了“最大展开次数”选项（默认 100 次），作为安全上限，防止生成无限循环的日程实例。

### 如何排除特定日期的日程？

在“节假日日期”输入框中按行输入需要排除的日期（格式为 YYYY-MM-DD），工具在展开时会自动跳过这些日期的实例。

### 可以同时处理多个 VEVENT 吗？

目前工具仅支持解析并展开输入内容中匹配到的第一个 VEVENT。

### 导出的 JSON 数据包含哪些内容？

导出的 JSON 会包含一个 occurrences 数组，列出所有展开后的具体日程实例的开始时间（UTC 格式）。

## 相关工具

- [加密 PDF 转换器](https://elysiatools.com/zh/tools/encrypted-pdf-converter): 输入正确密码后解析受保护 PDF，并导出为 Markdown、JSON 或文本
- [健身训练 PDF 生成器](https://elysiatools.com/zh/tools/fitness-workout-pdf-generator): 从 JSON 或 CSV 训练计划数据生成可打印 PDF，包含动作表格、进度格子和可选的视频二维码
- [OCR PDF 转结构化 JSON 桥](https://elysiatools.com/zh/tools/ocr-pdf-to-structured-json-bridge): 按几何结构抽取 PDF 文本层（y 坐标分行、列间隙识表、字号识标题、冒号键值对），然后逐字段填入用户提供的 JSON Schema——标签按归一化键名匹配、值按声明类型归一化，并用 ajv 校验。
- [播客章节标记生成器（ID3 / Podcasting 2.0）](https://elysiatools.com/zh/tools/podcast-chapter-marker-builder): 粘贴时间码章节列表，一次生成全部交付格式：Podcasting 2.0 章节 JSON（v1.2.0）与 RSS podcast:chapters 标签、可选把 ID3v2.4 CHAP+CTOC 章节帧直接烧入上传的 MP3（毫秒为普通大端 uint32、偏移 0xFFFFFFFF、每章嵌 TIT2 子帧、保留原有标签帧）、Vorbis CHAPTER001 注释对（OGG/Opus）、mp4chaps 文本、YouTube 说明栏时间戳块与 SRT 副车文件，并附各播放器真实支持情况（Apple 自 2025 起支持 RSS JSON；Pocket Casts/Overcast 仅读内嵌 ID3；Spotify 两者都不读）。
- [富文本JSON转PDF](https://elysiatools.com/zh/tools/richtext-json-to-pdf): 将TipTap/Quill/Slate导出的JSON转换为PDF
- [训练/测试集分层切分器](https://elysiatools.com/zh/tools/train-test-split-with-stratification): 读取 CSV/JSON 数据集,按目标列做分层抽样的 train/validation/test 切分(默认 70/15/15,随机种子可复现),或分层 k 折交叉验证;输出每折类别分布报告与偏差条、重复行泄漏检查、SMOTE 过采样预览(仅在训练折上做最近邻插值),并可导出各折 CSV 为 ZIP。
- [CSV/JSON 数据水印器](https://elysiatools.com/zh/tools/csv-json-data-watermarker): 为 CSV 或 JSON 导出注入可见或签名式水印字段，以便后续追踪共享数据
- [CSV 转数据库迁移规划器](https://elysiatools.com/zh/tools/csv-to-database-migration-planner): 根据 CSV 数据推断关系型 schema，并为 PostgreSQL、MySQL、SQLite 或 SQL Server 生成建表和 ALTER 迁移计划

## 示例

- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [ELK Stack 日志分析示例](https://elysiatools.com/zh/samples/elk-stack-samples): 全面的 ELK Stack（Elasticsearch、Logstash、Kibana）示例，用于分布式系统中的日志聚合、处理和可视化
- [JWT 示例](https://elysiatools.com/zh/samples/jwt-samples): 从基础令牌结构到高级安全实现的全面JWT示例

## 相关内容

- [重复日历与 ICS 日程安排](https://elysiatools.com/zh/hubs/calendar-recurrence-and-ics-scheduling): 跨时区规划并验证重复会议，处理工作日、节假日、冲突和 ICS 导出要求。
