Compartir por


Editar os calendarios de horas de traballo usando as API

As organizacións a miúdo precisan crear, editar ou eliminar as horas de traballo nos calendarios dos seus recursos por programación. Os calendarios mostran o horario de traballo, o tempo libre e as pausas que determinan a dispoñibilidade dun recurso cando se está a programar o traballo. Eses recursos deben programarse en zonas horarias específicas, poden ou non observar o peche de empresas e poden ter capacidade variable. Para obter información sobre como definir as horas de traballo na aplicación Field Service, vai a Engadir horas de traballo a un recurso reservable.

Ademais de usar a aplicación Field Service, pode usar as seguintes API para modificar as regras do calendario para os tipos de rexistro seleccionados:

  • A API de gardar calendario (msdyn_SaveCalendar) crea ou actualiza rexistros de calendario nunha entidade seleccionada, en función das entradas enviadas como solicitude.
  • A API Delete Calendar (msdyn_DeleteCalendar) elimina todas as regras de calendario internas dun calendario nunha entidade seleccionada, en función das entradas enviadas como solicitude.
  • A API Save/Delete Calendar V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pase a marca UseV2) permite repetir varias horas de traballo simultaneamente modificando a lóxica das regras superpostas. Para obter máis información, consulte Que ocorre se hai regras superpostas?.

Este artigo contén detalles sobre a entrada (solicitude) e saída de cada API (resposta) e o seu uso, con exemplos.

Requisitos previos

  • Versión de plataforma 9.2.21055 ou superior coa versión de Universal Resource Scheduling 3.12.45.7.
  • Uso dun dos seguintes tipos de rexistro:
    • Recurso reservable (recurso reservable)
    • Requisito de recursos (msdyn_resourcerequirement)
    • Modelo de hora de traballo (msdyn_workhourtemplate)
    • Proxecto (msdyn_project)

Tipos de eventos de calendario

Cando creas un calendario, defines cantas veces se produce un tipo de hora de traballo : unha, todo o día, cada semana ou todos os días, ou podes crear unha recorrencia personalizada. . Para obter máis información sobre estes eventos do calendario, consulta os exemplos que aparecen máis adiante neste artigo.

Ocorrencia

Cando un tipo de hora de traballo aparece só unha vez no calendario da entidade, denomínase ocorrencia.

Por exemplo, considere un recurso que traballa de 05:00 a 10:00 o 26 de maio de 2021. Estas API só admiten este tipo de ocorrencia, que comeza e remata no mesmo día. Como outro exemplo, considere un recurso que traballa desde o 26 de maio de 2021 ás 20:00 ás 10:00 horas do 27 de maio de 2021. Non podes crear esta ocorrencia usando só unha chamada da msdyn_SaveCalendar API; cómpre facer dúas chamadas no seu lugar.

Ocorrencia de todo o día

Cando se produce un tipo de hora de traballo durante un ou máis días enteiros, a partir da media noite (00:00) da data de inicio, trátase dunha ocorrencia de todo o día. A duración máxima dunha ocorrencia de todo o día é de cinco anos.

Por exemplo, un recurso traballa todo o día desde o 26 de maio de 2021 ata o final do día o 30 de maio de 2021. Esta é unha ocorrencia de todo o día que dura cinco días.

Periodicidade semanal

Cando se produce un tipo de hora de traballo á mesma hora en días seleccionados de cada semana, denomínase repetición semanal.

Por exemplo, un recurso traballa de 05:00 a 10:00 todos os luns, martes e mércores.

Periodicidade diaria

Cando un tipo de hora de traballo ocorre á mesma hora todos os días, denomínase recorrencia diaria.

Por exemplo, un recurso traballa de 05:00 a 10:00 todos os días da semana.

Periodicidade personalizada

Cando se produce un tipo de hora de traballo a determinadas horas de determinados días da semana, pero os horarios son diferentes en días diferentes, podes crear unha repetición personalizada.

Por exemplo, un recurso traballa de 05:00 a 10:00 todos os luns e de 12:00 a 15:00 todos os mércores.

Tipos de horarios de traballo

Estas API admiten operacións de creación, actualización e eliminación para os seguintes tipos de horarios de traballo:

Horas laborables

Os horarios de traballo son as horas nas que unha entidade está dispoñible para realizar o traballo.

Usando estas API, pode facer o seguinte:

  • Crear, editar ou eliminar unha ocorrencia de horario laboral.
  • Crear, editar ou eliminar unha ocorrencia diaria de horario laboral.
  • Crear, editar ou eliminar unha ocorrencia semanal de horario laboral.
  • Crear, editar ou eliminar unha ocorrencia personalizada de horario laboral.
  • Crear, editar ou eliminar un horario laboral de todo o día.
  • Crear ou editar a capacidade no horario de traballo.
  • Editar unha soa ocorrencia de horario de traballo nunha periodicidade.
  • Edita Esta e as seguintes ocorrencias nunha repetición.
  • Cambiar unha ocorrencia de horario de traballo por unha periodicidade.
  • Cambiar o fuso horario da regra de calendario.

