Px.timeline change bar length dynamically

I have been using px.timeline to draw a gantt style chart quite nicely but would like to add the ability to change the duration of tasks dynamically without recreating traces (this is for a web app which runs python on the server so I would need to go back to the server to redraw which adds a server round trip and delay).

My first thought was to change the data but what I have found is the data doesn’t have a logical x_start and x_end to adjust. See below what I get from print(fig.data)

WrappedObject<y=['Task 1'],
offsetgroup='Active',
textposition='auto',
legendgroup='Active',
hovertemplate='Contract Status=Active<br>Start=%{base}<br>Finish=%{x}<br>Client=%{y}<extra></extra>',
name='Active',
marker=WrappedObject<color='rgb(43, 182, 94)'>,
orientation='h',
type='bar',
xaxis='x',
showlegend=True,
yaxis='y',
x=[86400000],
base=[datetime.date(2021, 8, 15)],
alignmentgroup='True'>

I originally thought that x=[86400000], was what I was after but this does not change with a change in duration.
How can I do this with out redrawing the traces.
Any help would be much appreciated.