Aracılığıyla paylaş


API'leri kullanarak çalışma saati takvimlerini düzenleme

Kuruluşların genellikle kaynaklarının takvimlerinde programlı olarak çalışma saatleri oluşturma, düzenleme veya silme işlemleri yapması gerekir. Takvimler, çalışma zamanlanırken kaynağın kullanılabilirliğini belirleyen çalışma saatlerini, izin süresini ve molaları gösterir. Bu kaynaklar belirli saat dilimlerinde zamanlanmalıdır, işletme kapanışlarını gözlemleyebilir veya gözlemlemeyebilir ve değişken kapasiteye sahip olabilir. Field Service uygulamasında çalışma saatlerini tanımlama hakkında bilgi için Ayrılabilir kaynağa çalışma saatleri ekleme'ye gidin.

Field Service uygulamasını kullanmanın yanı sıra, seçili kayıt türlerinin takvim kurallarını değiştirmek için aşağıdaki API'leri kullanabilirsiniz:

  • Takvimi Kaydet API'si (msdyn_SaveCalendar), istek olarak geçirilen girişlere bağlı olarak seçili bir varlıkta takvim kayıtları oluşturur veya bunları güncelleştirir.
  • Takvimi Sil API'si (msdyn_DeleteCalendar), istek olarak geçirilen girişlere bağlı olarak seçili bir varlıkta takvimin tüm iç takvim kurallarını siler.
  • Takvimi Kaydet/Sil API'si V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, geçiş bayrağı UseV2), çakışan kurallar için mantığı değiştirerek aynı anda birden fazla çalışma saati yinelemesine olanak tanır. Daha fazla bilgi için bkz. Çakışan kurallar varsa ne olur?

Bu makale, örneklerle birlikte her API'nin girişi (istek) ve çıkışı (yanıt) ile bunların kullanımı hakkında ayrıntılar içerir.

Önkoşullar

  • Universal Resource Scheduling sürümü 3.12.45.7 ile platform sürümü 9.2.21055 veya üstü.
  • Aşağıdaki kayıt türlerinden birinin kullanımı:
    • Ayrılabilir kaynak (bookableresource)
    • Kaynak gereksinimi (msdyn_resourcerequirement)
    • Çalışma saatleri şablonu (msdyn_workhourtemplate)
    • Proje (msdyn_project)

Takvim olayı türleri

Takvim oluşturduğunuzda çalışma saati türünün bir kez, tüm gün, her hafta veya her gün gibi kaç kez gerçekleşeceğini tanımlarsınız ya da özel bir yineleme oluşturabilirsiniz. Bu takvim olayları hakkında daha fazla bilgi için bu makalenin devamındaki örneklere gidin.

Oluşum

Bir çalışma saati türü varlığın takviminde yalnızca bir kez oluştuğunda, buna oluşum denir.

Örneğin, 26 Mayıs 2021'de 05:00-10:00 saatleri arasında çalışan bir kaynağı düşünün. Bu API'ler yalnızca aynı gün içinde başlayan ve biten bu tür oluşumu destekler. Başka bir örnek için 26 Mayıs 2021 20:00'den 27 Mayıs 2021 saat 10:00'a kadar çalışan bir kaynağı düşünün. msdyn_SaveCalendar API'sinin yalnızca bir çağrısını kullanarak bu oluşumu oluşturamazsınız; bunun yerine iki çağrı yapmanız gerekir.

Tüm gün süren oluşum

Bir çalışma saati türü, başlangıç tarihinin gece yarısından (00:00) başlayarak bir veya daha fazla tam gün boyunca oluştuğunda, buna tüm gün süren oluşum denir. Tüm gün süren bir oluşum için maksimum süre beş yıldır.

Örneğin, bir kaynak 26 Mayıs 2021'den 30 Mayıs 2021 günün sonuna kadar tüm gün çalışır. Bu, beş gün süren bir tüm günlük oluşumdur.

Haftalık yinelenme

Bir iş saati türü her haftanın seçili günlerinde aynı anda oluştuğunda, buna haftalık yinelenme denir.

Örneğin, bir kaynak her Pazartesi, Salı ve Çarşamba 05:00 ile 10:00 arasında çalışır.

Günlük yinelenme

Bir iş saati türü her gün aynı saatte oluştuğunda, buna günlük yinelenme denir.

Örneğin, bir kaynak haftanın her günü 05:00-10:00 saatleri arasında çalışır.

Özel yinelenme

Bir çalışma saati türü haftanın belirli günlerinde belirli zamanlarda oluştuğunda ancak saatler farklı günlerde farklı olduğunda, bir özel yinelenme oluşturabilirsiniz.

Örneğin, bir kaynak her Pazartesi 05:00-10:00 ve her Çarşamba 12:00-15:00 saatleri arasında çalışır.

Çalışma saati türleri

Bu API'ler, aşağıdaki çalışma saati türleri için oluşturma, güncelleştirme ve silme işlemlerini destekler:

Çalışma saatleri

Çalışma saatleri, bir varlığın iş yapmak için kullanılabilir olduğu zamanlardır.

