I'd use a daily scheduled event. In the microflow, create six datetime variables (assuming you have the joining date non-localized):
addWeeks(addYears([%BeginOfCurrentDayUTC%], -1), -1) (this is the joindate for employees whose manager needs a one week notification for the one year anniversary)
addWeeks(addYears([%BeginOfCurrentDayUTC%], -1), -2) (same, now the two week notification)
addWeeks(addYears([%BeginOfCurrentDayUTC%], -5), -1) (one week notification for five year anniversary)
addWeeks(addYears([%BeginOfCurrentDayUTC%], -5), -2)
addWeeks(addYears([%BeginOfCurrentDayUTC%], -10), -1)
addWeeks(addYears([%BeginOfCurrentDayUTC%], -10), -2)
Now you can retrieve employees six times, where joindate = datetime variable. Loop over them to send an email to the manager for each employee you found.
From your comments it looks like you already have a MF which can RUN everyday, Has a List of Employees with 1 Year Anniversary, a List of Employees with 5 Year Anniversary and a List of Employees with 10 Year Anniversary.
Assuming all this is ready in a MF, you now have to send email to these 2 lists.
So add 3 SUB MF’s which takes in a List of Employees. In this SUB MF,
Do 2 more SUB MF’s for 5 Year, 10 year respectively(i am assuming you may have a different email body for each of the Anniversary types)
Good luck.