Usando esta API, non pode facer o seguinte:

  • Eliminar unha soa ocorrencia de horario de traballo dunha periodicidade.
  • Crear unha ocorrencia que abranga 24 horas pero que non comece e remate a medianoite (00:00).
  • Crear, editar ou eliminar unha periodicidade de todo o día.

Hora non laboral

Son momentos nos que a entidade non está dispoñible para traballar por un motivo non especificado.

Usando estas API, pode facer o seguinte:

  • Crea ou edita horas non laborables durante todo o día.
  • Crea ou edita unha ocorrencia de hora non laborable.
  • Cambiar o fuso horario da regra de calendario.

Usando estas API, non pode facer o seguinte:

  • Crea ou edita unha recorrencia de horas non laborables.

Quebra

Son momentos dunha xornada laboral durante a cal unha entidade está a descansar e non está dispoñible para traballar. Non poden existir descansos sen horario laboral; teñen que producirse entre dúas horas de traballo dun día. As pausas non se poden solapar coas horas de traballo.

Usando estas API, pode facer o seguinte:

  • Crear ou editar pausas durante un horario de traballo.

Usando estas API, non pode facer o seguinte:

  • Eliminar só as pausas dunha ocorrencia ou periodicidade de horas de traballo.

Tempo libre

Son momentos nos que unha entidade non está dispoñible para traballar debido a vacacións. Pódese especificar o motivo do tempo libre.

Usando estas API, pode facer o seguinte:

  • Crear ou editar un tempo libre cunha etiqueta.
  • Cambiar o fuso horario da regra de calendario.

Usando estas API, non pode facer o seguinte:

  • Crear ou editar unha periodicidade de horario de tempo libre.

Peche de empresa

Podes crear entidades de peche empresarial que definan as horas de peche da empresa. Usando a msdyn_SaveCalendar API, podes configurar todas as entidades para que observen ou ignoren os horarios de peche da empresa mediante a chave opcional ObserveClosure . Cando están configurados para observar estes peches, as entidades non están dispoñibles para traballar.

API Save Calendar

Entrada

A solicitude contén só un atributo: CalendarEventInfo, que é un tipo String . Contén outros atributos que están todos incorporados nesta cadea.

Nota

Na seguinte táboa, Tipo representa o formato que se espera para realizar unha solicitude correcta. Non obstante, toda a solicitude analízase como unha única cadea.

CalendarEventInfo

Nome Tipo Obrigatorio Descripción
EntityLogicalName String Si Esta clave describe a entidade desde a que se está chamando á API. O calendario desta entidade debe ser creado ou editado.
CalendarId GUID Si Esta clave contén o ID do calendario relacionado coa entidade descrita anteriormente. Cando se crea algunha destas entidades, tamén se crea automaticamente un rexistro de calendario. Estas API editan ese rexistro de calendario engadindo regras ou editando regras existentes.
RulesAndRecurrences RulesAndRecurrences Si Esta clave é unha matriz e cada elemento contén varios atributos como se indica na táboa na seguinte sección. O tamaño da matriz debe ser polo menos un.
IsVaried Boolean No Esta chave debe establecerse en true para escenarios de recorrencia personalizados.
IsEdit Boolean No Esta chave debe establecerse en true para editar as regras existentes.
TimeZoneCode Número enteiro No Esta clave toma un valor enteiro correspondente á zona horaria para as regras do calendario. Para a asignación, vai a Códigos de zona horaria, máis adiante neste artigo. O valor predeterminado é a zona horaria do usuario.
InnerCalendarDescription String No Esta clave só é necesaria se a regra do calendario é para tempo libre. Debe conter o motivo do tempo libre.
ObserveClosure Boolean No Esta clave é específica das periodicidades. Se se establece en true, a entidade observa o peche da empresa.
RecurrenceEndDate DataHora No Esta clave é específica das periodicidades. Contén a data de finalización da periodicidade. Se a marca de tempo é 08:00:00 ou anterior, a data de finalización da periodicidade é un día antes da data especificada. Se a marca de tempo é 08:00:01 ou posterior, a data respéctase tal cal. O valor predeterminado para as ocorrencias é nulo. O valor predeterminado para as repeticións é o 30 de decembro de 9999, 23:59:59 horas, UTC.
RecurrenceSplit Boolean No Esta clave é específica das periodicidades. Establécese como true para editar "Esta e as seguintes ocorrencias" dunha recorrencia.
ResourceId GUID No Esta chave contén o SystemUserId ou ResourceId e só se debe pasar cando a entidade asociada a esta chamada é unha recurso reservable de tipo SystemUser. Isto é necesario para comprobar os privilexios de OwnCalendar na pestana Xestión de servizos .
UseV2 Marca No Ao pasar esta marca habilita a versión V2 do calendario de horas de traballo, cunha lóxica de regras superpostas mellorada que permite repetir varias veces. Para obter máis información, consulte Que ocorre se hai regras superpostas?.

RulesAndRecurrences

