2010-04-15 3 views
3

Операционная система: WinXP Программа и версия, которую вы используете для доступа к Google Calendar (FF3.5):ICalendar не читается в календаре Google.

Я разрабатывает сценарий (на основе существующего класса VCAL ASP.NET Я нашел в Интернете), чтобы генерировать. ics. Этот файл работает отлично при импорте в Outlook 2003. При попытке импортировать в Google Calendar, я получаю следующее сообщение об ошибке:

Не удалось импортировать события: Невозможно обработать/CSV ческих файл ..

Я не Я слишком много знаю о формате или синтаксисе vCal, но все выглядит хорошо для меня. Я выложу в испытуемый образец календаря Микросхемы ниже:

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 

ответ

0

Формат Ical говорит, что каждый line имеет максимальную длину 75 байт - перезапуск разделенных строк на следующей строке с одиночным символом пробела, вставленным в начале.

Я совсем не уверен, но, похоже, я помню календарь Google, ожидающий этого требования.

0

Запуск вашего канала через этот валидатор - http://icalvalid.cloudapp.net/Default.aspx - вам предстоит пройти долгий путь, но это не 100%. Я столкнулся с дополнительными проблемами со специальными символами, которые нужно было избежать.

13

Проблема с фиктивными каналами заключается в том, что разные календари придирчивы к разным вещам, и спецификация, по крайней мере, для меня, является чем-то трудным для подражания. Тем не менее, Kanzaki отлично справляется с тем, чтобы спецификация была понятна для таких программистов, как я.

Теперь ваш фид также должен быть точным вплоть до перерыва в новой строке (Apple не будет импортировать фиды с неправильной новой строкой в ​​конце), и я нашел комбинацию из этих 3 валидаторов для лучшей работы:

самый строгий валидатор ctually имел ложные срабатывания для меня (т. е. он сообщал о ошибках, которые на самом деле не являются ошибками в соответствии со спецификацией), но поймал некоторые ошибки, которые первые два не сделали, поэтому я бы рекомендовал запустить фид через все три из них.

+0

Большое спасибо за ответ. Этот ответ помог мне быстро решить проблему производства. –

+0

http://arnout.engelen.eu/icalendar-validator ссылка не работает. Обновите новую ссылку –

Смежные вопросы