Bu API'leri kullanarak aşağıdakileri yapabilirsiniz:

  • Çalışma saati oluşumu oluşturma, düzenleme veya silme.
  • Çalışma saati günlük yinelenmesi oluşturma, düzenleme veya silme.
  • Çalışma saati haftalık yinelenmesi oluşturma, düzenleme veya silme.
  • Çalışma saati özel yinelenmesi oluşturma, düzenleme veya silme.
  • Tüm gün çalışma saatleri oluşturma, düzenleme veya silme.
  • Çalışma saatlerinde kapasite oluşturma veya düzenleme.
  • Yinelenmedeki tek bir çalışma saati oluşumunu düzenleme.
  • Bunu ve Yinelemedeki sonraki oluşumları düzenleme.
  • Çalışma saati oluşumunu yinelenme olarak değiştirme.
  • Takvim kuralının saat dilimini değiştirme.

Bu API'yi kullanarak aşağıdakileri yapamazsınız:

  • Yinelenmeden tek bir çalışma saati oluşumunu silme.
  • 24 saate yayılan ancak gece yarısı (00:00) başlayıp bitmeyen bir oluşum oluşturma.
  • Tüm gün yinelenmesi oluşturma, düzenleme veya silme.

Çalışma dışı saat

Bunlar, varlığın belirtilmeyen bir nedenden dolayı çalışamadığı zamanlardır.

Bu API'leri kullanarak aşağıdakileri yapabilirsiniz:

  • Tüm gün çalışma dışı saatleri oluşturun veya düzenleyin.
  • Çalışma dışı bir saat oluşumu oluşturun veya düzenleyin.
  • Takvim kuralının saat dilimini değiştirme.

Bu API'leri kullanarak aşağıdakileri yapamazsınız:

  • Çalışma dışı bir saat yinelenmesi oluşturun veya düzenleyin.

Break

Bunlar, bir iş günü içinde bir varlığın mola verdiği ve iş için müsait olmadığı zamanlardır. Molalar çalışma saatleri olmadan var olamaz; bir günde iki çalışma saati arasında meydana gelmek zorundadır. Molalar çalışma saatleri ile çakışamaz.

Bu API'leri kullanarak aşağıdakileri yapabilirsiniz:

  • Çalışma saatlerinde molalar oluşturma veya düzenleme.

Bu API'leri kullanarak aşağıdakileri yapamazsınız:

  • Yalnızca bir oluşumda veya çalışma saatlerinin yinelenmelerindeki molaları silme.

İzin

Bu süreler, bir varlığın tatil nedeniyle çalışamadığı zamanlardır. İzin nedeni belirtilebilir.

Bu API'leri kullanarak aşağıdakileri yapabilirsiniz:

  • Bir etiketle izin süresi oluşturma veya düzenleme.
  • Takvim kuralının saat dilimini değiştirme.

Bu API'leri kullanarak aşağıdakileri yapamazsınız:

  • İzin saati yinelenmesi oluşturma veya düzenleme.

İşletme kapanışı

İşletmenin kapalı olduğu saatleri tanımlayan işletme kapanışı varlıklarını oluşturabilirsiniz. msdyn_SaveCalendarAPI'yi kullanarak isteğe bağlı ObserveClosure anahtarıyla her varlığı kuruluşun işletme kapanışı zamanlarını gözlemleyecek veya yoksayacak şekilde ayarlayabilirsiniz. Bu kapanışları gözlemlemek için ayarlandıklarında varlıklarla çalışılamaz.

Takvimi Kaydet API'si

Girdi

İstek yalnızca bir öznitelik içerir CalendarEventInfo, bu bir Dize türüdür. Tümü bu dizeye katıştırılmış başka birkaç öznitelik daha içerir.

Not

Aşağıdaki tabloda Tür, başarılı bir istekte bulunmak için beklenen biçimi temsil eder. Ancak, tüm istek tek bir dize olarak ayrıştırılır.

CalendarEventInfo

