Common reasons this occurs:
The dates have been changed after a task has been created, therefore the system is showing the old block and the new one, causing duplication.
The routine has been added in twice to the property by mistake.
Some basic rules around routines are:
The Start Date must be before your Annual Date.
Make the annual date the last day of the month, if you need the task to be due at the end of the month.
If you have attended site and are changing the dates after a task has been performed:
A scenario is going to be best to explain this well.
You've attended site for the first time for an Annual inspection on a fire extinguisher in January 2020. The 6 monthly automatically goes in July 2020, due to the routines forecasting. It continues on into the sunset.
You decide to change the schedule, and move the routines to be due in February 2020 and August 2020, however if you just move them to Feb 2020, you'll get a block in both Jan 2020 and Feb 2020. The way to fix this is:
Move the Start Date and Annual Date of the routine that is changing to AFTER the first service and after the current date (in the future). So for this example, you could move this Start Date to August 2020 and Annual Date to February 2021. This means the original service will stay, and likely be coloured green as you've attended, but the next service will be in August 2020.
If easier, an effective workaround for the problem where you've changed your Start and Annual Date and it has caused duplicates, is just removing the level and adding it back. This will make the blocks recalculate from the new dates set. If this doesn't work after several attempts, then a foolproof fix is removing the Routine from the property altogether then adding it back.
Important Note: All blocks that have tasks attached and always have data attached to them will not be affected, so there is absolutely no concern for removing the routine from the property, then adding it again.