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

Calendar 将多个数据库记录导出到iCal或gCal,calendar,icalendar,gcal,Calendar,Icalendar,Gcal,我正在为客户端构建一个简单的调度应用程序。它允许教师为学生创建作业日历。我想让学生能够一次将所有作业添加到日历中。假设在4周内有20项作业。该功能允许学生下载单个文件,或按照某个提要一次将所有20个作业添加到他们的日历中 在我看来,这将是一个单一的iCal文件,但我不确定iCal是否可以这样工作。或者,每个课程都会有一个RSS提要,可以遵循 是否有人对此有经验,或者可以提供指导?是的,一个通过url接受参数的提要程序可以用于提供您希望的任何详细级别的可订阅日历提要。我说可以订阅,在学生级别上/s

我正在为客户端构建一个简单的调度应用程序。它允许教师为学生创建作业日历。我想让学生能够一次将所有作业添加到日历中。假设在4周内有20项作业。该功能允许学生下载单个文件,或按照某个提要一次将所有20个作业添加到他们的日历中

在我看来,这将是一个单一的iCal文件,但我不确定iCal是否可以这样工作。或者,每个课程都会有一个RSS提要,可以遵循


是否有人对此有经验,或者可以提供指导?

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

单个任务也可以提供一个“事件”的提要。但这可能应该导入到他们的主日历中,而不是订阅

注:订阅与导入不同-您的帮助说明需要明确说明这一点,因为这取决于用户如何处理提要

导入(或添加到日历)是一次性的,不会随新事件/工作分配更新

作为一个单独的日历订阅我觉得更可取,因为大多数日历应用程序会让一个检查和取消检查日历,因为你需要它们。我已经订阅了我的孩子们的时间表(以及公共假期等),但这是一个非常繁忙的视图,所以我经常只是解开它们
以获得更清晰的视图。

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

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

“订阅互联网日历”有点误导,因为ical提要不是提要。你把“整个日历”放在一个网站上,客户就可以访问该网站。Outlook和webmail客户端通常乐于显示这些日历,但将事件“导入”到用户自己的日历中有点笨拙。默认情况下,Gmail和webmail在同一个网格上显示信息。Outlook为每个日历显示一个新的网格

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

即便如此,如果你有一个包含课程、学生和注册情况的数据库,你可以制作一个很好的小应用程序,为每个学生生成一个ical,用学生号命名,然后将其放入日历文件夹中。学生订阅一次,每个学期他们的所有作业都会自动出现在他们的网络日历中


小心订阅链接。如果数以万计的学生订阅(pole)一个动态生成的日历,您将需要进行大量不必要的处理,而且很可能会让您的性能头疼。您希望生成静态文件,然后让您的Web服务器与客户端协商是否需要重新发送这些文件。

这听起来正是我想要的。根据讲师所做的更改更新日历项目的能力非常吸引人。所以你认为一个可订阅的日历可以让学生“导入”多个课程?我在这里使用导入这个通用术语。是的,当然,在为学生日历提要选择事件时,您必须具有正确的逻辑。大多数日历应用程序都允许用户订阅并定期刷新日历。如果您导入事件,则不会发生刷新,这就好像您创建了自己的副本一样。你可以很快用谷歌日历或你的智能手机来证明这个概念。听起来你在第五段中的建议就是我想要的。ical文件可以根据请求动态生成,也可以在触发某些事件后生成,然后缓存到服务器上。无论哪种方式,用户都能得到他们想要的。我想这就是我想要走的方向。生成iCal文件非常简单吗?它只是XML,对吗?就订阅链接而言,这是一个全新的应用程序,专为客户向大学推销而构建。缩放是一个问题,我们至少在几个月内不会有几个。您可以缓存学生ics源(其唯一URL),只有在发生更改时才进行更新,以避免日历应用“轮询”ics源时进行额外的不必要的处理。我同意发送邀请感觉像垃圾邮件,并不是每个人都知道如何“接受”邀请——即使谷歌日历通过gmail将邀请发送到另一个谷歌邮件帐户,它也不总是能顺利工作。