的iCalendar不是由谷歌日历可读。 [英] ICalendar not readable by google calendar.
问题描述
操作系统:WinXP中
程序和版本用于访问谷歌日历(FF3.5):
我正在开发一个脚本(基于现有的vCal ASP.NET类我在网上找到)生成的.ics文件。导入到Outlook 2003时当我尝试导入到谷歌日历这个文件完美的作品,我得到以下错误:
无法导入事件:无法处理您的iCal / CSV文件。
我不知道太多的的vCal格式或语法,但一切看起来没什么问题。我会后下面的样品测试的.ics日历:
BEGIN:VCALENDAR
PRODID: - // jpalm.se//iCalendar例如使用ASP.NET MVC // EN
版本:2.0
CALSCALE:GREGORIAN
方法:发布
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100304T000000Z
DTEND:20100304T000000Z
TRANSP:不透明
顺序:0
UID:7c9d6dd7-41f2-4171-8ae4-35820974efa4描述:UBA:Project20100321:萨格尔。摘要:第一个里程碑
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100330T230000Z
DTEND:20100330T230000Z
TRANSP:不透明
顺序:0
UID:8a982519-b99b-429A-8dad-c0f95c50d0e6描述:UBA:Project20100321:imanage2010分摘要:即将到来的里程碑
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100329T230000Z
DTEND:20100329T230000Z
TRANSP:不透明
顺序:0
UID:588750a1-6f10-4b5d-8a51-3f3818024726描述:UBA:Project20100321:萨格尔。摘要:测试
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100407T230000Z
DTEND:20100407T230000Z
TRANSP:不透明
顺序:0
UID:36eaa726-a0a0-40a1-ba7c-09857f8ed006描述:UBA:Project20100321:imanage2010分摘要:拉德应用程式开发者
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100408T125632Z
DTEND:20100408T125632Z
TRANSP:不透明
顺序:0
UID:8521ad53-916a-43cc-8eeb-42c1b3d670d3描述:UBA:Project20100321:imanage2010分摘要:这是一个测试毫秒
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100415T125643Z
DTEND:20100415T125643Z
TRANSP:不透明
顺序:0
UID:e4b295d8-2271-4393-9899-3e9c858f4e8c描述:UBA:Project20100321:imanage2010分摘要:测试msssss
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100430T055201Z
DTEND:20100430T055201Z
TRANSP:不透明
顺序:0
UID:1e464698-1064-4cb2-8166-2a843b63ca5a描述:UBA:Project20100321:imanage2010分摘要:这是在4月30日测试的新里程碑
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100731T093917Z
DTEND:20100731T093917Z
TRANSP:不透明
顺序:0
UID:5262ef58-73bc-4d66-a207-4e884e249629描述:UBA:Project20100321:imanage2010分摘要:555555555555555555
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100328T230000Z
DTEND:20100328T230000Z
TRANSP:不透明
顺序:0
UID:f654262d-714e-41d9-9690-005bb467f8aa描述:UBA:无题项目:imanage2010分摘要:第一个里程碑
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100401T095537Z
DTEND:20100401T095537Z
TRANSP:不透明
顺序:0
UID:3f4a6c16-f460-457d-A281-b4c010958796描述:UBA:ProjectIcal:imanage2010分摘要:新的MS的iCal
END:VEVENT
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100331T230000Z
DTEND:20100331T230000Z
TRANSP:不透明
顺序:0
UID:e5bf28d1-3559-48e9-90f8-2b5233489a13描述:UBA:ProjectIcal:imanage2010分摘要:新的MS 2的iCal
END:VEVENT
END:VCALENDAR
和产生上述code的来源是什么,但MVC视图:
<%@导入命名空间=iManageProjectPM.Controllers%GT;
<%@页面语言=C#继承=System.Web.Mvc.ViewPage<&的iCalendar GT;%GT;
BEGIN:VCALENDAR
版本:2.0<%,如果(Model.Events.Count→1)
{%GT;
CALSCALE:GREGORIAN
方法:发布<%}%GT;
X-MS-白斑-FORCEINSPECTOROPEN:TRUE
<%的foreach(在Model.Events VAR EVNT){%GT;
BEGIN:VEVENT
DTSTART&所述;%= Model.GetTimeString(evnt.StartTime)%GT;
DTEND&所述;%= Model.GetTimeString(evnt.EndTime)%GT;
TRANSP:不透明
顺序:0
UID:LT;%= evnt.UID%GT;
说明:其中;%= evnt.Desc%GT;
发明内容:其中;%= evnt.Title%GT;
END:VEVENT<%}%GT;
END:VCALENDAR
与iCal问题反馈是不同的日历是挑剔不同的东西,而规范是,至少对我来说,有种难以效仿。但是,神崎做了伟大的工作,使该规范明确了像我这样的程序员。
现在,您的iCal饲料也需要精确到换行分隔符(苹果的iCal将在末尾错换行不进口饲料),我发现这3个验证器的组合效果最好:
- 最基本的: http://severinghaus.org/projects/icv/?url=一>
- 更好地: http://icalvalid.cloudapp.net/Default.aspx
- 最严格的: http://ical-validator.herokuapp.com/validate/
最严格的验证竟然出现了假阳性对我来说(例如,它报道说,实际上不是按照规范的错误错误),但抓住了一些错误前两个都没有,这就是为什么我会建议你运行饲料通过他们三个。
Operating system : WinXP Program and version you use to access Google Calendar (FF3.5):
I'm developing a script (based on an existing vCal ASP.NET class I found online) to generate an .ics file. This file works perfectly when importing to Outlook 2003. When I try to import to Google Calendar, I get the following error:
Failed to import events: Unable to process your iCal/CSV file..
I don't know too much about the vCal format or syntax, but everything looks fine to me. I'll post the sample test calendar .ics below:
BEGIN:VCALENDAR
PRODID:-//jpalm.se//iCalendar example with ASP.NET MVC//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100304T000000Z
DTEND:20100304T000000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:7c9d6dd7-41f2-4171-8ae4-35820974efa4
DESCRIPTION:uba:Project20100321:sagar .
SUMMARY:First Milestone
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100330T230000Z
DTEND:20100330T230000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:8a982519-b99b-429a-8dad-c0f95c50d0e6
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:upcoming milestones
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100329T230000Z
DTEND:20100329T230000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:588750a1-6f10-4b5d-8a51-3f3818024726
DESCRIPTION:uba:Project20100321:sagar .
SUMMARY:test
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100407T230000Z
DTEND:20100407T230000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:36eaa726-a0a0-40a1-ba7c-09857f8ed006
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:Rad apps devs
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100408T125632Z
DTEND:20100408T125632Z
TRANSP:OPAQUE
SEQUENCE:0
UID:8521ad53-916a-43cc-8eeb-42c1b3d670d3
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:this is a test ms
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100415T125643Z
DTEND:20100415T125643Z
TRANSP:OPAQUE
SEQUENCE:0
UID:e4b295d8-2271-4393-9899-3e9c858f4e8c
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:Test msssss
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100430T055201Z
DTEND:20100430T055201Z
TRANSP:OPAQUE
SEQUENCE:0
UID:1e464698-1064-4cb2-8166-2a843b63ca5a
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:this is a new milestones for testing on 30th april
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100731T093917Z
DTEND:20100731T093917Z
TRANSP:OPAQUE
SEQUENCE:0
UID:5262ef58-73bc-4d66-a207-4e884e249629
DESCRIPTION:uba:Project20100321:imanage2010 pm
SUMMARY:555555555555555555
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100328T230000Z
DTEND:20100328T230000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:f654262d-714e-41d9-9690-005bb467f8aa
DESCRIPTION:uba:Untitled project:imanage2010 pm
SUMMARY:first milestone
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100401T095537Z
DTEND:20100401T095537Z
TRANSP:OPAQUE
SEQUENCE:0
UID:3f4a6c16-f460-457d-a281-b4c010958796
DESCRIPTION:uba:ProjectIcal:imanage2010 pm
SUMMARY:new ms ical
END:VEVENT
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VEVENT
DTSTART:20100331T230000Z
DTEND:20100331T230000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:e5bf28d1-3559-48e9-90f8-2b5233489a13
DESCRIPTION:uba:ProjectIcal:imanage2010 pm
SUMMARY:new ms 2 ical
END:VEVENT
END:VCALENDAR
And the source for generating the above code is which is nothing but the mvc view::
<%@ Import Namespace ="iManageProjectPM.Controllers" %>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<iCalendar>"%>
BEGIN:VCALENDAR
VERSION:2.0<%if (Model.Events.Count > 1)
{%>
CALSCALE:GREGORIAN
METHOD:PUBLISH<%}%>
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
<%foreach(var evnt in Model.Events){%>
BEGIN:VEVENT
DTSTART<%=Model.GetTimeString(evnt.StartTime)%>
DTEND<%=Model.GetTimeString(evnt.EndTime)%>
TRANSP:OPAQUE
SEQUENCE:0
UID:<%=evnt.UID%>
DESCRIPTION:<%=evnt.Desc%>
SUMMARY:<%=evnt.Title%>
END:VEVENT<%}%>
END:VCALENDAR
The problem with ical feeds is that different calendars are picky about different things, and the spec is, at least for me, kind of hard to follow. However, Kanzaki does a great job of making the spec clear for programmers like me.
Now, your ical feed also needs to be exact down to the newline break (Apple's ical won't import feeds with the wrong newline at the end) and I've found a combination of these 3 validators to work best:
- most basic: http://severinghaus.org/projects/icv/?url=
- better: http://icalvalid.cloudapp.net/Default.aspx
- most strict: http://ical-validator.herokuapp.com/validate/
The most strict validator actually had false positives for me (ie, it reported errors that actually aren't errors according to the spec), but caught some errors the first two didn't, that's why I would recommend running your feed through all three of them.
这篇关于的iCalendar不是由谷歌日历可读。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!