protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            switch (value)
            {
            case string type when CalendarEventTypes.IsKnownType(type):
                return(ValidationResult.Success);

            case string type:
                var validTypes = string.Join(", ", CalendarEventTypes.All);
                return(new ValidationResult($"Calendar event type `{type}` is not recognized. Must be one of the ${validTypes}"));

            default:
                return(new ValidationResult("Type must be string"));
            }
        }