+ if (dueData.size() > 0){
+
+ dataLine += "DUE";
+
+ if (dueDataTimeZoneID.size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += dueDataTimeZoneID;
+
+ }
+
+ if (dueDataValue.size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += dueDataValue;
+
+ }
+
+ if (dueDataTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += dueDataTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += dueData;
+ 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){
+
+ for (int commentListSeek = 0; commentListSeek < commentList.size();
+ commentListSeek++){
+
+ dataLine += "COMMENT";
+
+ if (commentListAltRep[commentListSeek].size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += commentListAltRep[commentListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (commentListLanguage[commentListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += commentListLanguage[commentListSeek];
+
+ }
+
+ if (commentListTokens[commentListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += commentListTokens[commentListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += commentList[commentListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the CONTACT value.
+
+ if (contactList.size() > 0){
+
+ for (int contactListSeek = 0; contactListSeek < contactList.size();
+ contactListSeek++){
+
+ dataLine += "CONTACT";
+
+ if (contactListAltRep[contactListSeek].size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += contactListAltRep[contactListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (contactListLanguage[contactListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += contactListLanguage[contactListSeek];
+
+ }
+
+ if (contactListTokens[contactListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += contactListTokens[contactListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += contactList[contactListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the EXDATE value.
+
+ if (excludeDateData.size() > 0){
+
+ for (int excludeDateDataSeek = 0; excludeDateDataSeek < excludeDateData.size();
+ excludeDateDataSeek++){
+
+ dataLine += "EXDATE";
+
+ if (excludeDateDataTimeZoneParam[excludeDateDataSeek].size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += excludeDateDataTimeZoneParam[excludeDateDataSeek];
+
+ }
+
+ if (excludeDateDataValue[excludeDateDataSeek].size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += excludeDateDataValue[excludeDateDataSeek];
+
+ }
+
+ if (excludeDateDataTokens[excludeDateDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += excludeDateDataTokens[excludeDateDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += excludeDateData[excludeDateDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the REQUEST-STATUS value.
+
+ if (requestStatusData.size() > 0){
+
+ for (int requestStatusDataSeek = 0; requestStatusDataSeek < requestStatusData.size();
+ requestStatusDataSeek++){
+
+ dataLine += "REQUEST-STATUS";
+
+ if (requestStatusLanguage[requestStatusDataSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += requestStatusLanguage[requestStatusDataSeek];
+
+ }
+
+ if (requestStatusTokens[requestStatusDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += requestStatusTokens[requestStatusDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += requestStatusData[requestStatusDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RELATED-TO value.
+
+ if (relatedToData.size() > 0){