You can use a unique trait to identify a character and then test if he ended his turn in a particular settlement. You can even make this trait invisible (hidden) if needed.
Code:
monitor_event CharacterTurnEndInSettlement SettlementName London ;character ended their turn in London
and Trait IDtrait > 0 ;character has the unique ID trait, so must be the character we're interested in
;do stuff
end_monitor
Alternatively, we can use just about any event that exports character_record to test if they're in a particular region. For example, we can test which region the character is in when the player selects them (only works outside of residence).
Code:
monitor_event CharacterSelected Trait IDtrait > 0
and IsRegionOneOf London_Province ;character is somewhere in the London region
;do stuff
end_monitor
Beyond that, it becomes difficult to test precisely where a character is on the map. We have the I_CharacterTypeNearTile and I_CharacterTypeNearCharacterType conditions, but neither can take a trait, ancillary, name, or label (i.e. any uniquely identifying information) as a parameter. If you want to be absolutely sure that a uniquely identified character is at a specific tile, your best bet is to put a settlement on that tile and test if the character is in the settlement.