Adı Tür Zorunlu Açıklama
EntityLogicalName String Evet Bu anahtar, API'nin çağrıldığı varlığı açıklar. Bu varlığın takvimi oluşturulur veya düzenlenir.
CalendarId GUID Evet Bu anahtar, yukarıda açıklanan varlıkla ilgili takvim kimliğini içerir. Bu varlıklardan herhangi biri oluşturulduğunda, takvim kaydı da otomatik olarak oluşturulur. Bu API'ler, kural ekleyerek veya var olan kuralları düzenleyerek bu takvim kaydını düzenler.
RulesAndRecurrences RulesAndRecurrences Evet Bu anahtar bir dizidir ve her öğe aşağıdaki bölümdeki tabloda listelendiği gibi birden çok öznitelik içerir. Dizinin boyutu en az bir olmalıdır.
IsVaried Boolean No Bu anahtar özel yinelenme senaryoları için true olarak ayarlanmalıdır.
IsEdit Boolean No Bu anahtar var olan kuralları düzenlemek için true olarak ayarlanmalıdır.
TimeZoneCode Tam sayı No Bu anahtar, takvim kurallarının saat dilimine karşılık gelen bir tamsayı değeri alır. Eşleme için bu makalenin devamındaki Saat dilimi kodlarına gidin. Varsayılan değer kullanıcının saat dilimidir.
InnerCalendarDescription String No Bu anahtar yalnızca takvim kuralı izin için olduğunda gereklidir. İzin nedenini içermelidir.
ObserveClosure Boolean No Bu anahtar yinelenmelere özgüdür. Varlık, true olarak ayarlanırsa işletme kapanışını gözlemler.
RecurrenceEndDate DateTime Hayır Bu anahtar yinelenmelere özgüdür. Yinelenmenin bitiş tarihini içerir. Zaman damgası 08:00:00 veya daha önceki bir tarihse yinelenme bitiş tarihi belirtilen tarihten bir gün öncedir. Zaman damgası 08:00:01 veya daha önceki bir tarihse tarih olduğu gibi korunur. Oluşumlar için varsayılan değer null olur. Yinelenmeler için varsayılan değer 30 Ara 9999, saat 23:59:59, UTC'dir.
RecurrenceSplit Boolean No Bu anahtar yinelenmelere özgüdür. Yinelenmenin "Bu ve sonraki oluşumları"nı düzenlemek için true olarak ayarlanır.
ResourceId GUID No Bu anahtar SystemUserId veya ResourceId değerini içerir ve yalnızca, bu çağrıyla ilişkili varlık SystemUser türünde bir ayrılabilir kaynak olduğunda geçirilir. Bu, Servis Yönetimi sekmesinde OwnCalendar ayrıcalıklarını denetlemek için gereklidir.
UseV2 Bayrak Hayır Bu bayrak geçirildiğinde birden fazla yinelemeye olanak tanıyan gelişmiş çakışan kurallar mantığına sahip çalışma saati takviminin V2 sürümü etkinleştirilir. Daha fazla bilgi için bkz. Çakışan kurallar varsa ne olur?

RulesAndRecurrences

Adı Türü Zorunlu Veri Akışı Açıklaması
Kurallar Kurallar Evet Bu anahtar bir dizidir ve her öğe aşağıdaki bölümdeki tabloda listelendiği gibi birden çok öznitelik içerir. Dizinin boyutu en az bir olmalıdır.
RecurrencePattern String No Bu anahtar yinelenmelere özgüdür. Şu anda yalnızca bu modeli destekliyoruz: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY, daha az gün içerecek şekilde değiştirilebilir ancak FREQ ve INTERVAL değiştirilemez.
InnerCalendarId GUID No Bu anahtar düzenlemeye özgüdür. Bir kural düzenleniyorsa InnerCalendarId değerinin buraya geçirilmesi gerekir. InnerCalendarId geçirilmezse IsEdit anahtarı doğru olarak ayarlanmış olsa bile API yeni bir kural oluşturur.
Eylem Tam sayı No Bu anahtar özel yinelenmelere özgüdür. Özel bir yinelenme oluşturuluyor veya düzenleniyorsa aşağıdaki sayılardan biri girilmelidir:
  • (1) Yinelenmeye bir gün ekleme
  • (2) Yinelenmeden bir gün silme
  • (3) Yalnızca başlangıç veya bitiş tarihlerini veya saatlerini düzenleme ya da kapasiteyi düzenleme
  • (4) (3)'te belirtilen anahtarlar dışında herhangi bir şeyi düzenleme

Kurallar

Adı Tür Zorunlu Açıklama
StartTime DateTime Evet Bu anahtar ISO biçimindebir tarih saat girişi içerir. Örneğin, \"2021-05-15T12:00:00.000Z\". Saat bölümü, daha önce belirtilen saat dilimindeki çalışma saatinin başlangıç saatini belirler. Tarih bölümü, çalışma saatinin başlangıç tarihini belirler. Burada, 15 Mayıs 2021, yinelenmenin oluşum tarihi veya başlangıç tarihidir. Model BYDAY=TU,WE ise ancak tarih 15 Mayıs (Cumartesi) ise API 15 Mayıs'ı izleyen tüm Salı ve Çarşamba günleri için otomatik olarak kurallar oluşturur veya düzenler. Bu, kuralın güne karşılık gelen tarihe sahip olması gerekmediği durumdur.
EndTime DateTime Evet Bu, ISO biçiminde bir tarih saat girişi içerir. Örneğin, \"2021-05-15T12:00:00.000Z\". Saat bölümü, daha önce belirtilen saat dilimindeki çalışma saatinin bitiş saatini belirler. Tarih bölümü, StartTime'ın tarih bölümüyle aynı tarihi içermelidir. Tek istisnalar şunlardır:
  • Bütün gün süren bir olaysa. Bu durumda, tarih bölümü tüm gün oluşumun bitiş tarihini yansıtmalıdır.
  • Oluşum günün sonunda, yani ertesi günün 00:00 saatinde sona erer. Bu durumda, tarih \"2021-05-16T00:00:00.000Z\" olmalıdır. Yinelenmenin bitiş tarihini belirtmek için RecurrenceEndDate özniteliğini değiştirin.
WorkHourType Tam sayı Evet Bu anahtar, aşağıdaki seçeneklerden birine karşılık gelen bir sayı içerir:
  • (0) Çalışma
  • (1) Mola
  • (2) Çalışma dışı
  • (3) İzin
Çaba Tam sayı Hayır Bu anahtar varlığın kapasitesini belirler. Tamsayı olmalıdır. Varsayılan değer 1'dür.

Çıktı

