将多个数据库记录导出到iCal或gCal

时间:2014-11-15 05:58:32

标签: calendar icalendar gcal

我正在为客户构建一个简单的计划应用程序。它允许教师为学生创建作业日历。我希望学生能够一次性将所有作业添加到他们的日历中。假设在4周的时间内有20个任务。此功能允许学生下载单个文件,或按照某个Feed,一次将所有20个作业添加到他们的日历中。

在我脑海中,这将是一个单独的iCal文件,但我不确定iCal是否以这种方式工作。或者,每个课程/course/basket-weaving-101_51/都有一个可以遵循的RSS提要/course/basket-weaving-101_51/cal/

有没有人有这方面的经验,或者可以提供指导?

2 个答案:

答案 0 :(得分:1)

是的,通过网址接受参数的一个Feed程序可用于提供您希望的任何详细程度的可订阅日历Feed。我说可以订阅,在学生级别... / student_id_or_name?feed = ics将为学生提供最方便的解决方案。他们可以订阅一次,然后随着时间的推移,他们为所有课程注册的所有课程作业都会自动显示,因为他们的日历应用会刷新Feed。

单个作业也可以提供一个'事件'的提要。但这可能应该导入他们的主日历,而不是订阅!

注意订阅与导入不同 - 您的帮助说明需要明确说明,因为用户可以使用Feed执行操作。

导入(或添加到日历)是一次性的,不会使用新的事件/作业进行更新。

订阅作为单独的日历,我发现更为可取,因为大多数日历应用程序会让您在需要时检查并取消选中日历。我订购了mykids时间表(和公众假期等),但这是一个非常繁忙的观点,所以我经常取消他们 为了更清晰的观点。

答案 1 :(得分:1)

您需要熟悉不同日历客户(outlook,webmail)对ical的处理方法,然后才能决定如何最好地定位它们。一般来说,他们有两种处理ical的方式:“接受邀请”和“订阅互联网日历”。

“接受邀请”的一大优势是,您的活动会进入用户的日历,并生成提醒等,就像用户创建了活动一样。缺点是您需要通过电子邮件一次发送一个“事件”,特别是在Outlook中,它们可能需要在它们出现在日历中之前被视为邮件。如果您发送了20个或更多作业,这可能会让收件人感觉像是垃圾邮件。

“订阅互联网日历”有点误导,因为feed饲料不是饲料。你把“整个日历”放在一个网站上,然后客户就把网站搞定了。 Outlook和Webmail客户端通常很乐意显示这些日历,但将事件“导入”到用户自己的日历中有点笨拙。默认情况下,Gmail和网络邮件会在同一网格上显示信息。 Outlook为每个日历显示一个新网格。

对于订阅方案,修改稍微复杂一些。您可能希望为受影响的学生重新生成整个日历,而在邀请方案中,您只需发送一封包含已更改事件的邮件。

即便如此,如果你有一个包含课程,学生和注册的数据库,你可以做一个很好的小应用程序,每个学生生成一个ical,用学生编号命名,并在日历文件夹中敲打它。学生订阅一次http://myuniversity.com/calendars/12345.ical,每个学期的所有作业都自动在他们的网络日历中。

请注意订阅链接。如果成千上万的学生订阅(极点)一个动态生成的日历,你将会有很多不必要的处理,很可能是一个性能问题。您希望生成静态文件,然后让您的网络服务器与客户协商是否需要重新发送。