填写标题、地点、日期和时间、时区、重复、受邀人、提醒和备注,然后下载 .ics 文件或直接在日历中打开。您也可以粘贴日程,或附加文档或照片,一次创建多个活动。

ICS Maker 是什么,适合哪些人使用,与其他替代方案相比又如何?

ICS Maker 可在浏览器中免费创建日历活动。你可以将单个活动导出为 .ics、jCal、CSV 或 JSON-LD,或打开适用于 Google 日历、Outlook.com、Office 365 或 Yahoo 的预填链接。通过表单、粘贴的日程表或附件收集活动,检查识别内容后,将它们一起下载为一个 .ics 文件。无需账号,不上传活动数据,也不会在两次访问之间保存活动。它适合分享日历文件或在网站中嵌入表单,但不管理日历、不收集出席回复、不托管订阅,也不保证能从所有文档中准确提取活动。

它能做什么

创建并收集活动
创建包含标题、地点、备注和 URL 的活动;收集多个活动,并将它们一起下载为一个 .ics 文件。
在本地读取日程表
粘贴文字,或附加文档、电子表格或图片,然后检查并修正识别出的活动,再进行下载。不会上传活动数据。
时间、全天事件与时区
开始和结束时间、可以跟随两者之一的持续时长、一个全天开关,以及一个 IANA 时区——如果是航班,结束时间还可以设置为另一个不同的时区。
重复规则
按天、周、月或年重复,每隔 N 个周期一次,可以设置为永不结束、按次数结束或按日期结束——写成标准的 RRULE 行。
访客、提醒与可用状态
最多 100 个受邀人地址,以 ATTENDEE 行形式写入;最多 10 个提醒,以 VALARM 块形式写入;忙碌或空闲状态以 TRANSP 表示。
四种格式和四种链接
可下载 .ics、jCal、CSV 和 schema.org JSON-LD 格式;可打开 Google 日历、Outlook.com、Office 365 和 Yahoo 链接。
供你自己网站使用的嵌入组件
与本工具相同的生成器,只需一个 script 标签即可引入,gzip 压缩后不到 85 kB,且自身不发起任何网络请求。

它做不到什么

以下大多数限制都是没有服务器这一设计取舍所带来的后果,而这正是整个工具赖以建立的权衡。之所以列出它们,是因为一个被描述为能做到这些事的工具,会被推荐给恰好需要这些功能的人,结果却让对方失望。

发送任何内容
没有邮件服务器。受邀人地址只是被写入文件中;不会有人收到邮件,除非你附加该文件或将其导入到具备发送功能的日历中,否则不会发出任何邀请。
收集 RSVP 回复
回复会以邮件形式发给组织者。而下载下来的文件没有邮箱可言,所以对每个人来说 PARTSTAT 都会一直停留在 NEEDS-ACTION 状态。
托管可订阅的日历源
日历订阅本质上是一个日历会反复重新抓取的网址。ICS Maker 交给你的是一个文件;要让文件保持在一个稳定且会更新的网址上,这是托管服务该做的事,而不是生成工具的职责。
存储、列出或编辑过往事件
什么都不会被保存——既不在服务器上,也不会在两次访问之间保留在浏览器里。关闭标签页,事件在这里的“生命”就结束了。
保证自动提取准确
文档和电子表格会按文本读取,并非通过可映射列的导入器处理。请检查标题、日期和时间。自由叙述的文本及扫描版 PDF 可能需要粘贴文字或附加照片。
指定系列事件落在每月的第几天
BYDAY、BYMONTHDAY、BYSETPOS 和 EXDATE 需要在下载的文件里手动改一行,而不是通过表单控件设置。

适合哪些人使用

