如何与Ruby的CalDAV服务器进行交互?

时间:2011-07-05 15:49:52

标签: ruby-on-rails ruby api caldav

我需要在Ruby(Rails为精确)应用程序中使用CalDAV在日历服务器上创建事件。我看了一些不同的图书馆并做了一些谷歌搜索。

我看了ri-cal(http://ri-cal.rubyforge.org/rdoc/)但不确定它是否支持将数据发送到服务器,或者我是否必须自己做,

这看起来很有希望http://www.local-guru.net/blog/pages/rubycaldav,但它说它是alpha软件,我需要一些稳定的东西。

最好的方法是什么?是否有任何库已经执行此操作,我是否需要形成自己的HTTP请求?

关于这个问题的任何建议都已被提出

4 个答案:

答案 0 :(得分:8)

我最终在http://www.local-guru.net/blog/pages/rubycaldav

使用了这个库

我必须使用SSL调整它,并正确使用UUID库,正确格式化日期并使用全天事件。因为我只需要创建和销毁所有我更新的事件。我计划在有空的时候做更多事情。

我的更新代码可以在https://github.com/loosecannon93/ruby-caldav找到。

我遇到的问题是提供格式错误的日期和缺少UUID。

GitHub上的caldavtest.rb文件是我以前工作的

我遇到的另一个复杂问题是,Zimbra(服务器)有两条路径,一条用于ICS文件,只读/home/user@host/Calender一条,另一条用于CalDAV /dav/user@host/Calendar

我希望有人可以找到这个解决方案的帮助。

然而,Ruby缺乏cladav实现。有ICS库形成对象,但只有纯Net :: HTTP与服务器交互。本地大师是我发现的唯一可以双向工作的红宝石,但它需要一些小问题的帮助。

我修复了其中一些但不是项目范围,我只是必须让它工作。但如果有人愿意捐款,我很乐意提供帮助。

答案 1 :(得分:2)

我最喜欢检查可能选项的地方之一是Ruby Toolbox。这将是我要检查的第一个地方之一。

我还会检查github,它会产生this result,这可能是你最好的选择,而且正是你想要的。

至于回答你的其他问题,我可能会在看了this postthis code之后再推出自己的问题。

所以,长期答案严重缩短,是的,有些图书馆已经完成了你想要做的事情,但如果是我,我会推出自己的解决方案来解决这个问题。

答案 2 :(得分:0)

你是在Google上托管你的日历吗?如果你是,那么看一下:https://github.com/northworld/google_calendar

答案 3 :(得分:0)

我们已经使用caldav4j,因为我们的应用程序部署在JRuby中。不知道那是否适合你。