Como alterar as datas de início e término de um compromisso no Dynamics CRM 2011 via código ?

Ouvi reclamações sobre o CRM não deixar o campo de data de inicio e fim de um compromisso, receber data/hora “quebradas”. O que isso significa: você coloca 01/08/2011 14h23 e o CRM reajusta para 01/08/2011 14h30.

A primeira vista ele ajusta de 30 em 30minutos.
Veja a solução.

No OnLoad do formulário do compromisso, normalmente, você colocaria :

var dthAgora = new Date(); //ou qualquer outra data/hora
Xrm.Page.getAttribute("scheduledend").setValue(dthAgora);

Duas soluções:
1. Definir o campo Duração (recomendo), o que faz o CRM inserir o valor certo no campo de término, somando a duração à data/hora de início.

Xrm.Page.getAttribute("scheduleddurationminutes").setValue(new Date());



2. Mudar para que nosso código seja executado 50milisegundos após o carregamento, e com isso, garantimos que nosso código seja executado após o tratamento feito no campo pelo CRM. (Não sei se existe algum motivo para utilizar esse método)

var dthAgora = new Date(); //ou qualquer outra data/hora
Xrm.Page.getAttribute("scheduledend").setValue(dthAgora);
 
// setTimeout(código, intervalo em ms);
setTimeout(function(){ Xrm.Page.getAttribute("scheduledend").setValue(dthAgora); }, 50);