It's okay, I already have a minus.
It looks like this is my last comment here.

UPD:

  w $$Iso8601ToTimeStamp("2021-10-22T08:00:00+0900"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00+0100"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00+0200"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00-0140"),!

Iso8601ToTimeStamp(ts) {
  r=##class(%TimeStamp).XSDToLogical($e(ts,1,22)_":"_$e(ts,*-1,*))
  r," => "
  q $zdth(r,3)
 }

Output:

USER>do ^test
2021-10-21 23:00:00 => 66038,82800
2021-11-04 10:10:00 => 66052,36600
2021-11-04 09:10:00 => 66052,33000
2021-11-04 12:50:00 => 66052,46200

Try Built-in Modal Groups

E.g.:

Class dc.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen">
  <tablePane id="tp" sql="select 1 id, '2021-11-03' DT union select 2, '2022-01-24'">
    <column colName="id"/>
    <column colName="DT" link="javascript:zenPage.modalGroupCalendar('#(%query.DT)#');"/>
  </tablePane>
</page>
}

ClientMethod modalGroupCalendar(val) [ Language = javascript ]
{
  var group zenPage.createComponent('modalGroup');
  group.setProperty('onaction','zenPage.calendarAction(group);');
  group.show('Select a date:','calendar',val);
}

ClientMethod calendarAction(group) [ Language = javascript ]
{
  alert("You selected: " group.getValue());
  // SaveOnServer(); !
}

}

Try this:

Class dc.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen">
  <tablePane id="tp" sql="select 1 id, 'a' FollowUp union select 2,'b'">
    <column colName="id"/>
    <column colName="FollowUp" header="FollowUp Comments" width="9%" style="text-align:left;" OnDrawCell="txtFollowUp"/>
  </tablePane>
</page>
}

Method txtFollowUp(
  pTable As %ZEN.Component.tablePane,
  pName As %String,
  pSeed As %StringAs %Status
{
    &html<<textarea name="followup" rows="3" style=" width: 95%;" onchange="zenPage.saveFollowUp(this.value,#(%query("id"))#);">#(%query(pName))#</textarea>>
    Quit $$$OK
}

ClientMethod saveFollowUp(
  val,
  id) [ Language = javascript ]
{
  zenAlert(val,' <-> ',id);
}

}
Set object ##class(%ZEN.proxyObject).%New()
set object.city "New York"
set object.Target "TEST" 
set object.Details "TEST"
set object.RefCode "123"
set object.Reason "123TTTT"

set string=object.%Serialize()

;write string,!

set anotherObj=##class(%ZEN.proxyObject).%New()
do anotherObj.%ZENDeserialize(string)

write anotherObj.Reason ; ==> 123TTTT

codemode = code:

ClassMethod AddWater(
  s,
  = {$lb("",1,22,333,4444,55555,666666,7777777,88888888,999999999)},
  ""As %String
{
 i=1:1:$l(sr=r_$li(t,$e(s,i)+1)
 r
}

codemode = expression:

ClassMethod AddWater(
  s,
  = {"" r="" i=1:1:$l(st=$e(s,is:t r=r_$tr($j(t,t)," ",t)}) As %String CodeMode = expression ]
{
r
}

Required mapping ISCDC.inc from CACHESYS:

Include ISCDC

Class dc.test Abstract ]
{

ClassMethod AddWater(sAs %String
{
  i=$l(s):-1:1 t=$e(s,i),$e(s,i)=$$DC(t,t)
  s
}

}