+ if (classData.size() > 0){
+
+ dataLine += "CLASS";
+
+ if (classDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += classDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += classData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the DTSTART.
+
+ if (dateTimeStartData.size() > 0){
+
+ dataLine += "DTSTART";
+
+ if (dateTimeStartDataValue.size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += dateTimeStartDataValue;
+
+ }
+
+ if (dateTimeStartDataTimeZoneID.size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += dateTimeStartDataTimeZoneID;
+
+ }
+
+ if (dateTimeStartDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += dateTimeStartDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += dateTimeStartData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the LAST-MODIFIED value.
+
+ if (lastModifiedData.size() > 0){
+
+ if (lastModifiedTokens.size() > 0){
+
+ dataLine += "LAST-MODIFIED;";
+ dataLine += lastModifiedTokens;
+
+ } else {
+
+ dataLine += "LAST-MODIFIED";
+
+ }
+
+ dataLine += ":";
+ dataLine += lastModifiedData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the ORGANIZER value.
+
+ if (organiserData.size() > 0){
+
+ dataLine += "ORGANIZER";
+
+ if (organiserDataCommonName.size() > 0){
+
+ dataLine += ";CN=";
+ dataLine += organiserDataCommonName;
+
+ }
+
+ if (organiserDataDirectoryEntry.size() > 0){
+
+ dataLine += ";DIR=\"";
+ dataLine += organiserDataDirectoryEntry;
+ dataLine += "\"";
+
+ }
+
+ if (organiserDataSentByParam.size() > 0){
+
+ dataLine += ";SENT-BY=\"";
+ dataLine += organiserDataSentByParam;
+ dataLine += "\"";
+
+ }
+
+ if (organiserDataLanguage.size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += organiserDataLanguage;
+
+ }
+
+ if (organiserDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += organiserDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += organiserData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the RECURRENCE-ID value.
+
+ if (recurranceIDData.size() > 0){
+
+ dataLine += "RECURRENCE-ID";
+
+ if (recurranceIDDataTimeZoneParam.size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += recurranceIDDataTimeZoneParam;
+
+ }
+
+ if (recurranceIDDataRangeParam.size() > 0){
+
+ dataLine += ";RANGE=";
+ dataLine += recurranceIDDataRangeParam;
+
+ }
+
+ if (recurranceIDDataValue.size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += recurranceIDDataValue;
+
+ }
+
+ if (recurranceIDDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += recurranceIDDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += recurranceIDData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the SEQUENCE value.
+
+ if (sequenceData > -1 && sequenceData < 10){
+
+ dataLine += "SEQUENCE";
+
+ if (sequenceTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += sequenceTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += to_string(sequenceData);
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the STATUS value.
+
+ if (statusData.size() > 0){
+
+ dataLine += "STATUS";
+
+ if (statusLanguage.size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += statusLanguage;
+
+ }
+
+ if (statusTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += statusTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += statusData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the URL value.
+
+ if (urlData.size() > 0){
+
+ dataLine += "URL";
+
+ if (urlDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += urlDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += urlData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the RRULE value.
+
+ if (recurranceRuleData.size() > 0){
+
+ dataLine += "RRULE";
+
+ if (recurranceRuleDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += recurranceRuleDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += recurranceRuleData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the ATTACH values.
+
+ if (attachList.size() > 0){
+
+ for (int attachListSeek = 0; attachListSeek < attachList.size();
+ attachListSeek++){
+
+ dataLine += "ATTACH";
+
+ if (attachListFormatType[attachListSeek].size() > 0){
+
+ dataLine += ";FMTTYPE=";
+ dataLine += attachListFormatType[attachListSeek];
+
+ }
+
+ if (attachListValue[attachListSeek].size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += attachListValue[attachListSeek];
+
+ }
+
+ if (attachListEncoding[attachListSeek].size() > 0){
+
+ dataLine += ";ENCODING=";
+ dataLine += attachListEncoding[attachListSeek];
+
+ }
+
+ if (attachListTokens[attachListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += attachListTokens[attachListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += attachList[attachListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the ATTENDEE value.
+
+ if (attendeeList.size() > 0){
+
+ for (int attendeeListSeek = 0; attendeeListSeek < attendeeList.size();
+ attendeeListSeek++){
+
+ dataLine += "ATTENDEE";
+
+ if (attendeeListMember[attendeeListSeek].size() > 0){
+
+ dataLine += ";MEMBER=\"";
+ dataLine += attendeeListMember[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListDelegatedFrom[attendeeListSeek].size() > 0){
+
+ dataLine += ";DELEGATED-FROM=\"";
+ dataLine += attendeeListDelegatedFrom[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListDelegatedTo[attendeeListSeek].size() > 0){
+
+ dataLine += ";DELEGATED-TO=\"";
+ dataLine += attendeeListDelegatedTo[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListRole[attendeeListSeek].size() > 0){
+
+ dataLine += ";ROLE=";
+ dataLine += attendeeListRole[attendeeListSeek];
+
+ }
+
+ if (attendeeListRSVP[attendeeListSeek].size() > 0){
+
+ dataLine += ";RSVP=";
+ dataLine += attendeeListRSVP[attendeeListSeek];
+
+ }
+
+ if (attendeeListDirectoryEntry[attendeeListSeek].size() > 0){
+
+ dataLine += ";DIR=\"";
+ dataLine += attendeeListDirectoryEntry[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListSentBy[attendeeListSeek].size() > 0){
+
+ dataLine += ";SENT-BY=\"";
+ dataLine += attendeeListSentBy[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListCommonName[attendeeListSeek].size() > 0){
+
+ dataLine += ";CN=\"";
+ dataLine += attendeeListCommonName[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (attendeeListCalendarUserType[attendeeListSeek].size() > 0){
+
+ dataLine += ";CUTYPE=";
+ dataLine += attendeeListCalendarUserType[attendeeListSeek];
+
+ }
+
+ if (attendeeListParticipationStatus[attendeeListSeek].size() > 0){
+
+ dataLine += ";PARTSTAT=";
+ dataLine += attendeeListParticipationStatus[attendeeListSeek];
+
+ }
+
+ if (attendeeListLanguage[attendeeListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += attendeeListLanguage[attendeeListSeek];
+
+ }
+
+ if (attendeeListTokens[attendeeListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += attendeeListTokens[attendeeListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += attendeeList[attendeeListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the CATEGORIES value.
+
+ if (categoriesList.size() > 0){
+
+ for (int categoriesListSeek = 0; categoriesListSeek < categoriesList.size();
+ categoriesListSeek++){
+
+ dataLine += "CATEGORIES";
+
+ if (categoriesListLanguage[categoriesListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += categoriesListLanguage[categoriesListSeek];
+
+ }
+
+ if (categoriesListTokens[categoriesListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += categoriesListTokens[categoriesListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += categoriesList[categoriesListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the COMMENT value.
+
+ if (commentList.size() > 0){