Nome Tipo Obrigatorio Descripción
Regras Regras Si Esta clave é unha matriz e cada elemento contén varios atributos como se indica na táboa na seguinte sección. O tamaño da matriz debe ser polo menos un.
RecurrencePattern String No Esta clave é específica das periodicidades. Actualmente só admitimos este patrón: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY pódese cambiar para incluír menos días; Non obstante, FREQ e INTERVAL non se pode cambiar.
InnerCalendarId GUID No Esta clave é específica para editar. Se se edita unha regra, o InnerCalendarId debe ser aprobado aquí. Se non se aproba un InnerCalendarId , a API crea unha nova regra, aínda que a clave IsEdit sexa certa.
Acción Número enteiro No Esta clave é específica das periodicidades personalizadas. Se se está a crear ou editar unha periodicidade personalizada, debería introducirse un dos seguintes números:
  • (1) Engadir un día á periodicidade
  • (2) Borrar un día da recorrencia
  • (3) Editar só as datas ou horas de inicio ou fin ou a capacidade de edición
  • (4) Editar calquera outra cousa que non sexan as claves mencionadas en (3)

Regras

Nome Tipo Obrigatorio Descripción
StartTime DataHora Si Esta clave contén unha entrada datetime en formato ISO. Por exemplo, \"2021-05-15T12:00:00.000Z\" A parte da hora determina a hora de inicio do horario de traballo na zona horaria especificada anteriormente. A parte da data determina a data de inicio do horario de traballo. Aquí, o 15 de maio de 2021 é a data da ocorrencia ou a data de inicio da periodicidade. Se o patrón era BYDAY=TU,WE, pero o 15 de maio (un sábado) é a data, a API creará ou editará automaticamente normas para todos os martes e mércores seguintes ao 15 de maio. É o caso no que a regra non ten por que ter a data correspondente ao día.
EndTime DataHora Si Isto contén unha entrada en data en formato ISO. Por exemplo, \"2021-05-15T12:00:00.000Z\" A parte da hora determina a hora de fin do horario de traballo na zona horaria especificada anteriormente. A parte de data debe conter a mesma data que a data da hora deinicio. As únicas excepcións son:
  • se é unha ocorrencia de todo o día. Neste caso, a parte da data debería reflectir a data de finalización da ocorrencia de todo o día.
  • A ocorrencia remata ao final do día, é dicir, ás 00:00 do día seguinte. Neste caso, a data debe ser \"2021-05-16T00:00:00.000Z\". Para especificar a data de finalización da recorrencia, modifica o atributo RecurrenceEndDate .
WorkHourType Número enteiro Si Esta clave contén un número correspondente a unha das seguintes opcións:
  • (0) Traballando
  • (1) Pausa
  • (2) Non traballar
  • (3) Tempo libre
Esforzo Número enteiro No Esta clave determina a capacidade da entidade. Debe ser un número enteiro. O valor predefinido é 1.

Saída

Esta API POST crea ou modifica rexistros de regras de calendario para a entidade seleccionada. Tamén dá a seguinte saída.

Nome Tipo Descripción
InnerCalendarIds String Unha serie de GUIDs InnerCalendarIds que son o resultado da operación POST.

API Delete Calendar

Entrada

Nome Tipo Requisitos Descripción
EntityLogicalName String Si Este campo describe a entidade cuxas regras de calendario se van eliminar.
InnerCalendarId GUID Si Este campo describe o DNI do InnerCalendarId que debe ser eliminado. Se hai varios InnerCalendarIds asociados cunha única regra, calquera ID é suficiente aquí. Máis información sobre calendarios interiores e exteriores: Entidades do calendario
CalendarId GUID Si Este campo describe o CalendarId da entidade.
IsVaried Boolean No Este campo é específico das recorrencias, e establécese se yes se elimina unha regra de recorrencia personalizada.
UseV2 Marca No Ao pasar esta marca habilita a versión V2 do calendario de horas de traballo, cunha lóxica de regras superpostas mellorada que permite repetir varias veces. Para obter máis información, consulte Que ocorre se hai regras superpostas?.

Saída

Esta API POST elimina rexistros de regras de calendario para a entidade seleccionada. Ademais, tamén dá a seguinte saída.

Nome Tipo Descripción
InnerCalendarIds String Unha serie de GUIDs InnerCalendarIds que son o resultado da operación POST.

Cargar Calendario API

Entrada

Nome: msdyn_LoadCalendars
Tipo: Acción
Descrición: Calendarios de devolucións dados LoadCalendarsInput.

Nome: msdyn_LoadCalendars.LoadCalendarsInput
Tipo: Parámetro
Descrición: Cadea no seguinte formato JSON:

{
   StartDate: string,
   EndDate: string,
   CalendarIds: string[]
}

Nome: msdyn_LoadCalendarsResponse
Tipo: ComplexType
Descrición: Contén o resposta da acción msdyn_loadCalendars.

Nome: msdyn_LoadCalendarsResponse.CalendarioEvents
Tipo: Propiedade
Descrición: Cadea no seguinte formato JSON:

{
"calendarId": CalendarEventSlot[]
}

Onde calendarId é unha guía adecuada que representa a Guid do Calendario e CalendarEventSlot é un obxecto do seguinte formato:

{
  CalendarId: string,
  InnerCalendarId: string,
  Start: string,
  End: string,
  Effort: double
}

Como chamar ás API

Estas API pódense chamar usando o explorador.

  1. Abra o explorador e a organización na que necesita facer estes cambios de calendario.
  2. Open Developer Tools (seleccione Ctrl+Shift+I in Microsoft Edge, seleccione F12 en Google Chrome).
  3. Na consola, introduce a seguinte función, despois de substituír [org-name] por detalles org (por exemplo, http://your_org.crm.dynamics.com):
       function CalendarAction(action, data) {
           let req = new XMLHttpRequest();
           req.open("POST", "**[org-name]**/api/data/v9.0/" + action, true);
           req.setRequestHeader("OData-MaxVersion", "4.0");
           req.setRequestHeader("OData-Version", "4.0");
           req.setRequestHeader("Accept", "application/json");
           req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
           req.setRequestHeader("Prefer", 'odata.include-annotations="*"');
           req.onreadystatechange = function () {
               if (this.readyState === 4) {
                   req.onreadystatechange = null;
                   if(this.status == 200) {
                       console.log(JSON.parse(this.response));
                   } else {
                       console.error(JSON.parse(this.response));
                   }
               }
           };
           req.send(JSON.stringify(data));
       }
  1. Despois de definir esta función, pode chamala para crear, editar ou eliminar calendarios usando as API. Introduce a seguinte chamada para gardar un calendario:
       CalendarAction("msdyn_SaveCalendar",{
           "CalendarEventInfo":"{
               \"CalendarId\":\"df0857c4-50f5-4576-8e89-f236670ad2d5\",
               \"EntityLogicalName\":\"bookableresource\",
               \"TimeZoneCode\":92,\"StartDate\":\"2021-04-25T00:00:00.000Z\",
               \"IsVaried\":false,
               \"RulesAndRecurrences\":[{
                   \"Rules\":[{
                       \"StartTime\":\"2021-04-25T08:00:00.000Z\",
                       \"EndTime\":\"2021-04-25T17:00:00.000Z\",
                       \"Duration\":540,
                       \"Effort\":1
                   }]
               }]
           }"
       })

Introduce a seguinte chamada para eliminar un calendario:

       CalendarAction("msdyn_DeleteCalendar", {
           "CalendarEventInfo":"{
               \"CalendarId\":\"8390358c-77d0-430f-b176-f27adadac8eb\",
               \"EntityLogicalName\":\"bookableresource\",
               \"InnerCalendarId\":\"cf508c2c-5c55-485c-be1e-d2ebcb385441\"
           }"
       })
       

Consulte a seguinte sección para ver exemplos de como facer diferentes chamadas en función das súas necesidades. Substituír a action convocatoria de funcións no paso 3 por msdyn_SaveCalendar ou msdyn_DeleteCalendar, e substituír data polo pertinente CalendarEventInfo.

Vexa tamén a seguinte captura de pantalla para unha Power Automate chamada de msdyn_SaveCalendar acción: Power Automate Convocatoria msdyn_SaveCalendar acción.

Exemplos de escenarios para o uso da API

Imos percorrer algúns escenarios para os que pode usar estas API.

Bob e Tim son condutores de camións de reparto para Contoso Enterprises en Bellevue, Washington. A súa distribuidora, Debbie, é a responsable de facer cambios nos calendarios dos horarios de traballo. Debbie fai estes cambios usando as APIs e msdyn_SaveCalendar as msdyn_DeleteCalendar APIs.

Cree unha ocorrencia de horario laboral.

Está previsto que Bob conduza para entregar paquetes de 09:00 a 17:00 o 15 de maio de 2021. Debbie usa a msdyn_SaveCalendar API.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T09:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Edite unha ocorrencia de horario laboral.

O horario de Bob cambia entón para comezar ás 10:00 da mañá do 15 de maio de 2021. Debbie usa a msdyn_SaveCalendar API.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-15T10:00:00.000Z\",\"EndTime\":\"2021-05-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Elimine unha ocorrencia de horario laboral.

Chega unha emerxencia familiar e Bob ten que cancelar todo un día de traballo. Debbie usa a msdyn_DeleteCalendar API.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}"
}

Resposta

{
  "InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}

Crear unha periodicidade diaria de horario laboral

A partir do 20 de maio de 2021, Bob decide traballar con Contoso toda a semana de 8:00 a 17:00 horas, e deixará de traballar alí o 15 de xullo de 2021.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-07-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\"]"
}

Editar un horario laboral de periodicidade diaria con maior capacidade

Bob decide deixar de traballar durante toda a semana do 15 de xuño de 2021 para facer un descanso. Ata entón, Bob continuará o calendario de toda a semana tal e como se acordou anteriormente. Debbie fai estes cambios usando a msdyn_SaveCalendar API.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RecurrenceEndDate\":\"2021-06-15T00:00:00.000Z\",\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T08:00:00.000Z\",\"EndTime\":\"2021-05-20T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"20f6cfa7-cfbe-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"867a2461-cdbe-eb11-a81d-000d3a6e4359\"]"
}

Crear unha periodicidade semanal de horario laboral

A partir do 16 de xuño de 2021, Bob traballará de 8:00 a 17:00 horas os mércores e venres, e tomará un descanso de 12:00 a 12:30 horas para xantar. Debbie usa a msdyn_SaveCalendar API, pero comete un erro, e programa o descanso de 12:00 a 13:00 horas.

Solicitude

{
  "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-16T08:00:00.000Z\",\"EndTime\":\"2021-06-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-16T12:00:00.000Z\",\"EndTime\":\"2021-06-16T13:00:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-16T13:00:00.000Z\",\"EndTime\":\"2021-06-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}

Editar unha pausa dunha periodicidade semanal de horario laboral

Debbie corrixe entón o erro e cambia o descanso para ocorrer de 12:00 PM a 12:30 PM usando a msdyn_SaveCalendar API.

Solicitude

{
  "CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"IsEdit\":\"true\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T08:00:00.000Z\",\"EndTime\":\"2021-06-15T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}, {\"StartTime\":\"2021-06-15T12:00:00.000Z\",\"EndTime\":\"2021-06-15T12:30:00.000Z\",\"Effort\":null,\"WorkHourType\":1}, {\"StartTime\":\"2021-06-15T12:30:00.000Z\",\"EndTime\":\"2021-06-15T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"InnerCalendarId\":\"1f894441-d0be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE,TH,FR\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}

Crear unha periodicidade personalizada de horario laboral

Tim traballa para Contoso os luns de 8:00 a 17:00 e os mércores de 11:00 a 15:00. Tim comezou a traballar fo Contoso o 16 de maio de 2021. Debbie usa a msdyn_SaveCalendar API para crear as horas de traballo de Tim.

Solicitude

{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T11:00:00.000Z\",\"EndTime\":\"2021-05-16T15:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\", \"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}

Editar unha periodicidade personalizada de horario laboral

O horario de Tim cambia entón ao horario de traballo desde os mércores de 5:00 a 20:00 horas, e o xoves de 10:00 a 12:00 horas. O luns retírase do calendario de Tim. Debbie usa a msdyn_SaveCalendar API para conseguilo.

Solicitude

{
"CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"IsVaried\":true,\"IsEdit\":true,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-16T08:00:00.000Z\",\"EndTime\":\"2021-05-16T17:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":2,\"InnerCalendarId\":\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=MO\"},{\"Rules\":[{\"StartTime\":\"2021-05-16T17:00:00.000Z\",\"EndTime\":\"2021-05-16T20:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":3,\"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\",\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=WE\"}, {\"Rules\":[{\"StartTime\":\"2021-05-16T10:00:00.000Z\",\"EndTime\":\"2021-05-16T12:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}],\"Action\":1,\"InnerCalendarId\":null,\"RecurrencePattern\":\"FREQ=WEEKLY;INTERVAL=1;BYDAY=TH\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}

Editar unha ocorrencia de horario de traballo nunha periodicidade

O 26 de maio de 2021, Tim só pode traballar de 13:00 a 19:00. Debbie usa a msdyn_SaveCalendar API aquí.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-26T13:00:00.000Z\",\"EndTime\":\"2021-05-26T19:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}], \"InnerCalendarId\":\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}

Eliminar unha periodicidade personalizada de horario laboral

Tim decidiu deixar a empresa e ten que borrar toda a súa axenda. Debbie usa a msdyn_DeleteCalendar API aquí.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"34d2210c-9fb6-eb11-a820-000d3afb1dba\",\"IsVaried\":true}"
}

Resposta

{
  "InnerCalendarIds": "[\"a2b8c199-d1be-eb11-a81d-000d3a6e4359\", \"942bda0f-d3be-eb11-a81d-000d3a6e4359\"]"
}

Crear tempo libre

Tim tomará tres días de tempo libre para unhas vacacións en familia a partir do 9 de xuño de 2021.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"InnerCalendarDescription\":\"Family Vacation\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-06-15T00:00:00.000Z\",\"EndTime\":\"2021-06-17T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":3}]}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"266c434e-d5be-eb11-a81d-000d3a6e4359\"]"
}

Crear horario de traballo de todo o día

Tim ten unha quenda de 72 horas a partir do 20 de maio de 2021. Debbie usa a msdyn_SaveCalendar API para crear as horas de traballo de Tim.

Solicitude

{
 "CalendarEventInfo": "{\"CalendarId\":\"a68245c9-ba2e-4496-9c18-3bee75fda396\",\"EntityLogicalName\":\"bookableresource\",\"TimeZoneCode\":5,\"RulesAndRecurrences\":[{\"Rules\":[{\"StartTime\":\"2021-05-20T00:00:00.000Z\",\"EndTime\":\"2021-05-22T00:00:00.000Z\",\"Effort\":1,\"WorkHourType\":0}]}]}"
}

Resposta

{
  "InnerCalendarIds": "[\"6e160a8e-d5be-eb11-a81d-000d3a6e4359\"]"
}

Preguntas máis frecuentes sobre

Recibo o erro: "Hora de inicio non pode ser maior ou igual a Hora de finalización".

