sorry to jump in here, but what i'd proably look at splitting this up into a few datafields
--- Next_visit_year (the year stored as a number using the formula provided above)
--- Next_scheduled_visit (date,assuming you set schedule manually at somepoint)
--- Actual_date_of_visit ( date, recorded when you visit the site )
You can use pipelines if you want to push to a team calendar, generate metrics for alignment with schedule, get lists of sites to visit by year of next visit, etc.
Field staff update the Actual_date after their visit. Keep the scheduled date editable unless the site has been visited, when the "Actual_date" is updated create the next_visit_year. Use piplines to push/edit linked calendars, etc.
You can get a number of useful metrics
------------------------------
joe vandervest
------------------------------