Reader RonaldV mentioned the possible use of NotesDocument.GetItemValue to retrieve the field. The problem here is that we do not know the datatype of the field in advance. The field may contain a text value, even though we don't intend it to be a text field. So my code retrieves the complete NotesItem first, then checks the datatype, then runs appropriate code based on the found datatype. Of course, we could still use GetItemValue, but then we have to check the datatype after retrieving the field, which probably amounts to the same amount of work.

AndrewP noted that I forgot to set the value of the NewTime variable. He is correct, but this is only a code fragment. To set this variable to the current time, you can add the line "NewTime = Now".

YuthanaS suggested that I replace many lines of my code with the single statement "NewTimeList = Arrayappend(OldTimeList, NewTime)". I tested this and it does not compile. Arrayappend is a helpful function, but it is picky about being used in just the right way. A key issue in this coding example is that you have to retrieve the multivalue fields from Notes as Variants, because that is how Notes gives them to you. But when you rewrite the fields with new values, you have to present Notes with either timedate Variant arrays (for a Notes timedate field) or Long arrays (for a Notes number field). So you are forced to change the kind of array you get from Notes into another kind of array to rewrite it. I would love to hear from anyone who knows a general solution to this problem.

Reader BryanP suggested the use of Ubound to set the size of the new array. Of course, he is correct. I have used this built-in function many times, but forgot about it in the case. Thank you.