Skip to main content
Skip table of contents

iCalendar

This adapter creates an iCalendar event from an adapter-specific XML document according to RFC 5545 or converts an iCalendar text document into an XML document. In addition, a POP/SMTP adapter can be dynamically parameterized so that an iCalendar event (e.g., an appointment invitation) is sent as an attachment to an e-mail.

Properties

Operation

Determines which operation the adapter executes

Possible values:

  • iCal To XML: Convert iCal text document to XML

  • XML To iCal: Convert adapter-specific XML structure to an iCalendar text document.

  • Create iXmap for E-Mail Adapter: Output iXmap XML structure with parameter values and the iCal event as e-mail body, which is used to dynamically parameterize a POP/SMTP adapter; see X4 Developer Reference - Dynamic Processes via iXmap.


    This operation will be deprecated with the next release. 



Parameter

Adapter

Main class of the adapter (do not change!)

Possible values: de.softproject.integration.adapter. icalendar.ICalendarAdapter: Main class (default)

attachmentName

File name of the email attachment with the iCal calendar item (for Create iXmap for E-Mail Adapter operation).

Possible values: Any valid file name

Status values

1The operation was executed successfully.
-1The operation failed due to a technical error.

Example

In the demo system X4 Experience you can find the sample process iCalendarAdapter.wrf for using the adapter.

Dependencies

This adapter the following libraries:

  • ical4j-1.0.jar

  • backport-util-concurrent-3.1.jar

  • icalendar.jar

Operation: iCal to XML

Operation iCal To XML can be used to convert a valid iCal text document to XML.

Input

For Operation iCal To XML, the adapter expects any valid iCal text document.

Output

For Operation iCal To XML, the adapter outputs an XML document containing all appointment information (see the description of the input structure for Operation XML To iCal).

Operation: XML to iCal

Operation XML To iCal can be used to convert an adapter-specific XML structure into an iCalendar text document.

Input

The adapter expects an input XML document according to the following pattern:

