iCalendar

来源:互联网 发布:dijkstra算法证明 编辑:程序博客网 时间:2024/05/19 01:59

今天想要给所有的朋友生日放到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>整个日历结束  


然后我导出了一个GoogleCalendar分析:



这是由第三方生成的农历生日代码(我把其中的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:STANDARDTZOFFSETFROM:+0800TZOFFSETTO:+0800TZNAME:CSTDTSTART:19700101T000000END:STANDARDEND:VTIMEZONEBEGIN:VEVENTDTSTART:20150430T010000ZDTEND:20150430T020000ZDTSTAMP:20150105T104344ZUID:45b5f2e905faf685ffeef8b9495f4c71@chard.comCREATED:20150105T104344ZDESCRIPTION:LAST-MODIFIED:20150105T104344ZLOCATION:SEQUENCE:0STATUS:CONFIRMEDSUMMARY:test dayTRANSP:TRANSPARENTEND:VEVENTEND:VCALENDAR
0 0
原创粉丝点击