diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
index 42cbdea55a8476132b5c9dd1ba7c53e13b4d230d..45e7640fba8b6464723964a809f4c1792e4a76cf 100644
--- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
@@ -1,114 +1,45 @@
-import("Keyword_lib");
-import("Address_lib");
-import("Person_lib");
-import("Contact_lib");
-import("KeywordRegistry_basic");
 import("system.translate");
-import("Sql_lib");
-import("AttributeRegistry_basic");
-import("system.datetime");
-import("system.logging");
-import("Communication_lib");
 import("system.db");
-import("system.vars");
-import("system.neon");
+import("Communication_lib");
+import("system.datetime");
+import("system.eMath");
 import("system.calendars");
-import("Calendar_lib");
-import("system.date");
-import("Context_lib");
 import("system.util");
-import("system.eMath");
-import("system.text");
-
-var params = {};
-var mailAffectedUser = [];
+import("Calendar_lib");
+import("system.vars");
+import("system.neon");
+import("system.result");
+import("Contact_lib")
 
 var selectionRowData = vars.get("$sys.selectionRows");
 
-var uid = selectionRowData[0].UID;
-var isGroup = selectionRowData[0].ISGROUP; //not Bool
-var entryDateAsLong = selectionRowData[0].ENTRYDATE;
-var entryDate = datetime.toDate(entryDateAsLong, "dd-MM-yyyy");
-var startTime = selectionRowData[0].BEGIN_TIME;
-var endTime = selectionRowData[0].END_TIME;
-var organisationContact_id = selectionRowData[0].ORGANISATION_CONTACT_ID;
-var organisationName = OrganisationUtils.getNameByContactId(organisationContact_id);
-var contact_id = selectionRowData[0].CONTACT_ID;
-var contactName = ContactUtils.getFullTitleByContactId(contact_id);
-var contactMail = CommUtil.getStandardSubSqlMail(contact_id)
-var contactData = newSelect("CONTACT.DEPARTMENT, CONTACT.CONTACTROLE")
-                            .from("CONTACT")
-                            .where("CONTACT.CONTACTID", contact_id)
-                            .arrayRow()
-var department = contactData[0];
-var contactRole = contactData[1];
-var addressId = newSelect("CONTACT.ADDRESS_ID")
-                            .from("CONTACT")
-                            .where("CONTACT.CONTACTID", organisationContact_id)
-                            .cell();
-var organisationAddress = new AddrObject(organisationContact_id);
-var organisationAddressFormatted = organisationAddress.getFormattedAddress(false, "{salutation_name}\n {street} {buildingno}\n {country_short} - {zip} {city}");
-var contactCommunication = newSelect("COMMUNICATION.MEDIUM_ID, COMMUNICATION.ADDR")
-                                        .from("COMMUNICATION")
-                                        .where("COMMUNICATION.CONTACT_ID", contact_id)
-                                        .table();
-if(contactCommunication.length > 0)
+if(selectionRowData[0].VISITRECOMMENDATION_ID)
 {
-    var communicationString;
-    for (let i = 0; i < contactCommunication.length; i++) 
-    {
-            communicationString += KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), contactCommunication[i][0]) + ": " 
-                                    + contactCommunication[i][1] + "</br>"
-    }
-    communicationString = communicationString.substring(9);
+    db.updateData("VISITRECOMMENDATION", ["STATUS"], db.getColumnTypes("VISITRECOMMENDATION", ["STATUS"]), ["PLANNED"]
+                , "VISITRECOMMENDATIONID = '" + selectionRowData[0].VISITRECOMMENDATION_ID + "'");
 }
-var summary = translate.text("Visit") +  " " + contactName + " | "+  organisationName;
-var description = contactName + "</br>"
-                  + department + "</br>"
-                  + contactRole + "</br>"
-                  + communicationString + "</br>" + "</br>"
-                  + organisationName + "</br>"
-                  + organisationAddressFormatted;
 
-userMailto = [];
-userMailto.push("mailto:" + contactMail, "CN:" + contactMail);
-mailAffectedUser.push(text.encodeMS(userMailto));
+var fullName = ContactUtils.getFullTitleByContactId(selectionRowData[0].CONTACT_ID, true)
+var summary = translate.text("Besuch vor Ort") + " || " + fullName;
+var description = fullName;
+var standardMail = CommUtil.getStandardMail(selectionRowData[0].CONTACT_ID); 
 
