public static RecurrenceIDData parseRecurrenceID(String recurrenceString) {
        RecurrenceIDData retVal = null;
        if(recurrenceString != null){
            retVal = new RecurrenceIDData();
            int indexOfColon = recurrenceString.lastIndexOf(":");
            if(indexOfColon > 0){
                retVal.setValue(recurrenceString.substring(indexOfColon+1));
                for(String s: recurrenceString.substring(0,indexOfColon).split(";")){
                    if(s.startsWith("VALUE=")){
                        retVal.setValue_type(RecurrenceIDData.VALUE_TYPE.getEnum(s.split("=")[1]));
                    } else if(s.startsWith("TZID=")){
                        retVal.setTZID(s.split("=")[1]);
                    } else if(s.startsWith("RANGE=")){
                        retVal.setRange(RecurrenceIDData.RANGE.valueOf(s.split("=")[1]));
                    }
                }
            } else {
                retVal.setValue(recurrenceString);
            }
        }
        return retVal;
    }