今天想要给所有的朋友生日放到GoogleCalendar上,但是奈何我身边(包括我自己)好多人过得都是农历生日。Google的日历设计的还是不错的,可惜没有农历循环。网上找了一下,找到一个ics文件生成软件可以给2039年以前的农历解决了。
好奇心驱使,看了一眼ics文件。并没有什么难得。但是资料很少。到处找了找,又导出了自己的日历对比研究。
BEGIN:VCALENDAR<span style="white-space:pre"> </span>iCalendar开始
PRODID:-//Google Inc//Google Calendar 70.9054//EN 产品编号 Product Identifier
VERSION:2.0 <span style="white-space:pre"> </span>版本号
CALSCALE:GREGORIAN <span style="white-space:pre"> </span>大概理解成日历的规格 采用了 Grogorian 格利高里历法(公历)
METHOD:PUBLISH <span style="white-space:pre"> </span>日历之间的关联方法 看到其他的地方有用 METHOD:REQUEST 来表明是一个请求
X-WR-CALNAME:test <span style="white-space:pre"> </span>X-表明这是一个私有扩展 在GoogleCalendar这里应该是指所属的日历
X-WR-TIMEZONE:Asia/Shanghai <span style="white-space:pre"> </span>时区
X-WR-CALDESC: <span style="white-space:pre"> </span>日历的描述
BEGIN:VEVENT <span style="white-space:pre"> </span>事件开始声明
DTSTART;VALUE=DATE:20150105 <span style="white-space:pre"> </span>DTSTART <span style="white-space:pre"> </span>开始时间
<span style="white-space:pre"> </span>DTSTART;VALUE=DATA:表明此事件是全天事件 非全天时间见下test3
<span style="white-space:pre"> </span>默认应该是'YYYY/MM/DD'T'HHMMSS'Z 也就是年月日T时分秒Z 注意这里的时间是国际标准时 没有算入时区
DTEND;VALUE=DATE:20150106 <span style="white-space:pre"> </span>结束时间<span style="white-space:pre"> </span>规则同上
DTSTAMP:20150105T032918Z<span style="white-space:pre"> </span>时间戳<span style="white-space:pre"> </span>生成整个文件的时间
UID:2i5jvr2c9h6v9q4u7dk73uh20o@google.com<span style="white-space:pre"> </span>UID<span style="white-space:pre"> </span>不同管理软件之间通讯的时候,描述一个事件的唯一识别符
CREATED:20150105T032811Z<span style="white-space:pre"> </span>创建时间<span style="white-space:pre"> </span>创建事件的时间
DESCRIPTION:<span style="white-space:pre"> </span>事件描述
LAST-MODIFIED:20150105T032811Z<span style="white-space:pre"> </span>最后编辑时间
LOCATION:<span style="white-space:pre"> </span>地点
SEQUENCE:0<span style="white-space:pre"> </span>日历组件版本号
STATUS:CONFIRMED<span style="white-space:pre"> </span>状态
SUMMARY:test1 <span style="white-space:pre"> </span>事件名
TRANSP:TRANSPARENT <span style="white-space:pre"> </span>状态为有空 <span style="white-space:pre"> </span>TRANSP:OPAQUE 没空 忙碌
END:VEVENT <span style="white-space:pre"> </span>事件结束声明
BEGIN:VEVENT
DTSTART;VALUE=DATE:20150106
DTEND;VALUE=DATE:20150108<span style="white-space:pre"> </span>注意这里是一个跨两天的事件 从6日到8日
DTSTAMP:20150105T032918Z
UID:vfj8tsjndpg0tou5fl589r2cqc@google.com
CREATED:20150105T032821Z
DESCRIPTION:
LAST-MODIFIED:20150105T032821Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test 2
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
DTSTART:20150108T020000Z<span style="white-space:pre"> </span>这里是一个 DateTime格式的时间 是8日 10点到12点的事件
DTEND:20150108T040000Z
DTSTAMP:20150105T032918Z
UID:m3f6n4p5hb2najkspdhdffb1vg@google.com
CREATED:20150105T032830Z
DESCRIPTION:
LAST-MODIFIED:20150105T032830Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test3
TRANSP:OPAQUE
END:VEVENT<span style="white-space:pre"> </span>事件结束
END:VCALENDAR<span style="white-space:pre"> </span>整个日历结束
这是由第三方生成的农历生日代码(我把其中的UID更改了一下):
BEGIN:VCALENDAR<span style="white-space:pre"> </span>开始声明
PRODID:-//Google Inc//Google Calendar 70.9054//EN<span style="white-space:pre"> </span>产品编号
VERSION:2.0<span style="white-space:pre"> </span>版本号
CALSCALE:GREGORIAN<span style="white-space:pre"> </span>历法
METHOD:PUBLISH<span style="white-space:pre"> </span>关联方法
X-WR-CALNAME:eva330680229@gmail.com<span style="white-space:pre"> </span>日历名称
X-WR-TIMEZONE:Asia/Shanghai<span style="white-space:pre"> </span>时区
BEGIN:VTIMEZONE<span style="white-space:pre"> </span>注意这里下面是一段代码来描述时区
TZID:Asia/Shanghai<span style="white-space:pre"> </span>时区名
X-LIC-LOCATION:Asia/Shanghai<span style="white-space:pre"> </span>时区地址
BEGIN:STANDARD
TZOFFSETFROM:+0800
TZOFFSETTO:+0800
TZNAME:CST
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART:20150430T010000Z
DTEND:20150430T020000Z
DTSTAMP:20150105T104344Z
UID:45b5f2e905faf685ffeef8b9495f4c71@chard.com
CREATED:20150105T104344Z
DESCRIPTION:
LAST-MODIFIED:20150105T104344Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test day
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR