Editar calendários de horas de trabalho usando APIs
Geralmente, as organizações precisam criar, editar ou excluir programaticamente as horas de trabalho nos calendários dos recursos. Os calendários mostram as horas de trabalho, as folgas e os intervalos que determinam a disponibilidade de um recurso quando o trabalho está sendo agendado. Esses recursos devem ser planejados em fusos horários específicos, podem ou não observar feriados comerciais e podem ter capacidade variável. Para obter informações sobre como definir horas de trabalho no aplicativo Field Service, vá para Adicionar horas de trabalho a um recurso reservável.
Além de usar o aplicativo Field Service, você pode usar as seguintes APIs para modificar regras de calendário para tipos de registro selecionados:
- A API Save Calendar (
msdyn_SaveCalendar
) cria ou atualiza registros de calendário em uma entidade selecionada, com base nas entradas transmitidas como a solicitação. - A API Delete Calendar (
msdyn_DeleteCalendar
) apaga todas as regras de calendário internas de um calendário em uma entidade selecionada, com base nas entradas transmitidas como a solicitação. - A API para salvar/excluir calendário V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) permite várias recorrências de hora de trabalho simultâneas alterando a lógica de regras sobrepostas. Para obter mais informações, consulte O que acontecerá se houver regras sobrepostas?.
Este artigo contém detalhes sobre cada entrada (solicitação) e cada saída (resposta) da API e o uso, com exemplos.
Pré-requisitos
- Versão da plataforma 9.2.21055 ou superior com o Agendamento de Recursos Universal versão 3.12.45.7.
- Uso de um dos seguintes tipos de registro:
- Recurso reservável (bookableresource)
- Requisito de recurso (msdyn_resourcerequirement)
- Modelo de horário de trabalho (msdyn_workhourtemplate)
- Projeto (msdyn_project)
Tipos de eventos de calendário
Ao criar um calendário, você define quantas vezes um tipo de hora de trabalho ocorre – uma vez, o dia todo, toda semana ou todos os dias, ou você ainda pode criar uma recorrência personalizada. Para obter mais informações sobre esses eventos de calendário, vá para os exemplos mais à frente neste artigo.
Ocorrência
Quando um tipo de hora de trabalho ocorre apenas uma vez no calendário da entidade, ele é chamado de ocorrência.
Por exemplo, considere um recurso que trabalha das 5h às 10h em 26 de maio de 2021. Essas APIs oferecem suporte apenas a esse tipo de ocorrência, que começa e termina no mesmo dia. Para outro exemplo, considere um recurso que trabalha de 26 de maio de 2021 às 20h até 27 de maio de 2021 às 10h. Não é possível criar esta ocorrência usando apenas uma chamada da API msdyn_SaveCalendar
; será necessário fazer duas chamadas.
Ocorrência de dia inteiro
Quando um tipo de hora de trabalho ocorre por um ou mais dias inteiros, começando à meia-noite (0h) da data de início, esta é uma ocorrência de dia inteiro. A duração máxima para uma ocorrência de dia inteiro é de cinco anos.
Por exemplo, um recurso que trabalha o dia todo de 26 de maio de 2021 até o final do dia 30 de maio de 2021. Esta é uma ocorrência de dia inteiro, que dura cinco dias.
Recorrência semanal
Quando um tipo de hora de trabalho ocorre ao mesmo tempo em dias selecionados de cada semana, ele é chamado de recorrência semanal.
Por exemplo, um recurso trabalha das 5h às 10h todas as segundas, terças e quartas-feiras.
Recorrência diária
Quando um tipo de hora de trabalho ocorre no mesmo horário todos os dias, ele é chamado de recorrência diária.
Por exemplo, um recurso trabalha das 5h às 10h todos os dias da semana.
Recorrência personalizada
Quando um tipo de hora de trabalho ocorre em determinados horários em determinados dias da semana, mas os horários são diferentes em dias diferentes, você pode criar uma recorrência personalizada.
Por exemplo, um recurso trabalha das 5h às 10h todas as segundas-feiras e das 12h às 15h todas as quartas-feiras.
Tipos de horário de trabalho
Essas APIs oferecem suporte a operações de criação, atualização e exclusão para os seguintes tipos de horas de trabalho:
Horas de Trabalho
Horário de trabalho é o período em que uma entidade está disponível para realizar trabalho.
Usando essas APIs, você pode fazer o seguinte:
- Crie, edite ou exclua uma ocorrência de horário de trabalho.
- Crie, edite ou exclua a recorrência diária de um horário de trabalho.
- Crie, edite ou exclua a recorrência semanal de um horário de trabalho.
- Crie, edite ou exclua a recorrência personalizada de um horário de trabalho.
- Crie, edite ou exclua o horário de trabalho de dia inteiro.
- Crie ou e dite a capacidade em horários de trabalho.
- Edite uma única ocorrência de horário de trabalho em uma recorrência.
- Edite Esta e as seguintes ocorrências em uma recorrência.
- Altere uma ocorrência de horário de trabalho para uma recorrência.
- Altere o fuso horário da regra de calendário.
Usando esta API, não é possível fazer o seguinte:
- Exclua uma única ocorrência de horário de trabalho de uma recorrência.
- Crie uma ocorrência que se estenda por 24 horas, mas não começa nem termina à meia-noite (0:00).
- Crie, edite ou exclua uma recorrência de dia inteiro.
Hora de folga
Esses são os horários em que a entidade não está disponível para o trabalho por motivo não especificado.
Usando essas APIs, você pode fazer o seguinte:
- Crie ou edite horários de folga de dia inteiro.
- Crie ou edite uma ocorrência de hora de folga.
- Altere o fuso horário da regra de calendário.
Usando essas APIs, não é possível fazer o seguinte:
- Crie ou edite uma recorrência de hora de folga.
Intervalo
Estes são os horários da jornada de trabalho em que uma entidade faz um intervalo e não está disponível para o trabalho. Não podem haver intervalos sem horário de trabalho; devem ocorrer entre duas horas de trabalho por dia. Os intervalos não podem sobrepor o horário de trabalho.
Usando essas APIs, você pode fazer o seguinte:
- Crie ou edite intervalos durante o horário de trabalho.
Usando essas APIs, não é possível fazer o seguinte:
- Exclua apenas os intervalos de uma ocorrência ou uma recorrência do horário de trabalho.
Folga
Estes são os momentos em que uma entidade não está disponível para o trabalho devido a férias. O motivo da folga pode ser especificado.
Usando essas APIs, você pode fazer o seguinte:
- Crie ou edite a folga com um rótulo.
- Altere o fuso horário da regra de calendário.
Usando essas APIs, não é possível fazer o seguinte:
- Crie ou edite uma recorrência de horário de folga.
Feriado comercial
Você pode criar entidades de fechamento de negócios que definem os horários em que o negócio permanece fechado. Usando a API msdyn_SaveCalendar
, você pode definir cada entidade para observar ou ignorar os horários de feriado comercial da organização usando a chave opcional ObserveClosure. Quando estiverem definidas para observar esses fechamentos, as entidades permanecerão indisponíveis para trabalho.
API Save Calendar
Entrada
A solicitação contém apenas um atributo: CalendarEventInfo, que é um tipo de Cadeia de caracteres. Ele contém vários outros atributos que estão todos embutidos nesta cadeia de caracteres.
Observação
Na tabela a seguir, Modelo representa o formato esperado para fazer uma solicitação bem-sucedida. No entanto, toda a solicitação é analisada como uma única cadeia de caracteres.
CalendarEventInfo
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
EntityLogicalName | Cadeia de Caracteres | Sim | Esta chave descreve a entidade da qual a API está sendo chamada. O calendário desta entidade deve ser criado ou editado. |
Calendarid | GUID | Sim | Esta chave contém a ID do calendário relacionada à entidade descrita acima. Quando qualquer uma dessas entidades é criada, um registro de calendário também é criado automaticamente. Essas APIs editam esse registro de calendário adicionando regras ou editando regras existentes. |
RulesAndRecurrences | RulesAndRecurrences | Sim | Essa chave é uma matriz, e cada elemento contém vários atributos, conforme listado na tabela da seção a seguir. O tamanho da matriz deve ser pelo menos um. |
IsVaried | Boolean | No | Esta chave deve ser definida como true para cenários de recorrência personalizados. |
IsEdit | Boolean | No | Esta chave deve ser definida como true para editar regras existentes. |
TimeZoneCode | Integer | No | Essa chave assume um valor inteiro correspondente ao fuso horário das regras de calendário. Para o mapeamento, vá para Códigos de fuso horário, mais à frente neste artigo. O valor padrão é o fuso horário do usuário. |
InnerCalendarDescription | Cadeia de Caracteres | No | Esta chave só é necessária se a regra do calendário for para folga. Ela deve conter o motivo da folga. |
ObserveClosure | Boolean | No | Esta chave é específica para recorrências. Se estiver definida como true , a entidade vai observar o fechamento de negócios. |
RecurrenceEndDate | DateTime | No | Esta chave é específica para recorrências. Ela contém a data de término da recorrência. Se o carimbo de data/hora for 08:00:00 ou anterior, a data de término da recorrência será um dia antes da data especificada. Se o carimbo de data/hora for 08:00:01 ou posterior, a data será respeitada no estado em que se encontra. O valor padrão para ocorrências é nulo. O valor padrão para recorrências é 30 de dezembro de 9999, 23:59:59 horas, UTC. |
RecurrenceSplit | Boolean | No | Esta chave é específica para recorrências. Está definido como true para editar "Esta e as seguintes ocorrências" de uma recorrência. |
ResourceId | GUID | No | Esta chave contém o SystemUserId ou o ResourceId e só deve ser transmitida quando a entidade associada a esta chamada é um recurso reservável do tipo SystemUser. Isso é necessário para verificar os privilégios OwnCalendar na guia Gerenciamento de Serviços. |
UseV2 | Sinalizador | No | A passagem desse sinalizador habilita a versão V2 do calendário do horário de trabalho, com uma lógica de regras sobrepostas aprimorada que possibilita várias recorrências. Para obter mais informações, consulte O que acontecerá se houver regras sobrepostas?. |
RulesAndRecurrences
Name | Type | Obrigatória | Descrição |
---|---|---|---|
Regras | Regras | Sim | Essa chave é uma matriz, e cada elemento contém vários atributos, conforme listado na tabela da seção a seguir. O tamanho da matriz deve ser pelo menos um. |
RecurrencePattern | Cadeia de Caracteres | No | Esta chave é específica para recorrências. Atualmente, oferecemos suporte apenas a este padrão: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA .
BYDAY pode ser alterado para incluir menos dias; contudo, FREQ e INTERVAL não podem ser alterados. |
InnerCalendarId | GUID | No | Esta chave é específica para edição. Se uma regra está sendo editada, a chave InnerCalendarId precisa ser transmitida aqui. Se uma chave InnerCalendarId não for transmitida, a API cria uma nova regra, mesmo se a chave IsEdit for definida como verdadeira. |
Ação | Integer | No | Esta chave é específica para recorrências personalizadas. Se uma recorrência personalizada estiver sendo criada ou editada, um dos seguintes números deve ser inserido:
|
Regras
Nome | Digitar | Obrigatório | Descrição |
---|---|---|---|
StartTime | DateTime | Sim | Esta chave contém uma entrada de datetime no Formato ISO. Por exemplo, \"2021-05-15T12:00:00.000Z\" . A parte do tempo determina a hora de início da hora de trabalho no fuso horário especificado anteriormente. A parte da data determina a data de início da hora de trabalho. Aqui, 15 de maio de 2021 é a data da ocorrência ou a data de início da recorrência. Se o padrão fosse BYDAY=TU,WE e 15 de maio (um sábado) é a data, a API criará ou editará automaticamente as regras para todas as terças e quartas-feiras após 15 de maio. É o caso em que a regra não tem que ter a data correspondente ao dia. |
EndTime | DateTime | Sim | Esta chave contém uma entrada de datetime no Formato ISO. Por exemplo, \"2021-05-15T12:00:00.000Z\" . A parte do tempo determina a hora de término da hora de trabalho no fuso horário especificado anteriormente. A parte da data deve conter a mesma data que a parte da data de StartTime. As únicas exceções são:
|
WorkHourType | Integer | Sim | Esta chave contém um número que corresponde a uma das seguintes opções:
|
Esforço | Integer | No | Esta chave determina a capacidade da entidade. Deve ser um número inteiro. O valor padrão é 1. |
Saída
Esta API POST cria ou modifica registros de regras de calendário para a entidade selecionada. Ela também fornece a saída a seguir.
Nome | Tipo | Descrição |
---|---|---|
InnerCalendarIds | Cadeia de Caracteres | Uma matriz de GUIDs InnerCalendarIds resultante da operação POST. |
API Delete Calendar
Entrada
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
EntityLogicalName | Cadeia de Caracteres | Sim | Este campo descreve a entidade cujas regras de calendário devem ser excluídas. |
InnerCalendarId | GUID | Sim | Este campo descreve a ID da chave InnerCalendarId que precisa ser excluída. Se houver várias chaves InnerCalendarIds associadas a uma única regra, qualquer ID é suficiente aqui. Mais informações sobre calendários internos e externos: Entidades de calendário |
Calendarid | GUID | Sim | Este campo descreve a chave CalendarId da entidade. |
IsVaried | Boolean | No | Este campo é específico para recorrências e está definido como yes se uma regra de recorrência personalizada está sendo excluída. |
UseV2 | Sinalizador | No | A passagem desse sinalizador habilita a versão V2 do calendário do horário de trabalho, com uma lógica de regras sobrepostas aprimorada que possibilita várias recorrências. Para obter mais informações, consulte O que acontecerá se houver regras sobrepostas?. |
Saída
Esta API POST exclui registros de regras de calendário para a entidade selecionada. Além disso, ela também fornece a saída a seguir.
Nome | Digitar | Descrição |
---|---|---|
InnerCalendarIds | Cadeia de Caracteres | Uma matriz de GUIDs InnerCalendarIds resultante da operação POST. |
Carregar API de calendário
Entrada
Nome: msdyn_LoadCalendars
Tipo: ação
Descrição: Retorna calendários para um determinado LoadCalendarsInput.
Nome: msdyn_LoadCalendars.LoadCalendarsInput
Tipo: parâmetro
Descrição: cadeia de caracteres no seguinte formato JSON:
{
StartDate: string,
EndDate: string,
CalendarIds: string[]
}
Nome: msdyn_LoadCalendarsResponse
Tipo: ComplexType
Descrição: contém a resposta da ação msdyn_loadCalendars.
Nome: msdyn_LoadCalendarsResponse.CalendarEvents
Tipo: propriedade
Descrição: cadeia de caracteres no seguinte formato JSON:
{
"calendarId": CalendarEventSlot[]
}
Em que calendarId é um guid indicado que representa o Guid de Calendar e CalendarEventSlot é um objeto do seguinte formato:
{
CalendarId: string,
InnerCalendarId: string,
Start: string,
End: string,
Effort: double
}
Como chamar as APIs
Essas APIs podem ser chamadas usando o navegador.
- Abra o navegador e a organização em que você precisa fazer essas alterações de calendário.
- Abra as Ferramentas para Desenvolvedores (selecione Ctrl+Shift+I no Microsoft Edge, selecione F12 no Google Chrome).
- No console, insira a função a seguir, depois de substituir [org-name] pelos detalhes da organização (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));
}
- Depois que essa função for definida, você pode chamá-la para criar, editar ou excluir calendários usando as APIs. Insira a seguinte chamada para salvar um calendário:
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
}]
}]
}"
})
Insira a seguinte chamada para excluir um calendário:
CalendarAction("msdyn_DeleteCalendar", {
"CalendarEventInfo":"{
\"CalendarId\":\"8390358c-77d0-430f-b176-f27adadac8eb\",
\"EntityLogicalName\":\"bookableresource\",
\"InnerCalendarId\":\"cf508c2c-5c55-485c-be1e-d2ebcb385441\"
}"
})
Consulte a seção a seguir para obter exemplos de como fazer chamadas diferentes com base em suas necessidades. Substitua a action
da chamada de função na etapa 3 com msdyn_SaveCalendar
ou msdyn_DeleteCalendar
e substitua data
com a chave CalendarEventInfo
relevante.
Veja também a captura de tela a seguir de uma chamada do Power Automate para ação msdyn_SaveCalendar
:
Cenários de exemplo para uso de API
Vamos examinar alguns cenários para os quais você pode usar essas APIs.
Bob e Tim são motoristas de caminhão de entrega da Contoso Enterprises em Bellevue, Washington. A despachante, Debbie, é responsável por fazer alterações em seus calendários de horas de trabalho. Debbie faz essas mudanças usando as APIs msdyn_SaveCalendar
e msdyn_DeleteCalendar
.
Crie uma ocorrência de horário de trabalho.
Lucas está agendado para dirigir a fim de entregar pacotes das 9h às 17h em 15 de maio de 2021. Debbie usa a API msdyn_SaveCalendar
.
Solicitação
{
"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}]}]}"
}
Response
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Edite uma ocorrência de horário de trabalho.
A agenda de Lucas muda para começar às 10h do dia 15 de maio de 2021. Debbie usa a API msdyn_SaveCalendar
.
Solicitação
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Exclua uma ocorrência de horário de trabalho.
Uma emergência familiar surge e Bob precisa cancelar seu dia inteiro de trabalho. Debbie usa a API msdyn_DeleteCalendar
.
Solicitar
{
"CalendarEventInfo": "{\"CalendarId\":\"d33263c7-c16b-4e3e-a56a-20f7a66cafc1\",\"EntityLogicalName\":\"bookableresource\",\"InnerCalendarId\":\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"}"
}
Resposta
{
"InnerCalendarIds": "[\"f76cc333-cbbe-eb11-a81d-000d3a6e4359\"]"
}
Criar uma recorrência diária de horário de trabalho
A partir de 20 de maio de 2021, Bob decide trabalhar com a Contoso a semana toda, das 8h às 17h, e deixará de trabalhar lá em 15 de julho de 2021.
Solicitar
{
"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 uma recorrência diária de horário de trabalho com capacidade aumentada
Bob decide parar de trabalhar durante toda a semana de 15 de junho de 2021 para descansar. Até lá, Bob vai continuar o agendamento de toda a semana, conforme ele concordou anteriormente. Debbie faz essas mudanças usando a API msdyn_SaveCalendar
.
Solicitação
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"867a2461-cdbe-eb11-a81d-000d3a6e4359\"]"
}
Criar uma recorrência semanal de horário de trabalho
A partir de 16 de junho de 2021, Bob trabalhará das 8h às 17h, às quartas e sextas-feiras, e fará uma pausa das 12h às 12h30 para o almoço. Debbie usa a API msdyn_SaveCalendar
, mas comete um erro e marca o intervalo das 12h às 13h.
Solicitar
{
"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 um intervalo de uma recorrência semanal de horário de trabalho
Então, Debbie corrige o erro e altera o intervalo para ocorrer das 12h às 12h30 usando a API msdyn_SaveCalendar
.
Solicitação
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"1f894441-d0be-eb11-a81d-000d3a6e4359\"]"
}
Criar uma recorrência personalizada de horário de trabalho
Tim trabalha para a Contoso às segundas-feiras das 8h às 17h e às quartas-feiras das 11h às 15h. Tim começou a trabalhar para a Contoso em 16 de maio de 2021. Debbie usa a API msdyn_SaveCalendar
para criar o horário de trabalho de Tim.
Solicitação
{
"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\"}]}"
}
Response
{
"InnerCalendarIds": "[\"9fb8c199-d1be-eb11-a81d-000d3a6e4359\", \"a2b8c199-d1be-eb11-a81d-000d3a6e4359\"]"
}
Editar uma recorrência personalizada de horário de trabalho
A agenda de Tim então muda o horário de trabalho de às quartas-feiras das 17h às 20h, e às quintas-feiras das 10h às 12h. A segunda-feira foi removida da agenda de Tim. Debbie usa a API msdyn_SaveCalendar
para conseguir fazer isso.
Solicitar
{
"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 uma ocorrência de horário de trabalho em uma recorrência
Em 26 de maio de 2021, Tim só pode trabalhar das 13h às 19h. Debbie usa a API msdyn_SaveCalendar
aqui.
Solicitar
{
"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\"]"
}
Excluir uma recorrência personalizada de horário de trabalho
Tim decidiu deixar a empresa e teve que excluir toda a agenda. Debbie usa a API msdyn_DeleteCalendar
aqui.
Solicitar
{
"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\"]"
}
Criar folga
Tim tirará três dias de folga para férias em família a partir de 9 de junho de 2021.
Solicitação
{
"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}]}]}"
}
Response
{
"InnerCalendarIds": "[\"266c434e-d5be-eb11-a81d-000d3a6e4359\"]"
}
Criar horário de trabalho de dia inteiro
Tim tem um turno de 72 horas a partir de 20 de maio de 2021. Debbie usa a API msdyn_SaveCalendar
para criar o horário de trabalho de Tim.
Solicitar
{
"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\"]"
}
Perguntas frequentes do
Estou recebendo o erro "StartTime não pode ser maior que ou igual a EndTime".
Verifique se não há sobreposições nos intervalos de tempo das diferentes regras de calendário. Verifique as datas para garantir que StartTime não seja posterior a EndTime. Além disso, verifique se os horários seguem o formato de 24 horas.
As APIs podem ser usadas para atualizar a entidade "Modelos de Horário de Trabalho"?
Sim, você pode usar esta API para criar e atualizar modelos de horas de trabalho, além das horas de trabalho de recursos.
Estou recebendo o erro "Ocorreu um erro ao desserializar o objeto do tipo Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. A fonte de entrada não está formatada corretamente.
ou
Esperando o estado 'Elemento'.. Encontrou 'Texto' com o nome '', namespace ''."
Garanta que a cadeia de caracteres seja analisada corretamente. Colchetes, vírgulas ou pontos e vírgulas podem estar ausentes.
Estou recebendo o erro "Padrão de recorrência inválido. Consulte a documentação para obter padrões suportados".
Atualmente, oferecemos suporte apenas a este padrão: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
.
BYDAY
pode ser alterado para incluir menos dias; contudo, FREQ
e INTERVAL
não podem ser alterados. Verifique se não há espaços no padrão.
Como obtemos informações da CalendarId e da InnerCalendarId do recurso?
A CalendarId
pode ser recuperada de atributos de recursos. Faça esta chamada para obter estas informações: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID])
.
Um exemplo da chamada anterior seria [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e)
.
A InnerCalendarId
pode ser recuperada de atributos de calendário. Faça esta chamada para obter estas informações: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules
.
Um exemplo da chamada anterior é [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules
.
O que acontece se houver regras sobrepostas?
Existem algumas classificações diferentes nas quais as regras se enquadram:
- Classificação 1 - ocorrência diária (trabalhando/folga) e ocorrência de folga.
- Classificação 0 - recorrência semanal (trabalhando/folga).
Regras sobrepostas V2
- As regras da Classificação 1 têm uma prioridade mais alta do que as regras da Classificação 0. Se houver duas regras (uma de cada classificação) no mesmo dia, a ocorrência diária ou ocorrência de folga terá prioridade sobre a recorrência semanal.
- Quando houver várias regras de classificação 0 no mesmo intervalo de datas:
- Se não se cruzarem, ambos os horários permanecerão no calendário.
- Se houver interseção dos horários, a regra criada/modificada mais recentemente será a levada em consideração para o calendário do recurso. Todas as outras regras de interseção no intervalo de datas são removidas. Se algumas regras de classificação 0 tiverem interseções em algumas datas, mas não em outras, a regra será dividida para reter as seções sem interseção, e as partes com interseção serão removidas.
Exemplos de comportamento do calendário V2:
Exemplo 1 – Horários de trabalho repetitivos: datas sobrepostas sem dias/horas sobrepostos
Para um determinado intervalo de datas, um técnico trabalha nos turnos da manhã, da tarde ou da noite em dias diferentes.
Crie uma primeira regra de calendário de repetição para um determinado intervalo de datas. Por exemplo: Repetir Seg, Ter; 1.1-4.1; 8h-17h ET.
Crie uma segunda regra de calendário repetitiva para um intervalo de datas em interseção, ao mesmo tempo em que garante que o horário de trabalho não entre em interseção com os dias ou horários anteriores. Por exemplo: Repetir Qua, Qui; 1.1-4.1; 8h-17h ET ou Repetir Seg, Ter; 1.1-4.1; 17h-20h ET.
Resultado: ambas as regras de calendário permanecem e coexistem.
Exemplo 2 – Horário de trabalho repetitivo: algumas datas sobrepostas, com todos os dias sobrepostos e a segunda regra começa/termina antes ou depois da primeira regra
Um técnico recebe uma nova agenda de trabalho, que substitui algumas semanas da anterior. Por contrato, eles sempre trabalham nos mesmos dias em todas as semanas.
Crie uma primeira regra de calendário de repetição para um determinado intervalo de datas. Por exemplo: Repetir Seg, Ter; 2.1-4.1; 8h-17h ET.
Crie uma segunda regra de calendário de repetição para um intervalo de datas sobreposto, no qual todos os dias tenham horários de trabalho sobrepostos. Escolha datas de início/término para essa nova regra que sejam anteriores ou posteriores à data de início/término da primeira regra. Por exemplo: Repetir Seg, Ter; 3.1-5.1; 13h-20h ET.
Resultado: a primeira regra é truncada para acomodar a data de início/término da segunda. Por exemplo: Repetir Seg, Ter; 2.1-2.28; 8h-17h ET E Repetir Seg, Ter; 3.1-5.1; 13h-20h ET.
Exemplo 3 – Horários de trabalho repetitivos: todas as datas sobrepostas, com alguns dias/horas sobrepostos
O técnico é um trabalhador contratado por um período fixo de dois meses. Eles concordaram em assumir trabalho adicional em alguns dias. Eles querem mudar o horário de trabalho de terça-feira para um horário mais cedo/mais tarde.
Crie algumas regras de calendário de repetição para um determinado intervalo de datas. Por exemplo: Repetir Seg, Ter; 2.1-4.1; 8h-12h ET E Repetir Seg, Qua; 2.1-4.1; 13h-17h ET.
Crie uma nova regra de calendário de repetição para o mesmo intervalo de datas. Escolha dias/horários que se sobreponham parcialmente às regras originais. Por exemplo: Repetir Ter, Qui; 2.1-4.1; 10h-14h ET.
Resultado: a nova regra substitui a anterior na qual há sobreposições e deixa as outras inalteradas. Por exemplo: Repetir Seg; 2.1-4.1; 8h-12h ET E Repetir Qua; 2.1-4.1; 13h-17h ET E Repetir Ter, Qui; 2.1-4.1; 10h-14h ET.
Exemplo 4 – Horários de trabalho repetitivos: novas datas de regra contidas na regra anterior, alguns dias/horários sobrepostos
Um técnico trabalha das 8h às 17h, de segunda a sexta, toda semana. Por apenas duas semanas, eles cuidarão de um projeto especial de emergência de toda segunda a quarta, com horários de trabalho diferentes, das 6h às 18h.
Crie uma primeira regra de calendário de repetição para um determinado intervalo de datas. Por exemplo: Repetir Seg, Ter, Qua, Qui, Sex; 1.1-Sem data de término; 8h-17h ET.
Crie uma segunda regra de calendário repetitiva contida no intervalo de datas acima; escolha horas de trabalho que se sobreponham em alguns dias. Por exemplo: Repetir Seg, Ter, Qua; 5.1-5.14; 6h-18h ET.
Resultado: o calendário deve ter quatro regras repetitivas ao final deste exercício:
- truncar a primeira regra até a data de início da segunda regra
- a segunda regra de calendário
- criar uma nova regra semelhante à primeira regra, mas com as datas da segunda regra para os dias não sobrepostos
- truncar a primeira regra até o início da data de término da segunda, sem data de término
Por exemplo: Repetir Seg, Ter, Qua, Qui, Sex; 1.1–4.30; 8h-17h ET E Repetir Seg, Ter, Qua; 5.1-5.14; 6h-18h ET E Repetir Qui, Sex, 5.1-5.14; 8h-17h ET E Repetir Seg, Ter, Qua, Qui, Sex; 5.15–Sem data de término; 8h-17h ET
Exemplo 5 – Horários de trabalho não repetitivos (ocorrência, regra de classificação 1)
Um técnico tem vários dias de coesão da equipe, que têm precedência sobre todas as outras instâncias de horário de trabalho do dia.
Crie uma regra de calendário de repetição para um determinado intervalo de datas. Por exemplo: Repetir Seg, Ter, Qua, Qui, Sex; 1.1-Sem data de término; 8h-17h ET.
Crie uma regra de calendário não repetitiva contida no intervalo de datas acima. Escolha horários de trabalho que se sobreponham em alguns dias. Por exemplo: Não repetir; 6.21; 7h-13h ET.
Resultado: o calendário deve ter uma regra não repetitiva (ocorrência) ao final do exercício. A regra repetitiva substitui o evento de repetição sobreposto para o dia inteiro. Por exemplo: Repetir Seg, Ter, Qua, Qui, Sex; 1.1-Sem data de término exceto 6.21; não repetir; 6.21; 7h-13h ET.
Regras sobrepostas V1
- As regras da Classificação 1 têm uma prioridade mais alta do que as regras da Classificação 0. Portanto, se houver duas regras (uma de cada classificação) no mesmo dia, a ocorrência diária ou de folga terá prioridade sobre a recorrência semanal.
- Se houver duas regras com a mesma classificação, a regra criada/modificada mais recentemente será aquela considerada para o calendário do recurso.
- Lembre-se de que as ocorrências de dia inteiro são de Classificação 1, portanto, você poderá querer considerar alterá-las para uma recorrência semanal a fim de poder adicionar horas de trabalho de ocorrência e fazer com que sejam respeitadas.
- Quando exibir uma hora de trabalho e uma ocorrência de folga for criada sobrepondo-se a ela, as regras serão divididas de forma a garantir que a folga seja respeitada e qualquer tempo restante como horas de trabalho permanecerá como está. Por exemplo, se houver horário de trabalho das 8h às 17h em 21 de setembro, e uma ocorrência de folga for adicionada das 15h às 19h em 21 de setembro, isso será resolvido como horário de trabalho de 20h às 15h e folga das 15h às 19h. No entanto, se as regras tiverem sido criadas na ordem oposta (folga criada primeiro e depois as horas de trabalho foram criadas) independentemente dos intervalos de tempo, apenas a hora de trabalho seria selecionada novamente. A folga seria anulada.
Códigos do fuso horário
Enum | Fuso horário |
---|---|
0 | (GMT-12:00) Linha de Data Internacional Oeste |
1 | (GMT+13:00) Samoa |
2 | (GMT-10:00) Havaí |
3 | (GMT-09:00) Alasca |
4 | (GMT-08:00) Hora do Pacífico (EUA e Canadá) |
5 | (GMT-08:00) Baixa Califórnia |
6 | (GMT-11:00) Tempo Universal Coordenado-11 |
7 | (GMT-10:00) Ilhas Aleutas |
8 | (GMT-09:30) Ilhas Marquesas |
9 | (GMT-09:00) Tempo Universal Coordenado-09 |
10 | (GMT-07:00) Hora das Montanhas (EUA e Canadá) |
11 | (GMT-08:00) Tempo Universal Coordenado-08 |
12 | (GMT-07:00) Chihuahua, La Paz, Mazatlan |
15 | (GMT-07:00) Arizona |
20 | (GMT-06:00) Hora Central (EUA e Canadá) |
25 | (GMT-06:00) Saskatchewan |
29 | (GMT-06:00) Guadalajara, Cidade do México, Monterrey |
33 | (GMT-06:00) América Central |
34 | (GMT-06:00) Ilha da Páscoa |
35 | (GMT-05:00) Hora do Leste (EUA e Canadá) |
40 | (GMT-05:00) Indiana (Leste) |
43 | (GMT-05:00) Haiti |
44 | (GMT-05:00) Havana |
45 | (GMT-05:00) Bogotá, Lima, Quito, Rio Branco |
47 | (GMT-04:00) Caracas |
50 | (GMT-04:00) Hora do Atlântico (Canadá) |
51 | (GMT-05:00) Turcas e Caicos |
55 | (GMT-04:00) Georgetown, La Paz, San Juan |
56 | (GMT-04:00) Santiago |
58 | (GMT-04:00) Cuiabá |
59 | (GMT-04:00) Assunção |
60 | (GMT-03:30) Terra Nova |
65 | (GMT-03:00) Brasília |
69 | (GMT-03:00) Buenos Aires |
74 | (GMT-03:00) Caiena, Fortaleza |
71 | (GMT-03:00) Salvador |
72 | (GMT-03:00) São Pedro e Miquelon |
73 | (GMT-03:00) Groenlândia |
74 | (GMT-03:00) Montevidéu |
75 | (GMT-02:00) Atlântico Central |
76 | (GMT-02:00) Tempo Universal Coordenado-02 |
77 | (GMT-03:00) Araguaina |
80 | (GMT-01:00) Açores |
83 | (GMT-01:00) Ilhas de Cabo Verde |
84 | (GMT+01:00) Casablanca |
85 | (GMT+00:00) Dublin, Edinburgo, Lisboa, Londres |
90 | (GMT+00:00) Monróvia, Reykjavik |
92 | (GMT) Tempo Universal Coordenado |
95 | (GMT+01:00) Belgrado, Bratislava, Budapeste, Liubliana, Praga |
100 | (GMT+01:00) Sarajevo, Skopje, Varsóvia, Zagreb |
105 | (GMT+01:00) Bruxelas, Copenhague, Madri, Paris |
110 | (GMT+01:00) Amsterdã, Berlim, Berna, Roma, Estocolmo, Viena |
113 | (GMT+01:00) Centro-Oeste da África |
115 | (GMT+02:00) Chisinau |
120 | (GMT+02:00) Cairo |
125 | (GMT+02:00) Helsinque, Kiev, Riga, Sófia, Tallinn, Vilnius |
129 | (GMT+02:00) Amã |
130 | (GMT+02:00) Atenas, Bucareste |
131 | (GMT+02:00) Beirute |
133 | (GMT+02:00) Damasco |
134 | (GMT+03:00) Istambul |
135 | (GMT+02:00) Jerusalém |
140 | (GMT+02:00) Harare, Pretória |
141 | (GMT+02:00) Windhoek |
142 | (GMT+02:00) Gaza, Hebron |
145 | (GMT+03:00) Moscou, São Petersburgo |
150 | (GMT+03:00) Kuwait, Riad |
151 | (GMT+03:00) Minsk |
155 | (GMT+03:00) Nairóbi |
158 | (GMT+03:00) Bagdá |
159 | (GMT+02:00) Kaliningrado |
160 | (GMT+03:30) Teerã |
165 | (GMT+04:00) Abu Dhabi, Mascate |
169 | (GMT+04:00) Baku |
170 | (GMT+04:00) Ierevan |
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) Astrakhan, Ulyanovsk |
180 | (GMT+05:00) Ecaterimburgo |
184 | (GMT+05:00) Islamabad, Karachi |
185 | (GMT+05:00) Tashkent |
190 | (GMT+05:30) Chennai, Kolkata, Mumbai, Nova Délhi |
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 (Rangoon) |
205 | (GMT+07:00) Bancoc, Hanói, Jacarta |
207 | (GMT+07:00) Krasnoyarsk |
208 | (GMT+07:00) Barnaul, Gorno-Altaysk |
209 | (GMT+07:00) Hovd |
210 | (GMT+08:00) Beijing, Chonquim, Hong Kong, Urumqi |
211 | (GMT+07:00) Tomsk |
215 | (GMT+08:00) Kuala Lumpur, Cingapura |
220 | (GMT+08:00) Taipé |
225 | (GMT+08:00) Perth |
227 | (GMT+08:00) Irkutsk |
228 | (GMT+08:00) Ulan Bator |
229 | (GMT+09:00) Pyongyang |
230 | (GMT+09:00) Seul |
231 | (GMT+08:45) Eucla |
235 | (GMT+09:00) Osaka, Sapporo, Tóquio |
240 | (GMT+09:00) Yakutsk |
241 | (GMT+09:00) Chita |
245 | (GMT+09:30) Darwin |
250 | (GMT+09:30) Adelaide |
255 | (GMT+10:00) Camberra, Melbourne, Sydney |
260 | (GMT+10:00) Brisbane |
265 | (GMT+10:00) Hobart |
270 | (GMT+10:00) Vladivostok |
274 | (GMT+10:30) Ilha Lord Howe |
275 | (GMT+10:00) Guam, Port Moresby |
276 | (GMT+11:00) Ilha Bougainville |
277 | (GMT+11:00) Ilha Norfolk |
278 | (GMT+11:00) Sakhalin |
279 | (GMT+11:00) Chokurdakh |
280 | (GMT+11:00) Ilhas Salomão, Nova Caledônia |
281 | (GMT+11:00) Magadã |
284 | (GMT+12:00) Tempo Universal Coordenado+12 |
285 | (GMT+12:00) Fiji |
290 | (GMT+12:00) Auckland, Wellington |
295 | (GMT+12:00) Anadyr, Petropavlovsk-Kamchatsky |
299 | (GMT+12:45) Ilhas Chatham |
300 | (GMT+13:00) Nuku'alofa |
301 | (GMT-05:00) Chetumal |
302 | (UTC+02:00) Khartoum |
303 | (GMT-03:00) Punta Arenas |
304 | (GMT+04:00) Volgogrado |
305 | (GMT-07:00) Yukon |