diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index c4708e103f70a4fb1a6e98a9ad4bc6c5f2791579..9285b2f33d2c873188ff01b8271c3cf865f116fb 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -4545,6 +4545,352 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>APPOINTMENTLINK</name>
+            <dbName></dbName>
+            <idColumn>APPOINTMENTLINK_ID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>OBJECT_ROWID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>APPOINTMENTLINK_ID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>APPOINTMENT_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="63" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
+          <entityDb>
+            <name>ASYS_CALENDARBACKEND</name>
+            <dbName></dbName>
+            <idColumn>DATASETID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DTSTART</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ENDTIME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MAILBOX</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CLASSIFICATION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ELEMENTUID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="512" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DTEND</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ISRECUR</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATASETID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TRANSP</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="1" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OWNER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="32" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STARTTIME</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>HASALARM</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SUMMARY</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>VCOMPONENT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>LASTMODIFIED</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ENTRYTYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>ORGANIZER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="255" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/entity/AppointmentLink_entity/AppointmentLink_entity.aod b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..35cdd9cda3f498036eb3b8c6c90c58fe6fbb4277
--- /dev/null
+++ b/entity/AppointmentLink_entity/AppointmentLink_entity.aod
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.2.0">
+  <name>AppointmentLink_entity</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+      <recordContainer>db</recordContainer>
+    </entityProvider>
+    <entityField>
+      <name>APPOINTMENTLINKID</name>
+    </entityField>
+    <entityField>
+      <name>APPOINTMENT_ID</name>
+    </entityField>
+    <entityField>
+      <name>OBJECTID</name>
+    </entityField>
+    <entityField>
+      <name>OBJECTTYPE</name>
+    </entityField>
+    <entityParameter>
+      <name>AppointmentId_param</name>
+      <expose v="true" />
+      <mandatory v="false" />
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityProvider>
+      <name>Link</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <targetContextField>OBJECTTYPE</targetContextField>
+      <targetIdField>OBJECTID</targetIdField>
+      <recordContainer>db</recordContainer>
+      <dependencies>
+        <entityDependency>
+          <name>3dde1745-18a1-4499-83d0-61e414086997</name>
+          <entityName>Appointment_entity</entityName>
+          <fieldName>AppointmentLinks</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <conditionProcess>%aditoprj%/entity/AppointmentLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <linkInformation>
+        <linkInformation>
+          <name>4b8f04a4-9d0f-4ff1-90f3-e173930788cc</name>
+          <tableName>APPOINTMENTLINK</tableName>
+          <primaryKey>APPOINTMENTLINK_ID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>APPOINTMENT_ID.value</name>
+          <recordfield>APPOINTMENTLINK.APPOINTMENT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>APPOINTMENTLINKID.value</name>
+          <recordfield>APPOINTMENTLINK.APPOINTMENTLINK_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECTID.value</name>
+          <recordfield>APPOINTMENTLINK.OBJECT_ROWID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECTTYPE.value</name>
+          <recordfield>APPOINTMENTLINK.OBJECT_TYPE</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/AppointmentLink_entity/recordcontainers/db/conditionProcess.js b/entity/AppointmentLink_entity/recordcontainers/db/conditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d07a6fc35d714eec0cb968234e7cf24d92dae098
--- /dev/null
+++ b/entity/AppointmentLink_entity/recordcontainers/db/conditionProcess.js
@@ -0,0 +1,9 @@
+import("system.db");
+import("system.result");
+import("Sql_lib");
+
+var cond = SqlCondition.begin()
+                       .andPrepareVars("APPOINTMENTLINK.APPOINTMENT_ID", "$param.AppointmentId_param")
+
+//TODO: use a preparedCondition when available
+result.string(db.translateCondition(cond.build("1 = 1")));
\ No newline at end of file
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index ec92d7925721750271e121285f12221f88262aed..b948527decdf19e9d5309e124c45c20da26648e3 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -64,7 +64,7 @@
         <entityActionField>
           <name>accept</name>
           <fieldType>ACTION</fieldType>
-          <title>zusagen</title>
+          <title>accept</title>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/accept/onActionProcess.js</onActionProcess>
           <actionOrder v="0" />
           <iconId>VAADIN:CHECK</iconId>
@@ -72,7 +72,7 @@
         <entityActionField>
           <name>decline</name>
           <fieldType>ACTION</fieldType>
-          <title>absagen</title>
+          <title>decline</title>
           <description></description>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/decline/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:CLOSE</iconId>
@@ -80,7 +80,7 @@
         <entityActionField>
           <name>tentative</name>
           <fieldType>ACTION</fieldType>
-          <title>vielleicht</title>
+          <title>tentative</title>
           <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/children/tentative/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:QUESTION</iconId>
         </entityActionField>
@@ -88,6 +88,7 @@
     </entityActionGroup>
     <entityProvider>
       <name>#PROVIDER</name>
+      <recordContainer>jdito</recordContainer>
     </entityProvider>
     <entityParameter>
       <name>MasterEntry_param</name>
@@ -129,38 +130,44 @@
       <expose v="true" />
       <description>PARAMETER</description>
     </entityParameter>
+    <entityParameter>
+      <name>AnyObjectRowid_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
+    <entityParameter>
+      <name>AnyObjectType_param</name>
+      <description>PARAMETER</description>
+    </entityParameter>
     <entityConsumer>
-      <name>ObjectRelations</name>
-      <title>Relations</title>
+      <name>AppointmentLinks</name>
       <fieldType>DEPENDENCY_OUT</fieldType>
       <dependency>
         <name>dependency</name>
-        <entityName>ObjectRelation_entity</entityName>
-        <fieldName>AnyObject</fieldName>
+        <entityName>AppointmentLink_entity</entityName>
+        <fieldName>Link</fieldName>
       </dependency>
       <children>
         <entityParameter>
-          <name>AnyObjectRowid_param</name>
-          <code>%aditoprj%/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js</code>
-          <expose v="true" />
-          <triggerRecalculation v="true" />
-          <mandatory v="false" />
+          <name>AppointmentId_param</name>
+          <code>%aditoprj%/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/code.js</code>
         </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>Contexts</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Context_entity</entityName>
+        <fieldName>Context</fieldName>
+      </dependency>
+      <children>
         <entityParameter>
-          <name>AnyObjectType_param</name>
-          <code>%aditoprj%/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js</code>
-          <triggerRecalculation v="true" />
+          <name>ContextId_param</name>
+          <documentation>%aditoprj%/entity/Appointment_entity/entityfields/contexts/children/contextid_param/documentation.adoc</documentation>
         </entityParameter>
       </children>
     </entityConsumer>
-    <entityParameter>
-      <name>AnyObjectRowid_param</name>
-      <description>PARAMETER</description>
-    </entityParameter>
-    <entityParameter>
-      <name>AnyObjectType_param</name>
-      <description>PARAMETER</description>
-    </entityParameter>
   </entityFields>
   <recordContainers>
     <jDitoRecordContainer>
diff --git a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js b/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/code.js
similarity index 56%
rename from entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js
rename to entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/code.js
index fa08fc1fd16d270732a297ccfed03b1136701758..2518182afb258f3074f9921062a492ec5b391285 100644
--- a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjectrowid_param/code.js
+++ b/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentid_param/code.js
@@ -1,4 +1,4 @@
-import("system.vars");
 import("system.result");
+import("system.vars");
 
