一张活动表已经写清日期和时间,接下来可以让 AI 把它整理成日历能读取的 .ics 文件。这篇用三场虚构活动练习:先核对时间,再保存文件,最后由你手动导入独立的 Google 测试日历。你会遇到两个最容易看错的地方:早晨活动换成 UTC 后落到前一天,以及全天活动的结束日期要写到最后一天的次日。
验证说明:资料核查于 2026 年 10 月 17 日,供 10 月 18 日教程使用。本文参考文件已做本地静态检查;没有登录 Google 账号,也没有实际导入。下面的日历显示是验收目标,不能当作实测成功记录。
1. 准备电脑和测试账号,先留住主日历
需要一台电脑、能正常使用 Google 日历的已有账号、一款能输出纯文本的 AI,以及可保存 UTF-8 文本的编辑器。网页导入路径以电脑端为准。只有手机,或者只是记一项活动时,手动录入往往更直接。
- 费用:本文不要求购买付费 AI、日历 API 或文件转换器。你所用 AI 的额度、附件下载能力和收费方式,以该产品页面为准;不能下载附件也能继续做。
- 权限:无需把日历账号连接给 AI。AI 只整理文件,你自己决定是否导入、导入哪个日历。
- 隐私:全程使用下方虚构内容。ICS 是可读文本,真实客户名单、私人地址和未公开安排不应随手交给 AI 或陌生转换网站。
- 账号选择:优先用个人账号建立不共享的练习日历。Google 说明,个人 Gmail 账号的日历内容在未共享时对他人私有;工作或学校账号的管理员可能可以查看。参见官方隐私说明。
这次练习的价值是学会一套可重复核对的方法,不保证处理三条活动一定比手填更快。
2. 把完整输入交给 AI,先要核对清单
把下面两段依次发给同一个 AI。第一段规定输出方式,第二段是完整活动资料。缺日期、时区或结束时间时,应先补齐,不能让 AI 根据标题猜。
第一段:生成要求。
请把我下一条消息中的 3 项虚构活动,整理成供我手动导入 Google 测试日历的 creator-workshops-demo.ics。 不要访问账号、写入日历、邀请任何人或创建会议链接。资料有歧义就先提问。 先输出核对清单:标题、UTC+8 开始与结束、时长或全天覆盖日期、转换后的文件时间。等我确认,再生成文件。 文件要求: 1. 遵循 RFC 5545。包含 VCALENDAR、VERSION:2.0、PRODID,以及恰好 3 个 VEVENT。每项有唯一 UID、UTC 格式 DTSTAMP、DTSTART、DTEND、SUMMARY、LOCATION、DESCRIPTION。 2. 两项定时活动换算成 UTC,使用 YYYYMMDDTHHMMSSZ。不要在时间后拼 +0800,也不要使用无时区的浮动时间。全天活动用 VALUE=DATE,DTEND 写最后活动日的次日。 3. 使用 UTF-8 纯文本和 CRLF 换行。超过 75 字节的内容行按规范折行,不拆开 UTF-8 字符。文本值里的英文逗号、分号、反斜杠和换行须正确转义。 4. 不写 METHOD、ATTENDEE、ORGANIZER、VALARM、RRULE 或 DURATION。每项加 CLASS:PRIVATE 和 TRANSP:TRANSPARENT,仅表达本次私有练习及不占忙碌时间的意图,不代表账号权限或通知设置已生效。 5. 仅为复现本练习:DTSTAMP 固定为 20261017T000000Z。三项 UID 依次使用: 798c64ce-760e-4f12-bafd-c572ba6446a1 9c4c748d-99cd-41d4-956e-22d6d1361a95 b9671a54-c590-430a-b6cc-38dca0c1b88c 同一练习的修订版保留 UID;新的实际活动须另用新 UID 和真实生成时间。 6. 交付后单独报告活动数、两项定时活动的分钟数、全天覆盖日期,以及实际做过的检查。没做真实导入,就明确写没做。 7. 如果不能提供下载文件,请说明,并给出完整 ICS 正文供纯文本保存。正文内不要混入 Markdown 围栏、说明文字或 HTML。
第二段:虚构活动资料。
以下 3 项活动完全虚构,仅用于日历导入练习,不是真实报名信息。 统一时间基准:UTC+8(本练习按 Asia/Shanghai 核对),全部采用 24 小时制。 1. 练习-短视频分镜工作坊 日期:2026-10-20 开始:19:30 结束:21:00 地点:虚构线上教室A 备注:虚构活动,仅供日历导入练习。 2. 练习-晨间收音练习 日期:2026-10-22 开始:07:30 结束:08:15 地点:虚构线上教室B 备注:虚构活动,仅供日历导入练习。 3. 练习-周末创作营 日期:2026-10-24 至 2026-10-25,首尾两天都参加 全天:是 地点:虚构创作空间C 备注:虚构活动,仅供日历导入练习。 不含真实人员、邮箱、电话、地址或会议链接;没有邀请对象。
3. 对照三项结果,特别检查跨日和全天边界
不要只看 AI 写了“已检查”。将它的清单与以下结果逐条比对:
- 短视频分镜工作坊:UTC+8 的 2026 年 10 月 20 日 19:30–21:00,共 90 分钟。文件开始为
20261020T113000Z,结束为20261020T130000Z。 - 晨间收音练习:UTC+8 的 2026 年 10 月 22 日 07:30–08:15,共 45 分钟。文件开始为
20261021T233000Z,结束为20261022T001500Z。 - 周末创作营:10 月 24 日、25 日两天全天。文件开始为
DTSTART;VALUE=DATE:20261024,结束为DTEND;VALUE=DATE:20261026。它仍然只算一项活动。
Z 表示 UTC。本例把 UTC+8 时刻减去 8 小时,因此 10 月 22 日早上 07:30 会变成 UTC 的 10 月 21 日 23:30;在 UTC+8 日历中,它仍应落在 22 日早晨。直接把本地的 07:30 后面加上 Z 会写错时刻,而把 +0800 拼在这种时间值末尾也不符合本格式。依据是 RFC 5545 的日期时间规定。
全天活动的 DTEND 是不包含在活动内的结束边界。24、25 日参加,所以边界写 26 日;若写 25 日,会少覆盖一天。不必改成“00:00–23:59”。参见 RFC 5545 的活动结束边界。

