...
Given your observation of a time change, I guess it is possible that the IceTV server sent an "action forget" message for the original time and no "action record" for the changed program time.
...
It might have, but changes in recording times can simply be sent as a "record" action - the plugin recognises that the timer already exists, and changes to the new settings.
Yes, I know time changes can be handled that way, but they aren't always. I've seen them done both ways.
Thinking about my case some more, it shouldn't have mattered if Ice didn't send the 'forget' as the subsequent 'record' should've been picked up by the plugin as an update to the existing timer as the 'eit' was the same, yes?
The original timer was - ice_timer_id=16351171943908770110
The change was - ice_timer_id=16351763215228887394
<timer begin="1512650700" end="1512654600" serviceref="1:0:1:2E2:261:3201:EEEE0000:0:0:0:" repeated="0" rename_repeat="1" name="Tonightly With Tom Ballard" description="Series 1, Episode 4" afterevent="auto" eit="59724" tags="" disabled="0" justplay="0" always_zap="0" descramble="1" record_ecm="0" isAutoTimer="0" ice_timer_id="16351171943908770110">
<log code="0" time="1512650680">Filename calculated as: '/media/hdd/movie/20171207 2045 - ABC COMEDY - Tonightly With Tom Ballard'</log>
<timer begin="1512651000" end="1512654900" serviceref="1:0:1:2E2:261:3201:EEEE0000:0:0:0:" repeated="0" rename_repeat="1" name="Tonightly With Tom Ballard" description="Series 1, Episode 4" afterevent="auto" eit="59724" tags="" disabled="0" justplay="0" always_zap="0" descramble="1" record_ecm="0" isAutoTimer="0" ice_timer_id="16351763215228887394">
<log code="0" time="1512650980">Filename calculated as: '/media/hdd/movie/20171207 2050 - ABC COMEDY - Tonightly With Tom Ballard'</log>
Cheers
Geoff