Bu POST API'si seçili varlık için takvim kuralı kayıtları oluşturur veya değiştirir. Ayrıca aşağıdaki çıktıyı verir.

Adı Tür Açıklama
InnerCalendarIds String POST işleminin bir sonucu olan InnerCalendarIds GUID'leri dizisi.

Takvimi Sil API'si

Girdi

Adı Tür Zorunlu Açıklama
EntityLogicalName String Evet Bu alanda, takvim kuralları silinecek olan varlık açıklanmaktadır.
InnerCalendarId GUID Evet Bu alanda, silinmesi gereken InnerCalendarId kimliği açıklanmaktadır. Tek bir kuralla ilişkili birden çok InnerCalendarId varsa burada herhangi bir kimlik yeterlidir. İç ve dış takvimler hakkında daha fazla bilgi: Takvim varlıkları
CalendarId GUID Evet Bu alanda, varlığın Takvim Kimliği açıklanmaktadır.
IsVaried Boolean No Bu alan yinelenmelere özgüdür ve özel bir yinelenme kuralı siliniyorsa yes olarak ayarlanır.
UseV2 Bayrak Hayır Bu bayrak geçirildiğinde birden fazla yinelemeye olanak tanıyan gelişmiş çakışan kurallar mantığına sahip çalışma saati takviminin V2 sürümü etkinleştirilir. Daha fazla bilgi için bkz. Çakışan kurallar varsa ne olur?

Çıktı

Bu POST API'si seçili varlığın takvim kuralı kayıtlarını siler. Ayrıca, aşağıdaki çıktıyı verir.

Adı Tür Açıklama
InnerCalendarIds String POST işleminin bir sonucu olan InnerCalendarIds GUID'leri dizisi.

Takvim API'si yükleme

Girdi

Adı: msdyn_LoadCalendars
Tür: Eylem
Açıklama: Sağlanan LoadCalendarsInput için takvimleri döndürür.

Adı: msdyn_LoadCalendars.LoadCalendarsInput
Tür: Parametre
Açıklama: Aşağıdaki JSON biçimindeki dize:

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

Adı: msdyn_LoadCalendarsResponse
Tür: ComplexType
Açıklama: msdyn_loadCalendars eyleminin yanıtını içerir.

Adı: msdyn_LoadCalendarsResponse.CalendarEvents
Tür: Özellik
Açıklama: Aşağıdaki JSON biçimindeki dize:

{
"calendarId": CalendarEventSlot[]
}

CalendarId, Takvim GUID'sini temsil eden uygun bir GUID'dir ve CalendarEventSlot, aşağıdaki biçimde bir nesnedir:

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

API'leri çağırma

Bu API'ler tarayıcı kullanılarak çağrılabilir.

  1. Bu takvim değişikliklerini yapmanız gereken tarayıcıyı ve kuruluşu açın.
  2. Geliştirici Araçları'nı açın (Microsoft Edge'de Ctrl+Shift+I'yı, Google Chrome'da F12'yi seçin).
  3. Konsolda, [kuruluş adı] yerine kuruluş ayrıntılarını (örneğin, http://your_org.crm.dynamics.com) girdikten sonra aşağıdaki işlevi girin:
       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. Bu işlev tanımlandıktan sonra, API'leri kullanarak takvim oluşturmak, düzenlemek veya silmek için çağırabilirsiniz. Takvimi kaydetmek için şu çağrıyı girin:
       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
                   }]
               }]
           }"
       })

Takvimi silmek için şu çağrıyı girin:

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

İhtiyaçlarınıza göre farklı çağrıların nasıl yapılması gerektiğine ilişkin örnekler için aşağıdaki bölüme bakın. 3. adımdaki işlev çağrısının action değerini msdyn_SaveCalendar veya msdyn_DeleteCalendar ile değiştirin ve data değerini CalendarEventInfo ile değiştirin.

Ayrıca msdyn_SaveCalendar eylemi için Power Automate çağrısıyla ilgili şu ekran görüntüsüne bakın: msdyn_SaveCalendar eylemi için Power Automate çağrısı.

API kullanımı için örnek senaryolar

Bu API'leri kullanabileceğiniz bazı senaryoları inceleyelim.

Bob ve Tim, Bellevue, Washington'da içindeki Contoso Enterprises için kamyon sürücülüğü yapıyor. Amirleri olan Debbie, çalışma saati takvimlerinde değişiklik yapmaktan sorumludur. Debbie bu değişiklikleri msdyn_SaveCalendar ve msdyn_DeleteCalendar API'lerini kullanarak yapar.

Çalışma saati oluşumu oluşturun.

Bob'un paketleri 15 Mayıs 2021'de 09:00-17:00 saatleri arasında teslim etmek için araç sürmesi planlanıyor. Debbie msdyn_SaveCalendar API'sini kullanıyor.

İstek

{
 "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\"]"
}

Çalışma saati oluşumunu düzenleyin.

Bob'un programı daha sonra 15 Mayıs 2021 saat 10:00'da başlayacak şekilde değişiyor. Debbie msdyn_SaveCalendar API'sini kullanıyor.

İstek

{
 "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\"]"
}

Çalışma saati oluşumunu silin.

Bir ailevi acil durum ortaya çıkıyor ve Bob'un tüm iş gününü iptal etmesi gerekiyor. Debbie msdyn_DeleteCalendar API'sini kullanıyor.