-result.string(vars.get("$field.UID"))
\ No newline at end of file
+result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/contexts/children/contextid_param/documentation.adoc b/entity/Appointment_entity/entityfields/contexts/children/contextid_param/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js b/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js
deleted file mode 100644
index efc405cb8b7289310ca284800a6ff50eea9bbe12..0000000000000000000000000000000000000000
--- a/entity/Appointment_entity/entityfields/objectrelations/children/anyobjecttype_param/code.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("Context_lib");
-
-result.string(ContextUtils.getCurrentContextId())
\ No newline at end of file
diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
index a30df98ad48f6d33ebc392cdd90678dc64ccd15d..cdb013d534b7da88ec0ab2504791226409950ffc 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
@@ -8,7 +8,10 @@ import("system.util");
 
 if(vars.exists("$param.Entry_param"))
 {
+
     var entry = JSON.parse(vars.getString("$param.Entry_param"));
+        logging.log(entry.toSource())
+
     var masterEntry = null;
     if (vars.exists("$param.MasterEntry_param") && vars.get("$param.MasterEntry_param") != "") {
         masterEntry = JSON.parse(vars.get("$param.MasterEntry_param"));
@@ -42,7 +45,6 @@ if(vars.exists("$param.Entry_param"))
         rrule = entry[calendars.RRULE] != null ? entry[calendars.RRULE][0] : null;
     }
    
-    
     //@TODO Icon 
     result.object([
         [
diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod
index 3ad786b6aac6417947b5bd6ece4748a22e591154..ebf5d2c1bbe810dbf0a1f875147254a052b81088 100644
--- a/entity/Context_entity/Context_entity.aod
+++ b/entity/Context_entity/Context_entity.aod
@@ -42,6 +42,14 @@
     <entityProvider>
       <name>Context</name>
       <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>57f14cd7-f274-4c0d-9df9-7fecbb370fc7</name>
+          <entityName>Appointment_entity</entityName>
+          <fieldName>Contexts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
       <children>
         <entityParameter>
           <name>ContextId_param</name>
diff --git a/entity/ObjectRelation_entity/documentation.adoc b/entity/ObjectRelation_entity/documentation.adoc
index 5fd7202aafa4f91fef344ec57f87cfbb216655e0..fa775fc28eaab1af830b0076649fcc6366b8e976 100644
--- a/entity/ObjectRelation_entity/documentation.adoc
+++ b/entity/ObjectRelation_entity/documentation.adoc
@@ -21,7 +21,7 @@ So it is better to use an extra db-table.
 == How the ObjectRelation_entity works ==
 The entity works with the AB_OBJECTRELATION db-table.
 
-An ObjectRelation always has two Objects which consist of an Object-type and an Object-rowid.
+An ObjectRelation always has two Objects which consists of an Object-type and an Object-rowid.
 The object-type is the id of the context. Which you can get by ContextUtils.getCurrentContextId of the Context_lib for the current context.
 The object-rowid is the id of the Object you want use. Normally it is the UID of the Object.
 
diff --git a/neonContext/AppointmentLink/AppointmentLink.aod b/neonContext/AppointmentLink/AppointmentLink.aod
new file mode 100644
index 0000000000000000000000000000000000000000..49775df8800f6a552213496edffc6c5e098ef111
--- /dev/null
+++ b/neonContext/AppointmentLink/AppointmentLink.aod
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
+  <name>AppointmentLink</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <entity>AppointmentLink_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>015bf8e9-621a-423d-8fd3-17ef264cc919</name>
+      <view>AppointmentLinkFilter_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
index 53d7306a98411168f635c27c3857baff083ce691..1f551da997bef91635ac50563b6ea83c402255e2 100644
--- a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
+++ b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod
@@ -19,7 +19,6 @@
       <privateField>CLASSIFICATION</privateField>
       <statusField>STATUS</statusField>
       <locationField>LOCATION</locationField>
-      <linksField>LINKS</linksField>
       <categoriesField>CATEGORIES</categoriesField>
       <alldayField>ALLDAY</alldayField>
       <transparencyField>TRANSPARENCY</transparencyField>
@@ -31,7 +30,13 @@
       <masterBeginField>MASTERBEGIN</masterBeginField>
       <masterEndField>MASTEREND</masterEndField>
       <reminderField>REMINDER</reminderField>
+      <appointmentLinkField>LINKS</appointmentLinkField>
       <entityField>#ENTITY</entityField>
     </appointmentEditViewTemplate>
+    <neonViewReference>
+      <name>39802b49-f67c-4796-ba05-105aa073d60c</name>
+      <entityField>AppointmentLinks</entityField>
+      <view>AppointmentLinkFilter_view</view>
+    </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod b/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..7a2a9c8fe9001cb857e64cdc3e9202fe09490371
--- /dev/null
+++ b/neonView/AppointmentLinkFilter_view/AppointmentLinkFilter_view.aod
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AppointmentLinkFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Links</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>a9c230fa-dbfd-40c6-975b-7778dea6ef78</name>
+          <entityField>APPOINTMENTLINKID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>0da4bab5-6a9a-4411-92db-517b7cb327de</name>
+          <entityField>APPOINTMENT_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>4b89082a-c6c0-4af8-ab94-b3ad8bfb6c04</name>
+          <entityField>OBJECTID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>17c0a8a9-354c-4095-a5d4-5c2613c897a3</name>
+          <entityField>OBJECTTYPE</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/others/db_changes/data_alias/struct/create_appointmentlink.xml b/others/db_changes/data_alias/struct/create_appointmentlink.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7d5a08a68ebef16508e15af7f29a199d06dd0f5c
--- /dev/null
+++ b/others/db_changes/data_alias/struct/create_appointmentlink.xml
@@ -0,0 +1,20 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="a.schindlbeck" id="ba43be0a-8b27-4602-a1bb-dca31d279460">
+        <createTable tableName="APPOINTMENTLINK">
+            <column name="APPOINTMENTLINK_ID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_APPOINTMENTLINK_APPOINTMENTLINKID"/>
+            </column>
+            <column name="APPOINTMENT_ID" type="NVARCHAR(63)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="OBJECT_TYPE" type="NVARCHAR(63)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="OBJECT_ROWID" type="CHAR(36)">
+                <constraints nullable="false"/>
+            </column>
+            
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/masterChangelog.xml b/others/db_changes/masterChangelog.xml
index da00a762ef6d8f228aa7e9887c598fda38c4b3dd..584d2da9e1a43543ae659cf1570af5663b365edd 100644
--- a/others/db_changes/masterChangelog.xml
+++ b/others/db_changes/masterChangelog.xml
@@ -15,6 +15,7 @@
     <include file="data_alias/struct/create_contact.xml"/>    
     <include file="data_alias/struct/create_activity.xml"/>
     <include file="data_alias/struct/create_activitylink.xml"/>
+    <include file="data_alias/struct/create_appointmentlink.xml"/>
     <include file="data_alias/struct/create_address.xml"/>
     <include file="data_alias/struct/create_communication.xml"/>
     <include file="data_alias/struct/create_contract.xml"/>