Try the Last() function.
field - any or , or an that returns a reference to a repeating or related field
If field specifies a repeating field then it returns the last non-blank repetition. If field specifies a related field, then it returns the last non-blank value in the related set.
Note The last related value will depend on the way are . If the related records are not sorted, then the Last function returns a value based on the creation order of the .
Last(ParcelBids) returns 1500 if ParcelBids is a number field defined to repeat with ten values and contains the values 2500, 1200, and 1500.
Last(Payments::PaymentDate) returns the payment date in the last matching record in the Payments table.
Last(if(IsEmpty(Company);PersonalPhone;WorkPhone)) returns the last non-empty phone number from the repeating field PersonalPhone when the Company field is empty. If the Company field is not empty, the function returns the last non-empty phone number from the repeating field WorkPhone.
Keep in mind that Last() depends on sort order (if sorted through the relationship) or the order of data entry.
Since you are working with dates..."Last" has a different connotation.
Are you sure you don't want "latest" or "most recent" ?
If so...explore also the Max() function. works well for dates...
You can use ExecuteSQL, or else have the relationship be sorted on Event::Date descending. Both work but performance and impact on the rest of the database differs, so you'll need to choose the method that works best in your case.
Do you want to actually copy the value into the field, or just display it?
In Table1::FieldC do you want to show the date of the latest event or the name of the latest event? If date you could format the field as a calculation. Max(Table2::Field3). Check syntax. I'm not on a computer.
1. Sorted the relationship to Table 2
2. Used Last() in a calculation in Field C in Table 1