public FreeBusyTimeTypeParameter(FreeBusyTimeType type)
        {
            // make sure that custom type is specified when customName is not null
            if (type == FreeBusyTimeType.Custom)
            {
                throw new ArgumentException("Invalid free/busy time type! Type must not be custom when the custom type name is not defined!");
            }

            FreeBusyType = type;
        }
        private string serializeFreeBusyTimeType(FreeBusyTimeType value, string customName = null)
        {
            switch (value)
            {
            case FreeBusyTimeType.Free:            return("FREE");

            case FreeBusyTimeType.Busy:            return("BUSY");

            case FreeBusyTimeType.BusyUnavailable: return("BUSY-UNAVAILABLE");

            case FreeBusyTimeType.BusyTentative:   return("BUSY-TENTATIVE");

            default:                               return(customName);
            }
        }