+var startTime = selectionRowData[0].BEGIN_TIME;
+var endTime = selectionRowData[0].END_TIME;
+var duration = eMath.subInt(endTime, startTime);
+var entryDate = datetime.toDate(selectionRowData[0].ENTRYDATE, "dd-MM-yyyy");
+startTime = entryDate + " " + datetime.toDate(selectionRowData[0].BEGIN_TIME, "HH:mm:ss.S");
+startTime = datetime.toLong(startTime, "dd-MM-yyyy HH:mm:ss.S");
 
-var startdate = entryDate + " " + datetime.toDate(startTime, "HH:mm:ss.S");
-startdate = datetime.toLong(startdate, "dd-MM-yyyy HH:mm:ss.S");
+var params = {};
+params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(util.getNewUUID(), calendars.VEVENT, summary, description, false, null, null
+                                    , null, null, startTime, duration, null, null, null, null, [standardMail]));
 
-var duration = eMath.subInt(endTime, startTime);
-    
-var entry = CalendarUtil.createEntry("", calendars.VEVENT, summary, description, false, false, false,
-                vars.get("$sys.user"), [vars.get("$sys.user")], startdate, duration, null, calendars.STATUS_TENTATIVE, null, null);
-            
-params["Entry_param"] = JSON.stringify(entry);
-var uidAppointment = calendars.insert([entry]);
-    
-var columns = ["AB_APPOINTMENTLINK_ID",
-            "APPOINTMENT_ID",
-            "OBJECT_TYPE",
-            "OBJECT_ROWID"]
-    
-var values = [util.getNewUUID(),
-          uidAppointment[0],
-          "Organisation",
-          organisationContact_id]
-db.insertData("AB_APPOINTMENTLINK", columns, null, values)
-    
-values = [util.getNewUUID(),
-          uidAppointment[0],
-          "Person",
-          contact_id]
-db.insertData("AB_APPOINTMENTLINK", columns, null, values)
-    
-values = [$KeywordRegistry.visitPlanEntryStatus$Appointmentarranged(), uidAppointment[0], $KeywordRegistry.visitPlanEntryStatusAppointment$requested()];
-columns = ["STATUS", "APPOINTMENT_ID", "STATUS_APPOINTMENT"];
-    
-newWhere("VISITPLANENTRY.VISITPLANENTRYID", uid)
-    .updateData(true, "VISITPLANENTRY", columns, null, values);
+params["PresetLinks_param"] = JSON.stringify([
+        ["Organisation", selectionRowData[0].ORGANISATION_CONTACT_ID], 
+        ["Person", selectionRowData[0].CONTACT_ID]
+    ]);
+
+neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.UID")], neon.OPERATINGSTATE_NEW, params, null);
+result.string(true);
 
-neon.setFieldValue("$field.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged());
-neon.setFieldValue("$field.STATUS_APPOINTMENT", $KeywordRegistry.visitPlanEntryStatusAppointment$requested());
-neon.refreshAll();
\ No newline at end of file
diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
index d9bd763c59280c845e6922e84ff592d2f7d7de2b..e10e6cfdf7194409263af195e65a3f25f69863d2 100644
--- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js
@@ -182,6 +182,7 @@ if(idValues == false)
             "" //RESPONSIBLE.value
         ];
         
+        
         var manualRec = newSelect("VISITRECOMMENDATION.VISITRECOMMENDATIONID")
         .from("VISITRECOMMENDATION")
         .where("VISITRECOMMENDATION.CONTACT_ID", tmpData[0])
@@ -199,8 +200,9 @@ if(idValues == false)
             .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.NOT_EQUAL()))
             .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.EQUAL()).cell()
        
-       if(!manualRec)
+       if(!manualRec) //if manual Record was created, visitfrequency is not relevant
        {
+           //!visitEntryExists - if no visitplanentry for the organisation/person from recommendation was created -> show recommendation so it can be planned
            if(!visitEntryExists || visitEntry)
            {    
                recommendationData.push(tmpData);