+ 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;
+
+ }