清单全部正确后,再发:
清单与预期一致,请按前述要求生成 creator-workshops-demo.ics。仍然只生成文件,不连接或操作任何账号。请把实际完成的检查写在文件正文之外。
4. 保存纯文本文件,用完整参考内容复核
如果 AI 提供附件,下载后先用纯文本编辑器打开;如果只有文本,只复制 ICS 正文保存为 creator-workshops-demo.ics。选择 UTF-8 编码,编辑器可设置换行类型时选 CRLF,检查真实文件名没有变成 .ics.txt。不要把 Word 文档直接改后缀,也不要把解释文字或代码围栏一起存进去。
下方是完整参考正文,可以直接用于本练习。页面复制不保证保留原文件的 CRLF 换行,应在编辑器里检查保存设置。首行应为 BEGIN:VCALENDAR,末行应为 END:VCALENDAR:
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//01010 Tutorial//Calendar Practice//ZH CALSCALE:GREGORIAN BEGIN:VEVENT UID:798c64ce-760e-4f12-bafd-c572ba6446a1 DTSTAMP:20261017T000000Z DTSTART:20261020T113000Z DTEND:20261020T130000Z SUMMARY:练习-短视频分镜工作坊 LOCATION:虚构线上教室A DESCRIPTION:虚构活动,仅供日历导入练习。 CLASS:PRIVATE TRANSP:TRANSPARENT END:VEVENT BEGIN:VEVENT UID:9c4c748d-99cd-41d4-956e-22d6d1361a95 DTSTAMP:20261017T000000Z DTSTART:20261021T233000Z DTEND:20261022T001500Z SUMMARY:练习-晨间收音练习 LOCATION:虚构线上教室B DESCRIPTION:虚构活动,仅供日历导入练习。 CLASS:PRIVATE TRANSP:TRANSPARENT END:VEVENT BEGIN:VEVENT UID:b9671a54-c590-430a-b6cc-38dca0c1b88c DTSTAMP:20261017T000000Z DTSTART;VALUE=DATE:20261024 DTEND;VALUE=DATE:20261026 SUMMARY:练习-周末创作营 LOCATION:虚构创作空间C DESCRIPTION:虚构活动,仅供日历导入练习。 CLASS:PRIVATE TRANSP:TRANSPARENT END:VEVENT END:VCALENDAR
这份参考原文件共 3 个活动、3 个不同的 UID,UTF-8 无 BOM、CRLF 换行,大小 1,023 字节,最长内容行 54 字节。静态检查确认两项时长为 90 和 45 分钟,全天覆盖两天;它没有经过完整 RFC 解析器测试或 Google 实际导入测试。你重新复制保存的文件也需要检查,不能直接继承原文件的检测结论。
短样例不需要自己折中文长行。若以后增加长备注,应让生成工具按 RFC 的内容行规则处理;本练习不要求安装任何校验工具。
5. 建立独立日历,检查共享权限和默认提醒
先不要双击 ICS 后一路确认,系统可能在另一款日历应用中打开它。请在电脑浏览器进入 Google 日历,确认当前是准备做练习的账号。
- 在左侧“其他日历”旁点击“+”,选择“创建新日历”,命名为“AI 导入练习 2026-10-18”。官方路径见创建新日历。
- 在这本日历的“设置和共享”中,将时区设为 UTC+8 对应的上海时区,并检查访问权限:不要公开,不开组织范围共享,也不要添加共享对象。权限选项以Google 共享设置说明和你的实际界面为准。
- 查看这本测试日历的“活动通知”和“全天活动通知”,按需要移除练习用的默认提醒。只调整测试日历,不要顺手改主日历。参见通知设置说明。
这里的导入会真实写入账号。独立测试日历只是把练习事件隔开,不是只读预览。文件里的 CLASS:PRIVATE 也不能替你关闭公开或共享权限;这点需要在界面确认,规范本身同样说明隐私分类不能强制执行访问控制。
文件没有提醒字段,并不保证平台不会使用日历的默认提醒。“没有邀请别人”和“自己不会收到提醒”是两项不同的检查。
6. 明确选中目标,只导入一次并逐条验收
进入“设置 → 导入和导出 → 从计算机中选择文件”,选中保存的 ICS。把目标日历改成“AI 导入练习 2026-10-18”,再核对一次名称,最后点击一次“导入”。Google 官方说明默认目标是主日历,因此这一步不能跳过。网页导入不会带入邀请对象和会议数据,详见官方导入步骤。本样例也没有填写参会邮箱或会议链接。
回到 2026 年 10 月 20–26 日,只显示测试日历,逐条打开详情。注意,日历自己的时区与当前网格显示时区是不同的核对点:若你的界面主要时区不是 UTC+8,可在“设置 → 常规 → 时区”添加 UTC+8 辅助时区,按该列读定时活动;如临时改主要时区,先记下原值,验收后恢复。参见官方时区设置。
- 正好 3 项,标题、地点和备注与输入一致,没有 AI 自行添加的内容。
- 工作坊在 UTC+8 的 10 月 20 日 19:30–21:00;收音练习在 10 月 22 日 07:30–08:15。
- 全天创作营覆盖 10 月 24、25 日,不覆盖 26 日。
- 每项详情中的所属日历都是测试日历;主日历未新增这三项。
- 没有邀请对象、凭空生成的会议链接、重复条目或未留意的提醒;测试日历没有对外共享。
- 在详情中核对忙闲状态为“空闲/Free”。
TRANSP:TRANSPARENT表达本次练习不占忙碌时间的意图,依据是 RFC 的忙闲语义;字段本身不能证明导入器已经按此显示。若界面不符,这项验收就没有通过。
把实际看到的结果记下来,尚未检查的项目留空,别直接填“通过”:
测试日历名称: 导入日期: 实际活动数量: UTC+8 工作坊开始/结束: UTC+8 收音练习开始/结束: 全天覆盖日期: 所属日历、共享、邀请对象、提醒和忙闲状态: 未通过项及处理:
如果出现发送邀请的提示,先取消,检查是否进入了另一个创建或邀请流程。此练习无需输入任何人的邮箱。
7. 出错先查已有结果,别靠反复导入碰碰运气
- 提示处理了 0 项:先查看目标日历和对应日期。Google 的故障说明指出,第一次已经导入、第二次再点时可能因为没有新活动而显示零项,不能据此判定从未成功。
- 只出现 1 项或 2 项:保留原文件和报错,找到缺失活动,核对它的开始、结束、UID 和成对的
BEGIN:VEVENT/END:VEVENT。修正后另建空白的“v2”测试日历验收。 - 差 8 小时或跨错一天:先分清是界面显示时区,还是文件把本地时刻直接写成了 UTC。显示时区不对时无需重新导入;文件值确实错了,再重新生成并核对。
- 全天少一天或多一天:回查
VALUE=DATE和结束边界。目标始终是 24、25 日两天,不要靠手动拖动事件掩盖源文件问题。 - 乱码或格式失败:检查 UTF-8、实际扩展名、完整首尾,以及是否混入富文本、HTML 或解释文字。不要将真实日程上传到随机“修复”网站。
- 出现重复或导入结果不明:停止再点导入,先确认已有条目。同一练习修订版保留 UID,但不要把它当作 Google 网页一定会覆盖旧事件或自动去重的保证。
- 误入主日历:立即停止。逐条核对这次的虚构事件后再处理,不要清空主日历、批量删除旧安排或永久删除整本日历来重试。
零项、部分导入和格式错误的产品说明可查Google 导入故障排查。另建空白测试日历是本教程的隔离建议,不代表平台提供自动回滚。
验收结束后,保留 ICS、原始输入和检查记录,把练习日历取消勾选或隐藏即可;隐藏不等于删除。ICS 导入是一份副本,日后改动原活动表不会自动更新日历,见Google 对导入与同步的说明。只有当数量、时间、全天跨度和目标日历都对得上,你才算完成了这次练习。