+ 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){
+
+ for (int requestToDataSeek = 0; requestToDataSeek < relatedToData.size();
+ requestToDataSeek++){
+
+ dataLine += "RELATED-TO";
+
+ if (relatedToDataRelationType[requestToDataSeek].size() > 0){
+
+ dataLine += ";RELTYPE=";
+ dataLine += relatedToDataRelationType[requestToDataSeek];
+
+ }
+
+ if (relatedToDataTokens[requestToDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += relatedToDataTokens[requestToDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += relatedToData[requestToDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RESOURCES value.
+
+ if (resourcesData.size() > 0){
+
+ for (int resourcesDataSeek = 0; resourcesDataSeek < resourcesData.size();
+ resourcesDataSeek++){
+
+ dataLine += "RESOURCES";
+
+ if (resourcesDataAltRep[resourcesDataSeek].size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += resourcesDataAltRep[resourcesDataSeek];
+ dataLine += "\"";
+
+ }
+
+ if (resourcesDataLanguage[resourcesDataSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += resourcesDataLanguage[resourcesDataSeek];
+
+ }
+
+ if (resourcesDataTokens[resourcesDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += resourcesDataTokens[resourcesDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += resourcesData[resourcesDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the RDATE value.
+
+ if (recurranceDateData.size() > 0){
+
+ for (int recurranceDateDataSeek = 0; recurranceDateDataSeek < recurranceDateData.size();
+ recurranceDateDataSeek++){
+
+ dataLine += "RDATE";
+
+ if (recurranceDateDataValue[recurranceDateDataSeek].size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += recurranceDateDataValue[recurranceDateDataSeek];
+
+ }
+
+ if (recurranceDateDataTimeZoneParam[recurranceDateDataSeek].size() > 0){
+
+ dataLine += ";TZID=";
+ dataLine += recurranceDateDataTimeZoneParam[recurranceDateDataSeek];
+
+ }
+
+ if (recurranceDateDataTokens[recurranceDateDataSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += recurranceDateDataTokens[recurranceDateDataSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += recurranceDateData[recurranceDateDataSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ }
+
+ // Process the VALARMS.
+
+ if (calendarAlarmData.size() > 0){
+
+ for (int calendarAlarmDataSeek = 0; calendarAlarmDataSeek < calendarAlarmData.size();
+ calendarAlarmDataSeek++){
+
+ *saveData += "BEGIN:VALARM\n";
+
+ // Process the ACTION VALARM value.
+
+ dataLine += "ACTION";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].alarmActionTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].alarmActionTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].alarmAction;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ // Process the TRIGGER VALARM value.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].triggerData.size() > 0){
+
+ dataLine += "TRIGGER";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].triggerRelated.size() > 0){
+
+ dataLine += ";RELATED=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].triggerRelated;
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].triggerValue.size() > 0){
+
+ dataLine += ";VALUE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].triggerValue;
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].triggerTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].triggerTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].triggerData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the DURATION VALARM value.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].durationData.size() > 0){
+
+ dataLine += "DURATION";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].durationTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].durationTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].durationData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the DESCRIPTION VALARM value.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].descriptionData.size() > 0){
+
+ dataLine += "DESCRIPTION";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].descriptionAltRep.size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].descriptionAltRep;
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].descriptionLanguage.size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].descriptionLanguage;
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].descriptionTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].descriptionTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].descriptionData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the SUMMARY VALARM value.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].summaryData.size() > 0){
+
+ dataLine += "SUMMARY";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].summaryAltRep.size() > 0){
+
+ dataLine += ";ALTREP=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].summaryAltRep;
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].summaryLanguage.size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].summaryLanguage;
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].summaryTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].summaryTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].summaryData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the REPEAT VALARM value.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].repeatData.size() > 0){
+
+ dataLine += "REPEAT";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].repeatTokens.size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].repeatTokens;
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].repeatData;
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);
+
+ *saveData += dataLineProcessed;
+
+ dataLine.clear();
+ dataLineProcessed.clear();
+
+ }
+
+ // Process the ATTENDEE VALARM values.
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeList.size() > 0){
+
+ for (int attendeeListSeek = 0; attendeeListSeek < calendarAlarmData[calendarAlarmDataSeek].attendeeList.size();
+ attendeeListSeek++){
+
+ dataLine += "ATTENDEE";
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListMember[attendeeListSeek].size() > 0){
+
+ dataLine += ";MEMBER=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListMember[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListDelegatedFrom[attendeeListSeek].size() > 0){
+
+ dataLine += ";DELEGATED-FROM=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListDelegatedFrom[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListDelegatedTo[attendeeListSeek].size() > 0){
+
+ dataLine += ";DELEGATED-TO=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListDelegatedTo[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListRole[attendeeListSeek].size() > 0){
+
+ dataLine += ";ROLE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListRole[attendeeListSeek];
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListRSVP[attendeeListSeek].size() > 0){
+
+ dataLine += ";RSVP=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListRSVP[attendeeListSeek];
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListDirectoryEntry[attendeeListSeek].size() > 0){
+
+ dataLine += ";DIR=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListDirectoryEntry[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListSentBy[attendeeListSeek].size() > 0){
+
+ dataLine += ";SENT-BY=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListSentBy[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListCommonName[attendeeListSeek].size() > 0){
+
+ dataLine += ";CN=\"";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListCommonName[attendeeListSeek];
+ dataLine += "\"";
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListCalendarUserType[attendeeListSeek].size() > 0){
+
+ dataLine += ";CUTYPE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListCalendarUserType[attendeeListSeek];
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListParticipationStatus[attendeeListSeek].size() > 0){
+
+ dataLine += ";PARTSTAT=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListParticipationStatus[attendeeListSeek];
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListLanguage[attendeeListSeek].size() > 0){
+
+ dataLine += ";LANGUAGE=";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListLanguage[attendeeListSeek];
+
+ }
+
+ if (calendarAlarmData[calendarAlarmDataSeek].attendeeListTokens[attendeeListSeek].size() > 0){
+
+ dataLine += ";";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeListTokens[attendeeListSeek];
+
+ }
+
+ dataLine += ":";
+ dataLine += calendarAlarmData[calendarAlarmDataSeek].attendeeList[attendeeListSeek];
+ dataLine += "\n";
+
+ dataLineProcessed = OutputText(&dataLine);