Calendar Import and Export

Intro

Import and export scripts are now included with the Calendar Portlet. These scripts will import and export calendar data to and from XML files. The exports include:

  • Predefined Calendar Definitions (.pcd.xml)
<predefined-calendar script="classpath:/org/jasig/portlet/calendar/io/import-PredefinedCalendarDefinition_v1-0.crn.xml">
  <fname>us_holidays</fname>
  <className>httpIcalAdapter</className>
  <name>US Holidays</name>
  <parameters>
    <parameter name="url">http://ical.mac.com/ical/US32Holidays.ics</parameter>
  </parameters>
  <!-- predefinedRoles are role-based default subscriptions to the calendar. -->
  <predefinedRoles>
    <role>everyone</role>
  </predefinedRoles>
</predefined-calendar>
  • Predefined Calendar Subscriptions (.pcs.xml)
<predefined-calendar-sub script="classpath:/org/jasig/portlet/calendar/io/import-PredefinedCalendarSubscription_v1-0.crn.xml">
  <subscribeId>student</subscribeId>
  <predefined-calendar>US Holidays</predefined-calendar>
  <!-- set displayed=false to decline subscription to a calendar (which may by default be subscribed via predefinedRoles). -->
  <displayed>true</displayed>
  <preferences/>
</predefined-calendar-sub>
  • User Defined Calendars (.ucd.xml)
<user-calendar script="classpath:/org/jasig/portlet/calendar/io/import-UserDefinedCalendar_v1-0.crn.xml">
  <subscribeId>student</subscribeId>
  <className>httpIcalAdapter</className>
  <name>Google</name>
  <displayed>true</displayed>
  <parameters>
    <parameter name="url">http://www.google.com/calendar/ical/foo/calendar.ics</parameter>
  </parameters>
</user-calendar>

Importing/Exporting Data

To import or export calendar data, you need to build the calendar portlet following the steps at Calendar Portlet Configuration. Once that's complete, run the following commands:

Export

# Calendar 2.1.1 and later
mvn -Ddir=export-directory data-export

# Pre 2.1.1
mvn antrun:run -Dexport -Ddir=export-directory

Each of the above entities (predefined calendar definitions and subscriptions, and user-defined calendars) will be exported to its own XML file.

Import

# Calendar 2.1.1 and later
mvn -Ddir=import-directory data-import

# Pre 2.1.1
mvn antrun:run -Dimport -Ddir=import-directory

The import directory provided will be scanned for all files of the above file types (.pcd.xml, .pcs.xml, .ucd.xml), and those calendar entities will be imported into the database. If an entity already exists in the database, the calendar information is updated, not duplicated.

Dropping and recreating db tables

# Calendar 2.1.1 and later
mvn db-init