Event Integration: Format of iCal, RSS and ATOM feeds

As a Campus Cloud administrator, you may be asked to troubleshoot integrated calendar feeds, such as by following the steps in this FAQ:

Integrated feeds must be in the correct format to appear in the campus app. There are specific formats for (1) RSS feeds, (2) ATOM feeds, and (3) iCal feeds.

1. RSS

<?​xml version=​"1.0"​ encoding=​"UTF-8"​?>
<​rss​​xmlns:atom​=​"http://www.w3.org/2005/Atom"xmlns:content​=​"http://purl.org/rss/1.0/modules/content/"​​version​=​"2.0"​>
<​channel​>
<​title​>Test Feed</​title​>
<​link​>http://example.com/test.atom</​link​>
<​description​>feed description</​description​>
<​atom:link​​href​=​"http://example.com/test.atom"​​rel​=​"self"​ />
<​lastBuildDate​>Tue, 16 Apr 2019 14:45:15 +0000</​lastBuildDate​>
<​item​>
<​title​>Title</​title​>
<​description​>Description</​description​>
<​guid​>65c96b7f-a410-4494-b840-d5b82a5d2907</​guid​>
<​pubDate​>Tue, 16 Apr 2019 10:45:15 +0000</​pubDate​>
<​endDate​>Tue, 16 Apr 2019 11:45:15 +0000</​endDate​>
</​item​>
...
</​channel​>
</​rss​>
Each <item> tag in the feed must contain the following:
  • <title> string
  • <description> string
  • <guid> string | number. Can be replaced by <id>
  • <pubDate> datetime. Can be replaced by <start_date>, <startDate>, <start>, <startdate>, <pubdate>, <published>
  • <endDate> datetime (optional)

If more than one of the <pubDate> tags is present, we use the first and ignore the others.

If no <endDate> is provided, the default value is 3 hours from <pubDate>.

2. ATOM

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<id>2fff5f8a-39b9-4d7b-b102-28d53b28e0a2</id>
<title>Test Feed</title>
<updated>2019-04-16T14:45:15.475012+00:00</updated>
<link href="http://example.com" rel="alternate"/>
<link href="http://example.com/test.atom" rel="self"/>
<subtitle>feed description</subtitle>
<entry>
<title>Title</title>
<content>Description</content>
<id>65c96b7f-a410-4494-b840-d5b82a5d2907</id>
<published>Tue, 16 Apr 2019 10:45:15 +0000</published>
<endDate>Tue, 16 Apr 2019 11:45:15 +0000</endDate>
</entry>
</feed>

Each ​<​entry​>​ tag in the feed must contain the following:

  • <title> string
  • ​<​content​>​ string
  • <​id​>​ string | number. Can be replaced by <​guide​>
  • <​published​>​ datetime. Can be replaced by <​start_date​>, <​startDate​>, <​start​>, <startdate>,<​pubdate​>, <​published​>
  • <endDate> datetime (optional) 

If more than one of the <pubDate> tags is present, we use the first and ignore the others.

If no <endDate> is provided, the default value is 3 hours from <pubDate>.

3. iCal

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTART:20180128T003000Z
DURATION:PT3H
SUMMARY:Summary
DESCRIPTION:Description
UID:id
END:VEVENT
...

We strongly recommend following the RFC 2445 specification to format the feed.

Each <BEGIN:VEVENT> tag in the feed must contain the following:
  • <DTSTART> Datetime
  • <SUMMARY> String
  • <DESCRIPTION> String (Optional)
  • <UID> String | Number. Can be replaced by <URL>​
  • <DTEND> Datetime (Optional)
  • <DURATION> (Optional)
  • <LOCATION> String (Optional)
  • <RRULE> RRULE (Optional)