从网址添加.ics到Google日历只会显示“忙碌”#39;

时间:2017-09-26 20:20:26

标签: calendar google-calendar-api icalendar

我正在开发一个Web应用程序,它在Web空间上动态分发几个.ics文件。所以现在我试图从邮件客户端,如macOS日历应用程序,Outlook或Google日历中观察那些.ics文件。除谷歌日历外,所有内容都完美无缺:

如果我尝试从网址(here)导入日历,我只会显示“忙碌”字样。作为每个事件的主题(example)。这是一个奇怪的问题,因为它在所有其他应用程序中都像魅力一样。如果我下载当前的.ics文件并静态导入它也可以正常工作。 (所以这可以只是一个.ics内容问题)

好吧,我已经查看了几个相关的问题/问题(见下),但没有提供有能力/正确的解决方案。

有趣的是(最后一个相关的问题让我想到了这一点):

如果我将路径和名称重新排列为以下内容,

有效

https://myurl.net/calendar.ics

如果我使用以下某些模式,无效

https://myurl.net/ccalendar.ics
https://myurl.net/foo/calendar.ics

我也在谷歌日历论坛上发布了这个问题,但建议在这里发帖。

提前感谢您的帮助!

此致

相关:

2 个答案:

答案 0 :(得分:0)

尝试使用此SO post中提供的解决方案:

  

我提供的日历网址GCal没有以文件名结尾(我   使用带有URL重写的PHP框架)。我更新了URL,附加了   " /calendar.ics"它并订阅了GCal中的URL,现在全部   事件似乎显示正常,显示所有细节。

答案 1 :(得分:0)

经过一些实验后,我决定使用谷歌上发现的ICS validator。它显示URL结果的MIME类型可能配置错误(text/plain应为text/calendar)。 在访问https://myurl.net/foo/bar.ics等网址并查看普通.ics文件内容而不是下载此文件时,我已经注意到了这一点。这似乎取决于浏览器,一些浏览器会自动正确解释此类型,但Google似乎没有。

但是:我的应用程序WEB-INF中有一个名为 web.xml 的配置文件。我手动为以* .ics:

结尾的文件定义了MIME类型
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
    ...     
    <mime-mapping>
        <extension>ics</extension>
        <mime-type>text/calendar</mime-type>
    </mime-mapping>
</web-app>

现在,即使Google日历也能识别整个日历内容,而与其分发的网址无关。

修改

好的,经过紧张的测试后,任何日历都没有问题,所以这似乎是我的解决方案。 Outlook,macOS日历应用程序和Mozilla Thunderbird似乎正确地猜测 MIME类型,Google没有。