Hi @izak,
Welcome to Plotly forum.
For a surface that theoretically is defined by an equation z = F(x, y), you must provide
x, y as 1d arrays, and z as a 2d array of shape (y.shape[0 ], x.shape[0]). Since you have x as a datetime, you have to associate an auxiliary numerical 1d array of the same length as the list of datetimes.
Here is a short example that can be adapted to your needs:
import numpy as np
import plotly.graph_objects as go
from datetime import datetime
d= [datetime(2019, 12, k).strftime("%m.%d.%y") for k in range(1,16)]
x = np.arange(1, 16)
y = np.linspace(-1, 1, 20)
X, Y = np.meshgrid(x, y)
z = X*Y
fig = go.Figure(go.Surface(x=x, y=y, z=z)) # x, y are 1D, while z is 2D
fig.update_scenes(xaxis_tickmode= 'array', xaxis_tickvals = x, xaxis_ticktext=d, )
fig.update_layout(width=800, height=800)
The 15-list, d, contains the strings giving datetimes.
x is an array of length 15. x[k] represents in the kth day in the list d.
Here z is computed by a formula, but you can provide z as a result of of your daily recordings.
z is 2d array.
In order to be displayed the datetimes as xaxis ticklabels, you have to define as tickvals
the x-values, and as ticktext
the list of strings defining the dates.