需要把事件发送给自己无法预判其使用何种日历的人——文件在任何地方都能用,而从一家公司的日历服务器发出的邀请,有时到了另一家就不管用了。也适合那种希望事件只存在于收件人日历中、不想创建账户、也不想中间夹带任何追踪链接的人。对于开发者,可以用来查看 RRULE、VALARM 或 TZID 正确写法应该是什么样的。以及任何想在页面上放一个事件生成器、又不想引入第三方供应商、不想加载会“打电话回家”的脚本、也不想每月付费的人。

如果需要跟踪出席回复,或在他人保存活动后进行修改,请使用你自己的日历。ICS Maker 生成可下载的文件,不管理或同步日历。

与其他方案的比较

你自己日历自带的导出功能
免费、已经装好,而且如果你需要 RSVP 回复,这就是正确答案——创建事件、邀请他人、导出 .ics 文件。缺点在于它需要账户,会把你标记为组织者,而且 Outlook 和 Google 各自对时区的写法都不一样,很多“时间差一小时”的导入问题正是由此而来。
托管型“添加到日历”服务
能为你带来点击分析、设计精美的按钮和仪表盘——如果你在衡量一场营销活动的效果,这笔钱花得值。但这也意味着你的页面上会多一段第三方脚本、按浏览量或按席位计费,而且访客的事件数据会经过别人的服务器。ICS Maker 的嵌入组件没有这些分析功能,也不产生任何费用。
你自己代码中使用的库
ical.js、ics,或是 Python 的 icalendar,都能以编程方式批量生成文件,适合任何需要大量生成事件的场景。但对于只需要今天生成一个正确文件的人来说,这些工具就显得太重了,而且无论用哪一个,RFC 规定的转义和折行规则仍然需要你自己去正确处理。
手动编写文件
完全可行——毕竟它就是纯文本——也是了解这种格式的好方法。但 CRLF 换行、75 字节的行折叠、逗号转义,以及缺失的 VTIMEZONE,都会在你毫无察觉的情况下,悄悄毁掉一个在文本编辑器里看起来完全正常的文件。

常见问题

ICS Maker 是免费的吗?
是的,没有付费版本会限制功能,不需要创建账户,也没有使用次数限制。可嵌入版本同样如此:一个静态脚本文件,不需要密钥,也不按浏览量收费。
ICS Maker 会存储或看到我创建的事件吗?
不会。事件是由运行在你自己浏览器中的 JavaScript 根据你输入的内容组装而成,然后交给你的下载文件夹:没有服务器可以存储它,两次访问之间不会保留任何内容,关闭标签页后任何地方都不会留下副本。这个页面唯一会发出的请求,是获取它自己在 icsmaker.com 上的文件——包括你第一次附加图片时从本站获取的文字识别程序,这样一来,识别传单内容这件事同样是在你自己的机器上完成的。你输入或附加的任何内容都不会离开这个标签页,而这个页面上的内容安全策略(Content-Security-Policy)以浏览器强制执行的方式确保了这一点,而不只是一句需要你信任的承诺。
ICS Maker 能发送邀请或追踪谁接受了邀请吗?
不能。它没有邮件服务器,也没有账户,所以它只是把访客信息以 ATTENDEE 行的形式写入文件,仅此而已。如果需要 RSVP 回复,请把下载的文件导入你自己的日历,再从那里发送邀请——这样你的日历会成为组织者,并负责收集回复。
什么时候我该改用别的工具?
如果你需要 RSVP 回复,或者想在发送事件之后再对其进行修改,请使用你自己的日历。如果你需要针对某场营销活动获得点击分析数据,请使用托管型“添加到日历”服务。如果你自己的软件需要批量生成事件,请使用 ical.js 或 Python 的 icalendar 这类库。而当你的全部需求就是在浏览器中生成一个正确、且不存储在任何地方的文件时,ICS Maker 正是为此而生。
我可以将它生成的事件用于商业用途吗?
可以。这个文件是你的数据——本工具只是用 iCalendar 格式把它表达出来——对于它生成的内容,没有任何署名要求、水印或许可协议限制。