İste

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

Yanıtla

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

Çalışma saati günlük yinelenmesi oluşturma

20 Mayıs 2021'den başlayarak, Bob, 8:00 ile 17:00 arasındaki Contoso ile tüm hafta çalışmaya karar verir ve 15 Temmuz 2021'de orada çalışmayı durduracaktır.

İste

{
 "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\"}]}"
}

Yanıtla

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

Çalışma saati günlük yinelenmesini artan kapasiteyle düzenleme

Bob, 15 Haziran 2021'in tüm haftası boyunca çalışmayı bırakmaya karar verir çünkü dinlenecektir. O zamana kadar Bob, daha önce kabul ettiği tüm hafta programına devam edecektir. Debbie bu değişiklikleri msdyn_SaveCalendar API'sini kullanarak yapar.

İstek

{
 "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\"]"
}

Çalışma saati haftalık yinelenmesi oluşturma

16 Haziran 2021 tarihinden başlayarak, Bob çarşamba ve cuma günleri arasında 8:00 ile 17:00 ve arasında çalışacak, öğle yemeği için 12:00 - 12:30 arası öğle yemeği molası verecektir. Debbie msdyn_SaveCalendar API kullanır ancak bir hata yapar ve molayı 12:00'den 13:00'e kadar planlar.

İste

{
  "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\"}]}"
}

Yanıtla

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

Çalışma saati haftalık yinelenmesindeki bir molayı düzenleme

Debbie daha sonra hatasını düzeltir ve msdyn_SaveCalendar API'sini kullanarak molayı 12:00'den 12:30'a değiştirir.

İstek

{
  "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\"}]}"
}

Yanıtla

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

Çalışma saati özel yinelenmesi oluşturma

Tim, 08:00 ve 17:00 arasındaki Pazartesi günleri ve 11:00 ile 15:00 arasında Çarşamba günleri olacak şekilde Contoso'da çalışır. Tim, Contoso için 16 Mayıs 2021'de çalışmaya başladı. Debbie, Tim'in çalışma saatlerini oluşturmak için msdyn_SaveCalendar API'sini kullanır.

İstek

{
"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\"]"
}

Çalışma saati özel yinelenmesini düzenleme

Tim'in programı daha sonra değişir: çalışma saatleri çarşamba günleri 17:00-20:00 ve perşembe günleri 10:00-12:00 arası olur. Pazartesi Tim'in programından çıkarılır. Debbie bu işlemi yapmak için msdyn_SaveCalendar API'sini kullanır.

İste

{
"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\"}]}"
}

Yanıtla

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

Yinelenmedeki bir çalışma saati oluşumunu düzenleme

26 Mayıs 2021'de Tim sadece 13:00-19:00 saatleri arasında çalışabilir. Debbie burada msdyn_SaveCalendar API'sini kullanır.

İste

{
 "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\"}]}"
}

Yanıtla

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

Çalışma saati özel yinelenmesini silme

Tim şirketten ayrılmaya karar vermiştir ve tüm programını silmek zorundadır. Debbie burada msdyn_DeleteCalendar API'sini kullanır.

İste

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

Yanıtla

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

İzin oluşturma

Tim, 9 Haziran 2021'den itibaren aile tatili için üç gün izin alacaktır.

İstek

{
 "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\"]"
}

Tüm gün çalışma saatleri oluşturma

Tim'in 20 Mayıs 2021'den itibaren 72 saatlik vardiyası vardır. Debbie, Tim'in çalışma saatlerini oluşturmak için msdyn_SaveCalendar API'sini kullanır.

İste

{
 "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}]}]}"
}

Yanıtla

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

ile ilgili SSS

"StartTime, EndTime'dan büyük veya buna eşit olamaz" hatasını alıyorum.

Farklı takvim kurallarının zaman aralıklarında çakışma olmadığından emin olun. StartTime'ın EndTime'dan sonra olmadığından emin olmak için tarihleri denetleyin. Ayrıca, saatlerin 24 saat biçimini izlediğini doğrulayın.

API'ler "Çalışma Saati Şablonları" varlığını güncelleştirmek için kullanılabilir mi?

Evet, kaynak çalışma saatlerine ek olarak çalışma saatleri şablonları oluşturmak ve güncelleştirmek için bu API'yi kullanabilirsiniz.

Şu hatayı alıyorum, "Türünün objesinin serileştirilmemesi sırasında hata oluştu: Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Giriş kaynağı düzgün biçimlendirilmemiş.
or
'Element' durumu bekleniyor.. '', namespace '' adına sahip 'Metin' ile karşılaşıldı."

Dizenin doğru ayrıştırıldığından emin olun. Parantezler, virgüller veya noktalı virgüller eksik olabilir.

Şu hatayı alıyorum, "Geçersiz yineleme deseni. Desteklenen desenler için belgelere başvurun."

Şu anda yalnızca bu modeli destekliyoruz: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY, daha az gün içerecek şekilde değiştirilebilir ancak FREQ ve INTERVAL değiştirilemez. Modelde boşluk olmadığından emin olun.

CalendarId ve kaynağın InnerCalendarId bilgileri nasıl alınır?

