so could try this
Basically use an origin point and calculate a distance by the difference between this shape data data and some origin date
(you may need to put in some SETFs in the event doublclk cell to update the origin from from page or page legend shape)
prop.starttime = <some sort of start time....a fixed static value...maybe pick up from the page shape>
prop.nowtime = <time for this shape
user.timedelta = prop.nowtime-prop.starttime // find the delta to global start point
user.delta = user.timedelta * <some sort of increment...maybe 10mm>
pinx = guard (origin + user.delta) // origin may be from page shape
piny = <same sort of approach as X dimension>
so if shape in stencil
1: drag on to page
2: double click to get origin updated
(maybe use on drop event in shape sheet cell for setf(getref(prop.starttime), page!user.starttime))
3: edit properties to
A) confirm orgin (start date)
B) set the date for this shape
4: save
5: Shape should move to desired location on page.
Start with a single shape, make sure algorithm works...then can broaden out to other shapes
Also, need to make width and height of shape are know to be less than some max...otherwise shapes could lay on top of each other if too wide
good luck