Could use a Behavior Tree, if you want a lot of complex things.
I’ve got an NPC with a very simple schedule, though, and it’s handled in his personal AI Controller. I put down a bunch of target points on the map, and when the AI Controller starts running it makes a reference for every one pf them and sorts through them one at a time. When one is sorted and selected, the NPC walks to said target point and plays an animation, ponders the mysteries of life for a few seconds, and then walks to the next point and so on in an endless loop.
In theory, making a schedule shouldn’t be any different from making an enemy’s average routine, e.g. wandering or patrolling, investigating suspicious activity, chasing and attacking, etc.