CalendarId kaynak özniteliklerinden alınabilir. Bu çağrıyı aşağıdaki bilgileri almak için yapın: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID])

Önceki görüşme için bir örnek olabilir: [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

InnerCalendarId takvim özniteliklerinden alınabilir. Bu çağrıyı aşağıdaki bilgileri almak için yapın: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules

Önceki görüşme için bir örnek: [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Örtüşen kurallar varsa ne olur?

Kuralların altında kalan iki farklı dereceler vardır:

  • 1. derece - Günlük oluşum (çalışma/çalışma dışı) ve zaman içinde oluşum.
  • 0 derece - Haftalık yineleme (çalışma/çalışma dışı).

V2 çakışan kuralları

  • Sıra 1 kurallarının önceliği, Sıra 0 kurallarına göre daha yüksektir. aynı günde iki kural (her sıradan bir tane) varsa günlük yinelenme veya izin yinelenmesi, haftalık yinelenmeye göre önceliklidir.
  • Aynı tarih aralığı içinde birden çok Sıra 0 kuralı olduğunda:
    • Saatler kesişmezse ikisi de takvimde kalır.
    • Saatler kesişirse en son oluşturulan/değiştirilen kural, kaynağın takvimi için dikkate alınan kuraldır. Tarih aralığındaki diğer tüm kesişen kurallar kaldırılır. Bazı sıra 0 kuralları bazı tarihlerde kesişiyor ve bazılarında kesişmiyorsa kesişen kısımlar kaldırılırken kesişmeyen kısımları korumak için kural birleştirilir.

V2 takvim davranışı örnekleri:

Örnek 1 - Yinelenen çalışma saatleri: Çakışan gün/saat olmaksızın çakışan tarihler

Belirli bir tarih aralığı için teknisyen, farklı günlerde sabah, öğleden sonra veya gece vardiyalarında çalışmaktadır.

  1. Belirli bir tarih aralığı için ilk yinelenen takvim kuralını oluşturun. Örneğin: Her Pazartesi, Salı; 1.1-4.1; 8:00-17:00 ET.

  2. Kesişen bir tarih aralığı için ikinci yinelenen takvim kuralını oluşturun ve çalışma saatlerinin önceki gün veya saatlerle kesişmemesini sağlayın. Örneğin: Her Çarşamba, Perşembe; 1.1-4.1; 8:00-17:00 ET veya Her Pazartesi, Salı; 1.1-4.1; 17:00-20:00 ET.

Sonuç: İki takvim kuralı da kalır ve yan yana bulunur.

Örnek 2 - Yinelenen Çalışma Saatleri: Tüm günlerin çakıştığı ve ikinci kuralın ilk kuraldan önce veya sonra başladığı/bittiği bazı çakışan tarihler

Teknisyen, eski programının birkaç haftasının değiştiği yeni bir çalışma programı alır. Sözleşme gereği her hafta aynı günlerde çalışmaktadır.

  1. Belirli bir tarih aralığı için ilk yinelenen takvim kuralını oluşturun. Örneğin: Her Pazartesi, Salı; 2.1-4.1; 8:00-17:00 ET.

  2. Çakışan bir tarih aralığı için tüm günlerin çalışma saatlerinin çakıştığı ikinci yinelenen takvim kuralını oluşturun. İlk kuralın başlangıç/bitiş tarihinden önce veya sonra olan bu yeni kural için başlangıç/bitiş tarihlerini seçin. Örneğin: Her Pazartesi, Salı; 3.1-5.1; 13:00-20:00 ET.

Sonuç: İlk kural, ikinci kuralın başlangıç/bitiş tarihine uyacak şekilde kısaltılır. Örneğin: Her Pazartesi, Salı; 2.1-2.28; 8:00-17:00 ET VE Her Pazartesi, Salı; 3.1-5.1; 13:00-20:00 ET.

Örnek 3 - Yinelenen Çalışma Saatleri: Bazı çakışan günlerin/saatlerin olduğu tüm çakışan tarihler

Teknisyen, sabit 2 aylık dönem için sözleşmeli bir çalışandır. Bazı günlerde ek çalışma yapmayı kabul etmiştir. Salı çalışma saatlerini daha erken/geç bir saate kaydırmak ister.

  1. Belirli bir tarih aralığı için bazı yinelenen takvim kurallarını oluşturun. Örneğin: Her Pazartesi, Salı; 2.1-4.1; 8:00-12:00 ET VE Her Salı, Çarşamba; 2.1-4.1, 13:00-17:00 ET.

  2. Aynı tarih aralığı için yeni bir yinelenen takvim kuralı oluşturun. Özgün kurallarla kısmen çakışan günleri/saatleri seçin. Örneğin: Her Salı, Perşembe ; 2.1-4.1; 10:00-14:00 ET.

Sonuç: Yeni kural, çakışmalar olduğunda eskisinin üzerine yazılır ve diğerleri değişmeden kalır. Örneğin: Her Pazartesi; 2.1-4.1; 8:00-12:00 ET VE Her Çarşamba; 2.1-4.1; 13:00-17:00 ET VE Her Salı, Perşembe; 2.1-4.1; 10:00-14:00 ET.

Örnek 4 - Yinelenen Çalışma Saatleri: Eski kuralda yer alan yeni kural tarihleri, bazı çakışan günler/saatler

Teknisyen her hafta Pazartesi-Cuma 8:00-17:00 çalışmaktadır. Yalnızca iki hafta boyunca, her Pazartesi-Çarşamba 06:00-18:00 farklı çalışma saatlerinde özel bir acil durum projesinde yer alacaktır.

  1. Belirli bir tarih aralığı için ilk yinelenen takvim kuralını oluşturun. Örneğin: Her Pazartesi, Salı, Çarşamba, Perşembe, Cuma; 1.1-Bitiş Tarihi Yok; 8:00-17:00 ET.

  2. Yukarıdaki tarih aralığında yer alan ikinci bir yinelenen takvim kuralı oluşturun, bazı günlerde çakışan çalışma saatlerini seçin. Örneğin: Her Pazartesi, Salı, Çarşamba; 5.1-5.14; 06.00-18.00 ET.

Sonuç: Bu alıştırmanın sonunda takvimde yinelenen dört kural olmalıdır:

  • ilk kuralı, ikinci kuralın başlangıç tarihi olarak kısaltın
  • ikinci takvim kuralı
  • ilk kurala benzeyen ancak çakışmayan günler için ikinci kuralın tarihleriyle yeni bir kural oluşturun
  • ilk kuralı, bitiş tarihi olmadan ikinci kuralın bitiş tarihinden başlayacak şekilde kısaltın

Örneğin: Her Pazartesi, Salı, Çarşamba, Perşembe, Cuma; 1.1–4.30; 8:00-17:00 ET VE Her Pazartesi, Salı, Çarşamba; 5.1-5.14; 6am-6pm ET VE Her Perşembe, Cuma, 5.1-5.14; 8:00-17:00 ET VE Her Pazartesi, Salı, Çarşamba, Perşembe, Cuma; 5.15–Bitiş Tarihi Yok; 8:00-17:00 ET

Örnek 5 - Yinelenmeyen çalışma saatleri (oluşum, sıra 1 kuralı)

Teknisyenin, gün boyunca diğer tüm çalışma saati örneklerinden öncelikli olan birkaç takım uyumu günü vardır.

  1. Belirli bir tarih aralığı için bir yinelenen takvim kuralı oluşturun. Örneğin: Her Pazartesi, Salı, Çarşamba, Perşembe, Cuma; 1.1-Bitiş Tarihi Yok; 8:00-17:00 ET.

  2. Yukarıdaki tarih aralığında yer alan yinelenmeyen bir takvim kuralı oluşturun. Bazı günlerde çakışan çalışma saatlerini seçin. Örneğin: Yinelenmeyen; 6.21; 7:00-13:00 ET.

Sonuç: Bu alıştırmanın sonunda takvimde 1 yinelenmeyen kural (oluşum) olmalıdır. Yinelenmeyen kural, tüm gün için çakışan yineleme olayını geçersiz kılar. Örneğin: Her Pazartesi, Salı, Çarşamba, Perşembe, Cuma; 1.1-Bitiş Tarihi Yok (6.21; yinelenmeyen; 6.21; 7:00-13:00 ET hariç).

V1 çakışan kuralları

  • Sıra 1 kurallarının önceliği, Sıra 0 kurallarına göre daha yüksektir. Bu nedenle aynı günde iki kural (her sıradan bir tane) varsa günlük yinelenme veya izin yinelenmesi, haftalık yinelenmeye göre önceliklidir.
  • Aynı derecenin iki kuralı varsa, en son oluşturulan/değiştirilen kural kaynağın takvimi için kabul edilen bir kuraldır.
  • Tüm gün içindeki tekrarların 1. dereceye kadar olduğunu unutmayın; bu nedenle, oluşum çalışma saatleri ekleyebilmek ve bunların dikkate alınması için onu haftalık bir tekrarda değiştirmek isteyebilirsiniz.
  • Bir saat ve bir çalışma saati bulunduğunda ve geçtiği zaman oluşum oluştuğunda, bu kurallar, saatin kapalı olmasını sağlayacak şekilde bölünür ve kalan zaman çalışma saatleri olarak kalır. Örneğin, 21 Eylül'de 08:00 ile 17:00 arasında bir çalışma saati varsa ve 21 Eylül ayının 15:00'dan 19:00'a bir saat bırakma işlemi eklenirse bu, çalışma saatleri olarak 20:00 ile 15:00 arasında ve 15:00 ile 19:00 arasında bir saat sonra çözümlenir. Ancak, kurallar karşıt sırada oluşturulmuşsa (önce oluşturulma süresi ve sonra çalışma saatleri oluşturulmuştur) zaman dilimlerini dikkate alınmadan, yalnızca çalışma saati yeniden seçilir. Bu izinin üzerine yazılır.

Saat dilimi kodları

Numaralandırma Saat dilimi
0 (GMT-12:00) Uluslararası Tarih Çizgisi Batı
1 (GMT+13:00) Samoa
2 (GMT-10:00) Hawaii
3 (GMT-09:00) Alaska
4 (GMT-08:00) Pasifik Saati (ABD ve Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Eşgüdümlü Evrensel Saat-11
7 (GMT-10:00) Aleutian Adaları
8 (GMT-09:30) Marquesas Adaları
9 (GMT-09:00) Eşgüdümlü Evrensel Saat-09
10 (GMT-07:00) Sıradağlar Saati (ABD ve Kanada)
11 (GMT-08:00) Eşgüdümlü Evrensel Saat-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Merkezi Saat (ABD ve Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Mexico City, Monterrey
33 (GMT-06:00) Orta Amerika
34 (GMT-06:00) Paskalya Adası
35 (GMT-05:00) Doğu Saati (ABD ve Kanada)
40 (GMT-05:00) Indiana (Doğu)
43 (GMT-05:00) Haiti
44 (GMT-05:00) Havana
45 (GMT-05:00) Bogota, Lima, Quito, Rio Branco
47 (GMT-04:00) Karakas
50 (GMT-04:00) Atlantik Saati (Kanada)
51 (GMT-05:00) Turks ve Caicos Adaları
55 (GMT-04:00) Georgetown, La Paz, San Juan
56 (GMT-04:00) Santiago
58 (GMT-04:00) Cuiaba
59 (GMT-04:00) Asuncion
60 (GMT-03:30) Newfoundland
65 (GMT-03:00) Brezilya
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03:00) Saint Pierre ve Miquelon
73 (GMT-03:00) Grönland
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Orta Atlantik
76 (GMT-02:00) Eşgüdümlü Evrensel Saat-02
77 (GMT-03:00) Araguaina
80 (GMT-01:00) Azorlar
83 (GMT-01:00) Cabo Verde Ad.
84 (GMT+01:00) Kasablanka
85 (GMT+00:00) Dublin, Edinburgh, Lizbon, Londra
90 (GMT+00:00) Monrovya, Reykjavik
92 (GMT) Eşgüdümlü Evrensel Saat
95 (GMT+01:00) Belgrad, Bratislava, Budapeşte, Ljubljana, Prag
100 (GMT+01:00) Saraybosna, Üsküp, Varşova, Zagreb
105 (GMT+01:00) Brüksel, Kopenhag, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Bern, Roma, Stockholm, Viyana
113 (GMT+01:00) Orta Batı Afrika
115 (GMT+02:00) Chisinau
120 (GMT+02:00) Kahire
125 (GMT+02:00) Helsinki, Kiev, Riga, Sofya, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Atina, Bükreş
131 (GMT+02:00) Beyrut
133 (GMT+02:00) Şam
134 (GMT+03:00) İstanbul
135 (GMT+02:00) Kudüs
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02:00) Gazze, Hebron
145 (GMT+03:00) Moskova, St. Petersburg
150 (GMT+03:00) Kuveyt, Riyad
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Bağdat
159 (GMT+02:00) Kaliningrad
160 (GMT+03:30) Tahran
165 (GMT+04:00) Abu Dabi, Muscat
169 (GMT+04:00) Bakü
170 (GMT+04:00) Erivan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tiflis
174 (GMT+04:00) İjevsk, Samara
175 (GMT+04:30) Kabil
176 (GMT+04:00) Astrahan, Ulyanovsk
180 (GMT+05:00) Ekaterinburg
184 (GMT+05:00) İslamabad, Karaçi
185 (GMT+05:00) Taşkent
190 (GMT+05:30) Chennai, Kalküta, Mumbai, Yeni Delhi
193 (GMT+05:45) Katmandu
195 (GMT+06:00) Astana
196 (GMT+06:00) Dhaka
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) Bangkok, Hanoi, Cakarta
207 (GMT+07:00) Krasnoyarsk
208 (GMT+07:00) Barnaul, Gorno-Altaysk
209 (GMT+07:00) Hovd
210 (GMT+08:00) Pekin, Çongcin, Hong Kong ÖİB, Urumçi
211 (GMT+07:00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapur
220 (GMT+08:00) Taipei
225 (GMT+08:00) Perth
227 (GMT+08:00) İrkutsk
228 (GMT+08:00) Ulan Batur
229 (GMT+09:00) Pyongyang
230 (GMT+09:00) Seul
231 (GMT+08:45) Eucla
235 (GMT+09:00) Osaka, Sapporo, Tokyo
240 (GMT+09:00) Yakutsk
241 (GMT+09:00) Chita
245 (GMT+09:30) Darwin
250 (GMT+09:30) Adelaide
255 (GMT+10:00) Kanberra, Melbourne, Sydney
260 (GMT+10:00) Brisbane
265 (GMT+10:00) Hobart
270 (GMT+10:00) Vladivostok
274 (GMT+10:30) Lord Howe Adası
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11:00) Bougainville Adası
277 (GMT+11:00) Norfolk Adası
278 (GMT+11:00) Sakhalin
279 (GMT+11:00) Çokurdak
280 (GMT+11:00) Solomon Adl., Yeni Kaledonya
281 (GMT+11:00) Magadan
284 (GMT+12:00) Eşgüdümlü Evrensel Saat+12
285 (GMT+12:00) Fiji
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12:00) Anadır, Petropavlovsk-Kamçatski
299 (GMT+12:45) Chatham Adaları
300 (GMT+13:00) Nuku'alofa
301 (GMT-05:00) Chetumal
302 (UTC+02:00) Hartum
303 (GMT-03:00) Punta Arenas
304 (GMT+04:00) Volgograd
305 (GMT-07:00) Yukon