Asegúrese de que non hai solapamentos nas franxas horarias das diferentes regras do calendario. Comproba as datas para asegurarte de que Hora de inicio non sexa posterior á Hora de finalización. Comprobe tamén que as horas seguen o formato de 24 horas.

Pódense usar as API para actualizar a entidade "Modelos de horas de traballo"?

Si, pode usar esta API para crear e actualizar modelos de horas de traballo ademais das horas de traballo de recursos.

Recibo o erro: "Houbo un erro ao deserializar o obxecto de tipo Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. A fonte de entrada non ten o formato correcto.
or
Esperando estado "Elemento"... Encontrouse "Texto" co nome "", espazo de nomes "".

Asegúrese de que a cadea estea analizada correctamente. Pode que falten corchetes, comas ou puntos e coma.

Recibo o erro "Patrón de repetición non válido. Consulte a documentación para ver os patróns admitidos".

Actualmente só admitimos este patrón: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY pódese cambiar para incluír menos días; Non obstante, FREQ e INTERVAL non se pode cambiar. Asegúrese de que non hai espazos no padrón.

Como obtemos información do CalendarId e do InnerCalendarId do recurso?

O CalendarId pódese recuperar dos atributos do recurso. Fai esta chamada para obter esta información: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Un exemplo da convocatoria anterior sería [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

O InnerCalendarId pódese recuperar dos atributos do calendario. Fai esta chamada para obter esta información: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Un exemplo da convocatoria anterior é [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Que pasa se hai regras superpostas?

Hai un par de rangos diferentes nas que se inclúen as regras:

  • Rango 1 : ocorrencia diaria (traballando/non traballando) e tempo libre.
  • Rango 0 - recorrencia semanal (traballando/non traballando).

Regras de superposición V2

  • As regras de rango 1 teñen unha prioridade superior ás regras de rango 0. Se hai dúas regras (unha de cada rango) o mesmo día, a ocorrencia diaria ou a ocorrencia de tempo libre terán prioridade sobre a repetición semanal.
  • Cando hai varias regras de Rango 0 no mesmo período de datas:
    • Se os tempos non se cruzan, ambos permanecerán no calendario.
    • Se os tempos se cruzan, a regra que se creou/modificou máis recentemente é a que se considera para o calendario do recurso. Elimínanse todas as demais regras que se cruzan no período de datas. Se algunhas regras de rango 0 teñen interseccións nalgunhas datas pero non noutras, a regra empalmase para conservar as seccións que non se cruzan, mentres que se eliminan as partes que se cruzan.

Exemplos de comportamento do calendario V2:

Exemplo 1 - Horas de traballo repetidas: datas superpostas sen días/horas superpostos

Para un período determinado, un técnico traballa en quendas de mañá, tarde ou noite en diferentes días.

  1. Crea unha primeira regra de calendario repetida para un determinado intervalo de datas. Por exemplo: Repetir Lun, Mar; 1.1-4.1; 8:00-17:00 ET.

  2. Crea unha segunda regra de calendario repetida para un intervalo de datas que se cruza, ao tempo que te aseguras de que as horas de traballo non se crucen cos días ou horas anteriores. Por exemplo: Repetir Mér, Xov; 1.1-4.1; 8:00-17:00 ET ou Repetir Lun, Mar; 1.1-4.1; 17:00-20:00 ET.

Resultado: ambas as regras do calendario permanecen e conviven.

Exemplo 2: Horas de traballo repetidas: algunhas datas superpostas, con todos os días superpostos e a segunda regra comeza/acaba antes ou despois da primeira regra

Un técnico recibe un novo horario de traballo, que substitúe algunhas semanas do seu antigo horario. Por contrato traballan sempre os mesmos días todas as semanas.

  1. Crea unha primeira regra de calendario repetida para un determinado intervalo de datas. Por exemplo: Repetir Lun, Mar; 2.1-4.1; 8:00-17:00 ET.

  2. Crea unha segunda regra de calendario repetida para un intervalo de datas superposto, onde todos os días teñan horas de traballo superpostas. Escolle datas de inicio/fin para esta nova regra que sexan anteriores ou posteriores á data de inicio/fin da primeira regra. Por exemplo: Repetir Lun, Mar; 3.1-5.1; 13:00-20:00 ET.

Resultado: a primeira regra truncase para acomodar a data de inicio/fin da segunda regra. Por exemplo: Repetir Lun, Mar; 2.1-2.28; 8:00-17:00 ET E Repetir Lun, Mar; 3.1-5.1; 13:00-20:00 ET.

Exemplo 3: horas de traballo repetidas: todas as datas superpostas, con algúns días/horas superpostos

O técnico é un traballador contratado por un período determinado de 2 meses. Acordaron asumir un traballo adicional nalgúns días. Queren cambiar o horario de traballo dos martes a un horario anterior/posterior.

  1. Crea algunhas regras de calendario repetidas para un determinado intervalo de datas. Por exemplo: Repetir Lun, Mar; 2.1-4.1; 8:00-12:00 ET E Repetir mar, mércores; 2.1-4.1, 13:00-17:00 ET.

  2. Crea unha nova regra de calendario repetida para o mesmo intervalo de datas. Escolle días/horas que se superpoñan parcialmente coas regras orixinais. Por exemplo: Repetir mar, xoves ; 2.1-4.1; 10:00-14:00 ET.

Resultado: a nova regra sobrescribe a antiga onde hai superposicións e deixa as outras sen cambios. Por exemplo: Repetir Lun; 2.1-4.1; 8:00-12:00 ET E Repetir mércores; 2.1-4.1; 13:00-17:00 ET AND Repetir mar, xoves ; 2.1-4.1; 10:00-14:00 ET.

Exemplo 4: horas de traballo repetidas: datas novas contidas na regra antiga, algúns días/horas superpostos

Un técnico traballa de 8:00 a 17:00 de luns a venres todas as semanas. Só durante dúas semanas, xestionarán un proxecto especial de emerxencia cada luns a mércores con diferentes horarios de traballo de 6:00 a 18:00.

  1. Crea unha primeira regra de calendario repetida para un determinado intervalo de datas. Por exemplo: Repetir Lun, Mar, Mér, Xove, Ven; 1.1-Sen data de finalización; 8:00-17:00 ET.

  2. Crea unha segunda regra de calendario repetida contida dentro do intervalo de datas anterior, escolla as horas de traballo que se solapan nalgúns días. Por exemplo: Repetir Lun, Mar, Mér; 5.1-5.14; 6:00-6:00 ET.

Resultado: o calendario debería ter catro regras repetitivas ao final deste exercicio:

  • Trunque a primeira regra á data de inicio da segunda regra
  • A segunda regra do calendario
  • Crear unha nova regra similar á primeira pero coas datas da segunda regra para os días que non se solapan
  • Trunque a primeira regra para comezar a partir da data de finalización da segunda regra, sen data de finalización

Por exemplo: Repetir Lun, Mar,Mer,Xov,Ven; 1,1-4,30; 8am-5pm ET AND Repetir Lun, Mar,Mer; 5.1-5.14; 6am-6pm ET AND Repetir Xov, Ven, 5.1-5.14; 8:00-17:00 ET E Repetir Lun, Mar, Mér, Xove, Ven; 5.15–Sen data de finalización; 8:00-17:00 ET

Exemplo 5: horas de traballo non repetidas (ocorrencia, regra de rango 1)

Un técnico dispón dunha serie de días de cohesión de equipo, que teñen prioridade sobre todas as demais instancias de horas de traballo da xornada.

  1. Crea unha regra de calendario repetida para un determinado intervalo de datas. Por exemplo: Repetir Lun, Mar, Mér, Xove, Ven; 1.1-Sen data de finalización; 8:00-17:00 ET.

  2. Crea unha regra de calendario que non se repita dentro do intervalo de datas anterior. Escolle horas de traballo que se superpoñan nalgúns días. Por exemplo: Non repetir; 6,21; 7:00-13:00 ET.

Resultado: o calendario debe ter 1 regra de non repetición (ocorrencia) ao final do exercicio. A regra de non repetición anula o evento de repetición superposto durante todo o día. Por exemplo: Repetir Lun, Mar, Mér, Xove, Ven; 1.1-Sen data de finalización excepto 6.21; non repetir; 6,21; 7:00-13:00 ET.

Regras de superposición V1

  • As regras de rango 1 teñen unha prioridade superior ás regras de rango 0. Polo tanto, se houbese dúas regras (unha de cada rango) o mesmo día, a ocorrencia diaria ou a ocorrencia de tempo libre terán prioridade sobre a repetición semanal.
  • Se hai dúas regras do mesmo rango, a regra que se creou/modificou recentemente será a que se considere para o calendario do recurso.
  • Teña en conta que as ocorrencias de todo o día son do rango 1, polo que pode que considere cambialo por unha recorrencia semanal para poder engadir horas de traballo da ocorrencia e que se respecten.
  • Cando existe unha hora de traballo e se crea unha ocorrencia que se superpón, as regras divídense de xeito que se respecte o tempo libre e o tempo restante como horas de traballo permanecerá tal cal. Por exemplo, se hai horario de traballo de 08:00 a 17:00 o 21 de setembro e se engade un tempo de descanso de 15:00 a 19:00 o 21 de setembro, resolveríase como horario de traballo de 20:00 a 15:00 e tempo libre de 15:00 a 19:00. Non obstante, se as regras se creasen na orde contraria (creouse o tempo libre primeiro e despois creáronse as horas de traballo) independentemente dos períodos de tempo, só se volvería seleccionar a hora de traballo. O tempo libre sería anulado.

Códigos de fuso horario

Enumeración Fuso horario
0 (GMT-12:00) Liña de data internacional de Occidente
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawai
3 (GMT-09:00) Alasca
4 (GMT-08:00) Hora do Pacífico (EUA e O Canadá)
5 (GMT-08:00) Baixa California
6 (GMT+11:00) Hora Universal Coordinada-11
7 (GMT-10:00) Illas Aleutianas
8 (GMT-09:30) Illas Marquesas
9 (GMT-09:00) Hora Universal Coordinada-09
1,0 (GMT-07:00) Hora das Montañas (EUA e O Canadá)
11 (GMT-08:00) Hora Universal Coordinada-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlán
15 (GMT-07:00) Arizona
20 (GMT-06:00) Hora Central (EUA e O Canadá)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalaxara, Cidade de México, Monterrei
33 (GMT-06:00) Centroamérica
34 (GMT-06:00) Illa de Pascua
35 (GMT-05:00) Hora Oriental (EUA e O Canadá)
40 (GMT-05:00) Indiana (Leste)
43 (GMT-05:00) Haití
44 (GMT-05:00) A Habana
45 (GMT-05:00) Bogotá, Lima, Quito, Río Branco
47 (GMT-04:00) Caracas
50 (GMT-04:00) Hora atlántica (Canadá)
51 (GMT-05:00) Illas Turcas e Caicos
55 (GMT-04:00) Georgetown, La Paz, San Xoán
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiabá
59 (GMT-04:00) Asunción
60 (GMT-03:30) Terra Nova
65 (GMT-03:00) Brasilia
69 (GMT-03:00) Bos Aires
70 (GMT-03:00) Caiena, Fortaleza
71 (GMT-03:00) O Salvador
72 (GMT-03:00) Saint-Pierre-et-Miquelon
73 (GMT-03:00) Grenlandia
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Atlántico Central
76 (GMT-02:00) Hora Universal Coordinada-02
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azores
83 (GMT-01:00) Illas de Cabo Verde
84 (GMT+01:00) Casablanca
85 (GMT+00:00) Dublín, Edimburgo, Lisboa, Londres
90 (GMT+00:00) Monrovia, Reiquiavik
92 (GMT) Horario universal coordinado
95 (GMT+01:00) Belgrado, Bratislava, Budapest, Liubliana, Praga
100 (GMT+01:00) Saraxevo, Skopje, Varsovia, Zagreb
105 (GMT+01:00) Bruxelas, Copenhague, Madrid, París
110 (GMT+01:00) Ámsterdam, Berlín, Berna, Roma, Estocolmo, Viena
113 (GMT+01:00) África Central Occidental
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Cairo
125 (GMT+02:00) Helsinki, Kiev, Riga, Sofía, Talín, Vilnius
129 (GMT+02:00) Amán
130 (GMT+02:00) Atenas, Bucarest
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damasco
134 (GMT+03:00) Istambul
135 (GMT+02:00) Xerusalén
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gaza, Hebrón
145 (GMT+03:00) Moscova, San Petersburgo
150 (GMT+03:00) Kuwait, Riad
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bagdad
159 (GMT+02:00) Kaliningrado
160 (GMT+03:30) Teherán
165 (GMT+04:00) Abu Zabi, Mascat
169 (GMT+04:00) Bakú
170 (GMT+04:00) Iereván
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04:00) Izhevsk, Samara
175 (GMT+04:30) Cabul
176 (GMT+04:00) Astrakán, Ulyanovsk
180 (GMT+05:00) Ekaterimburgo
184 (GMT+05:00) Islamabad, Karachi
185 (GMT+05:00) Toshkent
190 (GMT+05:30) Chennai, Kolkata, Mumbai, Nova Deli
193 (GMT+05:45) Katmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dacca
197 (GMT+06:00) Omsk
200 (GMT+05:30) Sri Jayawardenepura
201 (GMT+07:00) Novosibirsk
203 (GMT+06:30) Yangon (Rangún)
205 (GMT+07:00) Bangkok, Hanoi, Iacarta
207 (GMT+07:00) Krasnoyarsk
208 (GMT+07:00) Barnaul, Gorno-Altaysk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Pequín, Chongqing, RAE Hong Kong, Ürümqi
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapur
220 (GMT+08:00) Taibei
225 (GMT+08:00) Perth
227 (GMT+08:00) Irkutsk
228 (GMT+08:00) Ulán Bátor
229 (GMT+09:00) Pyongyang
230 (GMT+09:00) Seúl
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaca, Sapporo, Toquio
240 (GMT+09:00) Yakutsk
241 (GMT+09:00) Chita
245 (GMT+09:30) Darwin
250 (GMT+09:30) Adelaida
255 (GMT+10:00) Camberra, Melbourne, Sidney
260 (GMT+10:00) Brisbane
265 (GMT+10:00) Hobart
270 (GMT+10:00) Vladivostok
274 (GMT+10:30) Illas de Lord Howe
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Illa de Bougainville
277 (GMT+11:00) Illa de Norfolk
278 (GMT+11:00) Sakhalín
279 (GMT+11:00) Chokurdakh
280 (GMT+11:00) Illas Salomón, Nova Caledonia
281 (GMT+11:00) Magadan
284 (GMT+12:00) Hora Universal Coordinada+12
285 (GMT+12:00) Fixi
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadyr, Petropavlovsk-Kamchatski
299 (GMT+12:45) Illas Chatham
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (UTC+02:00) Khartún
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgogrado
305 (GMT-07:00) Yukón