操作系统:您用来访问谷歌日历的WinXP程序和版本(FF3.5):
我正在开发一个脚本(基于我在网上找到的现有vCal ASP.NET类)来生成.ics文件。在导入到Outlook 2003时,此文件可以正常工作。当我尝试导入到Google Calendar时,我得到以下错误:
无法导入事件:无法处理您的iCal/CSV文件。
我对vCal格式或语法了解不多,但在我看来一切都很好。我将在下面发布示例测试日历.ics:
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生成上述代码的源代码是mvc视图::
<%@ 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发布于 2011-01-27 10:19:25
ical feed的问题是,不同的日历对不同的事情很挑剔,而规范,至少对我来说,有点难以理解。然而,对于像我这样的程序员来说,Kanzaki在使规范清晰方面做得很好。
现在,您的ical提要也需要精确到换行符(Apple的ical不会导入末尾换行符错误的提要),我发现这3个验证器的组合效果最好:
严格的最基本的:严格的
:
最严格的验证器实际上对我有误报(即,它报告的错误实际上不是规范中的错误),但捕获了前两个没有的错误,这就是为什么我建议您运行所有三个提要。
发布于 2010-04-15 15:52:36
Ical格式规定每行的最大长度为75字节-拆分的行将在下一行重新开始,并在开头插入单个空格字符。
我一点也不确定,但我似乎记得谷歌日历预期了这一要求。
发布于 2010-11-16 00:21:57
通过这个验证器运行您的提要-- http://icalvalid.cloudapp.net/Default.aspx --会让您走很长一段路,但不是100%。我遇到了需要转义的特殊字符的其他问题。
https://stackoverflow.com/questions/2643441
复制相似问题