There is some confusion on the flagging of shows as "new" vs "repeat". It has been discussed in other threads, but it's important enough to warranty a sticky topic.
Zap2IT labs used to use a "repeat=true" attribute to flag repeats.
Since then, Zap2IT (data source) has moved to a "new=true" attribute in most of their products. This effectively changed the default assumption from new to repeat... it helps with syndication.
Notes for applications that use the native XTVD files
Coding changes will be needed to use the "new" attribute instead of "repeat".
SP* episode IDs (Sports) seldom have the "new" attribute set. (consider them all "new")
EP* episode IDs only have the "new" attribute set the first time a show is aired. If it is reshown shown later that day or week it will not have the "new" attribute. Applications are encouraged to either augment repeat detection using "OriginalAirDate" or take episode-ids into account.
Notes for applications that use XMLTV files
The initial TV_GRAB_NA_DD release for Schedules Direct support didn't do a good job on repeat flagging. I suggest you use the current version. The tag for repeat flagging in XMLTV is <previously-shown>.
TV_GRAB_NA_DD sets <previously-shown> if the episode-id is a "EP" or "SH" type and the "new" attribute is not set.
Old versions of TV_GRAB_NA_DD simply created an empty previously-shown tag to flag a repeat. Now we place "original-air-date" as a start attribute. <previously-shown start=original-air-date>. Applications are encouraged to use previously-shown/start to augment repeat detection. In TV_CHECK, I consider "new" any episode less than 2 weeks old.
The <date> tag continues to have "original-air-date" if the DD "date" field is not provided. (typically is only provided for movies)
TV_GRAB_NA_DD removes <previously-shown> if the "new" attribute is set (OAD can be obtained from <date> if needed) This helps applications function well without code changes.