HTML/XML
<iCalendarData>
    <!-- E-Mail-Metadaten: Nur relevant, wenn der Adapter ein iXmap 
         für den POP/SMTP Adapter erzeugen soll -->
   <mail>
      <from><!--E-Mail-Adresse des Absenders--></from>
      <to><!--E-Mail-Adressen der Empfänger durch Semikolons (";") getrennt--></to>
      <cc><!--E-Mail-Adressen der CC-Empfänger durch Semikolons getrennt--></cc>
      <bcc><!--E-Mail-Adressen der BCC-Empfänger durch Semikolons getrennt--></bcc>
      <subject><!--Betreff--></subject>
   </mail>
   <prodId><!--Programm-ID, das die iCalendar-Daten erzeugt hat--></prodId>

   <!-- Veröffentlichungsart gemäß RFC 2446 (S.73)
        z. B. "REQUEST": Besprechungsanfrage; 
             "PUBLISH": rein informative Terminveröffentlichung -->
   <method><!--Veröffentlichungsart--></method>
   <timezoneId><!--Beliebige Zeitzonen-ID von ical4j, z. B. Europe/Berlin--></timezoneId>

   <!-- Ereignis: siehe RFC 2445 S. 51 -->
   <vevent>
      <uid><!--Global eindeutige ID für die iCalendar-Komponente (ggf. automatisch erzeugt)--></uid>
      <organizer>
         <name><!--Name des Organisators--></name>
         <mail><!--E-Mail-Adresse des Organisators--></mail>

        <!-- zusätzliche Parameter je nach iCalendar-Eigenschaft 
            (nur für Experten) -->
         <parameters>
            <parameter>
               <name><!--Parametername--></name>
               <value><!--Parameterwert--></value>
            </parameter>
         </parameters>
      </organizer>
      
       <!-- Teilnehmer: (von MS Outlook nur teilweise unterstützt) -->
       <!-- Outlook verwendet stattdessen die Empfängerdaten der E-Mail --> 
      <attendees>
         <attendee>
            <name><!--Name des Teilnehmers--></name>
            <mail><!--E-Mail des Teilnehmers--></mail>

             <!-- Teilnehmerinformationen; siehe RFC 2445 S. 28 -->
            <role><!--REQ-PARTICIPANT, OPT-PARTICIPANT oder NON-PARTICIPANT--></role>
            <partStat><!--Teilnahmestatus (bei Antwort): ACCEPTED, DECLINED ...--></partStat>
            <askForResponse><!--Antwort anfordern: true oder false--></askForResponse>
 
            <!-- zusätzliche Parameter je nach iCalendar-Eigenschaft
                (nur für Experten) -->
            <parameters>
               <name><!--Parametername--></name>
               <value><!--Parameterwert--></value>
            </parameters>
         </attendee>
      </attendees>

      <startTime timezoneId="Europe/London"><!--Startzeitpunkt (DATE oder DATE-TIME)-->
      </startTime>
      <endTime><!--Endzeitpunkt des Termins (DATE oder DATE-TIME)--></endTime>

      <!-- Wenn ein Termin geändert wird: 0-n; wird bei 
           jeder Änderung um 1 erhöht -->
      <sequence><!--Sequenz: 0-n--></sequence>
      <priority><!--Priorität von 1-9 (1=höchste Priorität, 0=keine Priorität)--></priority>
      <summary><!--Titel des Termins--></summary>
      <description><!--Beschreibungstext des Termins--></description>
      <location><!--Ort--></location>
      <status><!--Status des Termins: CONFIRMED, TENTATIVE ...--></status>

      <!-- Hinweis: MS Outlook kann Termine mit gesetzten 
           Elementen "rrule" und "exrule" nicht verarbeiten! -->
      <rrule><!--Wiederholungsregel--></rrule>
      <exrule><!--Ausnahmen der Wiederholungsregel--></exrule>

      <!-- siehe RFC 2445 S.66 -->
      <!-- Löst zu einem bestimmten Zeitpunkt eine Aktion aus; 
           kann nur in "vevent" und "vtodo2" verwendet werden -->
      <valarm>

         <!-- siehe RFC 2445 S.70 -->
         <trigger>
            <value><!--Zeitangabe, deren Typ von Element "type" abhängt--></value>
            <type><!--Zeitangabentyp: DURATION (Standard), DATE-TIME oder DATE--></type>

            <!-- wenn dieses Element "true" enthält und als Typ "DURATION" 
                 gewählt ist, dann wird das Element "value" relativ zum 
                 Endzeitpunkt der übergeordneten Komponente betrachtet, 
                 andernfalls relativ zum Startzeitpunkt -->
            <relativeToEnd>Relative Angabe: true oder false--></relativeToEnd>
         </trigger>

         <!-- siehe RFC 2445 S.69 -->
         <action><!--DISPLAY--></action>
         <repeat><!--Anzahl an Wiederholungen des Alarms--></repeat>

         <!-- Zeitabstand zwischen den Alarmen, wenn "repeat" größer 0 
              ist (hier 30 Sekunden) -->
         <duration><!--PT30S--></duration>
         <summary><!--Titel der Alarmmeldung--></summary>
         <description><!--Beschreibung der Alarmmeldung--></description>
         
         <!-- Optional: Definition von "attendees" und "otherProperties" 
             (Struktur wie in "vevent") -->
      </valarm>

      <categories>
         <!-- 1-n Kategorien, zu denen der Termin gehören soll -->
         <category><!--Kategoriename--></category>
      </categories>

      <!-- Sonstige Properties (nur Properties, die für 
           diese Komponente definiert sind) -->
      <otherProperties>
         <property>
            <name><!--Eigenschaftsname--></name>
            <value><!--Eigenschaftswert--></value>
            <parameters>
               <parameter>
                  <name><!--Parametername--></name>
                  <value><!--Parameterwert--></value>
               </parameter>
            </parameters>
         </property>
      </otherProperties>
   </vevent>

   <!-- Aufgabe: siehe RFC 2445 S.54 -->
   <vtodo>
      <due timezoneId="US-Eastern"><!--Endzeitpunkt im Format YYYYMMDDThhmmss--></due>
      <duration><!--Dauer - nicht gemeinsam mit Element "due" verwenden--></duration>

      <!-- Hier können zusätzlich alle Elemente aus "vevent" außer "endTime"
           verwendet werden. -->
   </vtodo>

   <!-- Journal: siehe RFC 2445 S.55 -->
   <vjournal>
      <!-- Alle Elemente aus "vevent" außer: "sequence", "priority", 
           "location", "endTime" und "valarm"  -->
   </vjournal>

   <!-- Belegt/Frei: siehe RFC 2445 S.57 -->
   <vfree_busy>
      <uid>(siehe Element vevent)</uid>
      <organizer><!--siehe Element "vevent"--></organizer>
      <attendees><!--siehe Element "vevent"--></attendees>
      <startTime><!--siehe Element "vevent"--></startTime>
      <endTime><!--siehe Element "vevent"--></endTime>
      <duration><!--Dauer - nicht gemeinsam mit Element "endTime" verwenden--></duration>
      <comment><!--Kommentartext--></comment>
      <otherProperties><!--siehe Element "vevent"--></otherProperties>
   </vfree_busy>

   <otherProperties><!--siehe Element "vevent"--></otherProperties>
</iCalendarData>  

Output

For Operation XML To iCal, the adapter outputs a corresponding iCalendar text document.

Operation: Create iXmap for E-Mail Adapter

This operation will be deprecated with the next release. 

Operation Create iXmap for E-Mail Adapter can be used to output an iXmap XML structure with parameter values and the iCal event as e-mail body, which is used to dynamically parameterize a POP/SMTP adapter; see X4 Developer Guide - Dynamic Processes via iXmap.

Input

For Operation Create iXmap for E-Mail Adapter expects the same XML structure as for Operation XML To iCal.

In addition, however, the root element can contain an <mail> element as the first child element, in which an element of the same name, including value, can be defined for each parameter that is to be set dynamically at the POP/SMTP adapter:

HTML/XML
<iCalendarData>
   <mail>
      <!-- für jeden zu setzenden Parameter -->
      <Parametername 1><!--Wert 1--></Parametername 1>
      <Parametername n><!--Wert n--></Parametername n>
   </mail>
   <!-- Termindaten -->
</iCalendarData>

Output

For Operation Create iXmap for E-Mail Adapter, the adapter outputs an iXmap XML document that is used to dynamically parameterize a POP/SMTP adapter; see X4 Developer Guide - Dynamic Processes via iXmap.

However, in order for the process engine to recognize the iXmap structure as such, this XML document must be transformed again via XSL (identity transformation is sufficient). A subsequent POP/SMTP adapter is then dynamically parameterized with the values specified in the input XML document.

HTML/XML
<iXmap>
   <Return>
      <!-- für jeden gesetzten Parameter -->
      <Parametername 1><!--Wert 1--></Parametername 1>
      <Parametername n><!--Wert n--></Parametername n>
   </Return>
</iXmap>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.