Bagikan melalui


Mengedit kalender jam kerja dengan menggunakan API

Organisasi biasanya harus membuat, mengedit, atau menghapus jam kerja secara programatis di kalender sumber dayanya. Kalender menampilkan jam kerja, waktu tidak aktif, dan istirahat yang menentukan ketersediaan sumber daya saat pekerjaan sedang dijadwalkan. Sumber daya tersebut harus dijadwalkan pada zona waktu tertentu, mungkin menghormati atau tidak menghormati penutupan bisnis, dan dapat memiliki kapasitas variabel. Untuk informasi tentang menentukan jam kerja di aplikasi Field Service, buka Menambahkan jam kerja ke sumber daya yang dapat dipesan.

Selain menggunakan aplikasi Field Service, Anda dapat menggunakan API berikut untuk memodifikasi aturan kalender untuk jenis rekaman yang dipilih:

  • Save Calendar API (msdyn_SaveCalendar) membuat atau memperbarui rekaman kalender pada entitas yang dipilih, berdasarkan input yang diteruskan sebagai permintaan.
  • Delete Calendar API (msdyn_DeleteCalendar) menghapus semua aturan kalender dalam kalender pada entitas yang dipilih, berdasarkan input yang diteruskan sebagai permintaan.
  • Save/Delete Calendar API V2 (msdyn_SaveCalendar/msdyn_DeleteCalendar, pass flag UseV2) memungkinkan pengulangan beberapa jam kerja secara bersamaan dengan mengubah logika untuk aturan yang tumpang tindih. Untuk informasi selengkapnya, lihat Apa yang terjadi jika ada aturan yang tumpang tindih?.

Artikel ini berisi detail tentang setiap input (permintaan) dan output (respons) API, serta penggunaannya, dengan contoh.

Prasyarat

  • Platform versi 9.2.21055 atau lebih tinggi dengan Universal Resource Scheduling versi 3.12.45.7.
  • Penggunaan salah satu tipe catatan berikut ini:
    • Sumber daya yang dapat dipesan (bookableresource)
    • Persyaratan sumber daya (msdyn_resourcerequirement)
    • Template jam kerja (msdyn_workhourtemplate)
    • Proyek (msdyn_project)

Jenis aktivitas kalender

Saat membuat kalender, Anda menentukan berapa kali jenis jam kerja muncul—sekali, sepanjang hari, setiap minggu, atau setiap hari, atau Anda dapat membuat pengulangan kustom. Untuk informasi selengkapnya tentang acara kalender ini, buka contoh nanti di artikel ini.

Kemunculan

Bila jenis jam kerja hanya muncul sekali dalam kalender entitas, hal ini disebut kejadian.

Misalnya, pertimbangkan sumber daya yang berfungsi mulai pukul 05.00 hingga 10.00 pada 26 Mei 2021. API ini hanya mendukung jenis kejadian ini, yang akan dimulai dan berakhir dalam hari yang sama. Contoh lain, pertimbangkan sumber daya yang berfungsi mulai 26 Mei 2021, pukul 20.00, 27 Mei 2021 pukul 10.00. Anda tidak dapat membuat kejadian ini hanya dengan menggunakan satu panggilan msdyn_SaveCalendar API; Anda perlu membuat dua panggilan sebagai gantinya.

kejadian sepanjang hari

Ketika jenis jam kerja terjadi selama satu atau lebih hari penuh, mulai tengah malam (12:00 AM) dari tanggal mulai, itu adalah kejadian sepanjang hari. Durasi maksimum untuk kejadian sepanjang hari adalah lima tahun.

Misalnya, sumber daya akan bekerja sepanjang hari mulai 26 Mei 2021 hingga akhir hari pada 30 Mei 2021. Ini adalah kejadian sepanjang hari yang berlangsung selama lima hari.

Pengulangan pekanan

Ketika jenis jam kerja terjadi pada waktu yang sama pada hari-hari tertentu setiap minggu, itu disebut pengulangan mingguan.

Misalnya, sumber daya akan berfungsi mulai pukul 05.00 hingga 10.00 setiap Senin, Selasa, dan Sabtu.

Pengulangan Harian

Ketika jenis jam kerja terjadi pada waktu yang sama setiap hari, itu disebut kekambuhan harian.

Misalnya, sumber daya akan berfungsi mulai pukul 05.00 hingga 10.00 setiap hari dalam sepekan.

Pengulangan kustom

Ketika jenis jam kerja terjadi pada waktu-waktu tertentu pada hari-hari tertentu dalam seminggu, tetapi waktunya berbeda pada hari yang berbeda, Anda dapat membuat pengulangan kustom.

Misalnya, sumber daya akan bekerja mulai pukul 05.00 hingga 10.00 setiap hari Senin dan pukul 12.00 hingga 15.00 setiap hari Rabu.

Jenis jam kerja

API ini mendukung pengoperasian buat, perbarui, dan hapus untuk jenis jam kerja berikut:

Jam kerja

Jam kerja adalah waktu saat entitas tersedia untuk melakukan pekerjaan.

Dengan menggunakan API ini, Anda dapat melakukan langkah berikut:

  • Membuat, mengedit, atau menghapus kejadian jam kerja.
  • Membuat, mengedit, atau menghapus pengulangan harian jam kerja.
  • Membuat, mengedit, atau menghapus pengulangan pekanan jam kerja.
  • Membuat, mengedit, atau menghapus pengulangan kustom jam kerja.
  • Membuat, mengedit, atau menghapus jam kerja sepanjang hari.
  • Membuat atau mengedit kapasitas pada jam kerja.
  • Mengedit pengulangan satu jam kerja dalam satu pengulangan.
  • Edit kejadian Ini dan Mengikuti dalam pengulangan.
  • Mengubah kejadian jam kerja ke pengulangan.
  • Ubah zona waktu lokal aturan kalender.

Dengan API ini, Anda dapat melakukan langkah berikut:

  • Menghapus pengulangan satu jam kerja dari pengulangan.
  • Membuat kejadian yang berlangsung selama 24 jam namun tidak dimulai dan berakhir pada tengah malam (00.00).
  • Membuat, mengedit, atau menghapus pengulangan sepanjang hari.

Jam nonworking

Ini adalah waktu saat entitas tidak tersedia untuk bekerja karena alasan yang tidak ditentukan.

Dengan menggunakan API ini, Anda dapat melakukan langkah berikut:

  • Membuat atau mengedit jam non-kerja sepanjang hari.
  • Membuat atau mengedit kejadian di luar jam kerja.
  • Ubah zona waktu lokal aturan kalender.

Dengan menggunakan API ini, Anda tidak dapat melakukan langkah berikut:

  • Membuat atau mengedit pengulangan jam tidak kerja.

Jeda

Waktu tersebut adalah hari kerja saat entitas sedang beristirahat dan tidak tersedia untuk kerja. Istirahat tidak dapat ada tanpa jam kerja; harus terjadi antara dua jam kerja dalam sehari. Waktu istirahat tidak dapat tumpang tindih dengan jam kerja.

Dengan menggunakan API ini, Anda dapat melakukan langkah berikut:

  • Membuat atau mengedit istirahat selama jam kerja.

Dengan menggunakan API ini, Anda tidak dapat melakukan langkah berikut:

  • Hapus hanya istirahat dari kejadian atau pengulangan jam kerja.

Waktu nonaktif

Ini adalah waktu saat entitas tidak tersedia untuk bekerja karena liburan. Alasan waktu tidak masuk kerja dapat ditentukan.

Dengan menggunakan API ini, Anda dapat melakukan langkah berikut:

  • Membuat atau mengedit waktu nonaktif dengan label.
  • Ubah zona waktu lokal aturan kalender.

Dengan menggunakan API ini, Anda tidak dapat melakukan langkah berikut:

  • Membuat atau mengedit pengulangan jam waktu nonaktif.

Penutupan Bisnis

Anda dapat membuat entitas penutupan bisnis yang menentukan waktu penutupan bisnis. Dengan menggunakan msdyn_SaveCalendar API, Anda dapat mengatur setiap entitas untuk mengamati atau mengabaikan waktu penutupan bisnis organisasi dengan menggunakan kunci ObserveClosure opsional . Ketika mereka diatur untuk mematuhi penutupan ini, entitas tidak tersedia untuk bekerja.

Simpan API kalender

Input

Permintaan hanya berisi satu atribut—CalendarEventInfo, yang merupakan jenis String . Ini berisi beberapa atribut lainnya yang semuanya disematkan dalam string ini.

Catatan

Dalam tabel berikut,Tipe mewakili format yang diharapkan untuk membuat permintaan berhasil. Namun, seluruh permintaan diuraikan sebagai string tunggal.

CalendarEventInfo

Nama Jenis Diperlukan KETERANGAN
EntityLogicalName String Ya Kunci ini menjelaskan entitas dengan API yang sedang dipanggil. Kalender entitas ini akan dibuat atau diedit.
CalendarId GUID Ya Kunci ini berisi ID kalender yang terkait dengan entitas yang dijelaskan di atas. Bila salah satu entitas ini dibuat, rekaman kalender juga secara otomatis dibuat. API ini akan mengedit rekaman kalender tersebut dengan menambahkan aturan atau mengedit aturan yang ada.
RulesAndRecurrences RulesAndRecurrences Ya Kunci ini adalah larik, dan setiap elemen berisi beberapa atribut seperti tercantum dalam tabel pada bagian berikut. Ukuran larik harus sekurangnya satu.
IsVaried Boolean No Kunci ini harus diatur ke true untuk skenario pengulangan kustom.
IsEdit Boolean No Kunci ini harus diatur ke true untuk mengedit aturan yang ada.
TimeZoneCode Integer No Kunci ini mengambil nilai bilangan bulat yang sesuai dengan zona waktu untuk aturan kalender. Untuk pemetaan, buka Kode zona waktu, nanti di artikel ini. Nilai default adalah zona waktu pengguna.
InnerCalendarDescription String No Kunci ini hanya diperlukan jika aturan kalender adalah untuk waktu tidak aktif. Ini harus berisi alasan waktu tidak aktif.
ObserveClosure Boolean No Kunci ini khusus untuk pengulangan. Jika diatur true, entitas mengamati penutupan bisnis.
RecurrenceEndDate WaktuTanggal No Kunci ini khusus untuk pengulangan. Ini berisi tanggal berakhir pengulangan. Jika cap waktu adalah 08:00:00 atau lebih dini, tanggal berakhir pengulangan adalah satu hari sebelum tanggal yang ditentukan. Jika cap waktu adalah 08:00:01 atau lebih baru, tanggal dihormati sebagaimana adanya. Nilai default untuk kejadian adalah nihil. Nilai default untuk pengulangan adalah 30 Des 9999, 23:59:59 jam, UTC.
RecurrenceSplit Boolean No Kunci ini khusus untuk pengulangan. Ini diatur ke true untuk mengedit "Ini dan kejadian berikutnya" dari pengulangan.
ResourceId GUID No Kunci ini berisi SystemUserId atau ResourceId dan hanya akan diteruskan ketika entitas yang terkait dengan panggilan ini adalah sumber daya yang dapat dipesan jenis SystemUser. Ini diperlukan untuk memeriksa hak istimewa OwnCalendar pada tab Manajemen Layanan.
UseV2 Tanda No Meneruskan bendera ini memungkinkan versi V2 dari kalender jam kerja, dengan logika aturan tumpang tindih yang disempurnakan yang memungkinkan beberapa pengulangan. Untuk informasi selengkapnya, lihat Apa yang terjadi jika ada aturan yang tumpang tindih?.

RulesAndRecurrences

Nama Tipe Wajib Description
Aturan Aturan Ya Kunci ini adalah larik, dan setiap elemen berisi beberapa atribut seperti tercantum dalam tabel pada bagian berikut. Ukuran larik harus sekurangnya satu.
RecurrencePattern String No Kunci ini khusus untuk pengulangan. Saat ini kami hanya mendukung pola ini: FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY dapat diubah untuk menyertakan lebih sedikit hari; namun, FREQ dan INTERVAL tidak dapat diubah.
InnerCalendarId GUID No Kunci ini khusus untuk pengeditan. Jika aturan sedang diedit, InnerCalendarId harus diteruskan di sini. Jika InnerCalendarId tidak diteruskan, API akan membuat aturan baru, meskipun kunci IsEdit diatur ke true.
Tindakan Integer No Kunci ini khusus untuk pengulangan kustom. Jika pengulangan kustom sedang dibuat atau diedit, salah satu dari angka berikut harus dimasukkan:
  • (1) Menambahkan satu hari ke pengulangan
  • (2) Menghapus satu hari dari pengulangan
  • (3) Mengedit hanya tanggal atau waktu mulai atau berakhir, atau kapasitas pengeditan
  • (4) Mengedit apa pun selain kunci yang disebutkan dalam (3)

Aturan

Nama Jenis Diperlukan KETERANGAN
StartTime WaktuTanggal Ya Kunci ini berisi entri datetime dalam format ISO. Sebagai contoh, \"2021-05-15T12:00:00.000Z\". Bagian waktu menentukan waktu mulai jam kerja di zona waktu yang ditentukan sebelumnya. Bagian tanggal menentukan tanggal mulai jam kerja. Di sini, 15 Mei 2021 adalah tanggal kejadian atau tanggal mulai pengulangan. Jika polanya benar BYDAY=TU,WE, tetapi 15 Mei (Sabtu) adalah tanggalnya, API akan secara otomatis membuat atau mengedit aturan untuk semua hari Selasa dan Rabu setelah 15 Mei. Hal ini terjadi jika aturan tidak harus memiliki tanggal yang terkait dengan hari.
EndTime WaktuTanggal Ya Ini berisi entri datetime dalam format ISO. Sebagai contoh, \"2021-05-15T12:00:00.000Z\". Bagian waktu menentukan waktu akhir jam kerja di zona waktu yang ditentukan sebelumnya. Bagian tanggal harus berisi tanggal yang sama dengan bagian tanggal StartTime. Satu-satunya pengecualian adalah:
  • Jika kejadiannya sepanjang hari. Dalam kasus ini, bagian tanggal harus mencerminkan tanggal berakhir kejadian sepanjang hari.
  • Kejadian berakhir di akhir hari, pukul 00.00 di hari berikutnya. Dalam hal ini, tanggalnya seharusnya \"2021-05-16T00:00:00.000Z\". Untuk menentukan tanggal akhir pengulangan, ubah atribut RecurrenceEndDate .
WorkHourType Integer Ya Kunci ini berisi angka yang sesuai dengan salah satu pilihan berikut:
  • (0) bekerja
  • (1) Istirahat
  • (2) Tidak bekerja
  • (3) Waktu nonaktif
Usaha Bilangan bulat No Kunci ini menentukan kapasitas entitas. Ini harus berupa bilangan cacah. Nilai default adalah 1.

Output

POST API ini membuat atau mengubah rekaman aturan kalender untuk entitas yang dipilih. Ini juga memberikan output berikut.

Nama Jenis KETERANGAN
InnerCalendarIds String Array GUID InnerCalendarIds yang merupakan hasil dari operasi POST.

API Hapus Kalender

Input

Nama Jenis Diperlukan KETERANGAN
EntityLogicalName String Ya Bidang ini menjelaskan entitas dengan aturan kalender yang akan dihapus.
InnerCalendarId GUID Ya Bidang ini menjelaskan ID InnerCalendarId yang perlu dihapus. Jika ada beberapa InnerCalendarIds yang terkait dengan satu aturan, salah satu ID sudah cukup di sini. Informasi selengkapnya tentang kalender dalam dan luar: Entitas kalender
CalendarId GUID Ya Bidang ini menjelaskan CalendarId entitas.
IsVaried Boolean No Bidang ini khusus untuk pengulangan, dan diatur ke yes jika aturan pengulangan kustom sedang dihapus.
UseV2 Tanda No Meneruskan bendera ini memungkinkan versi V2 dari kalender jam kerja, dengan logika aturan tumpang tindih yang disempurnakan yang memungkinkan beberapa pengulangan. Untuk informasi selengkapnya, lihat Apa yang terjadi jika ada aturan yang tumpang tindih?.

Output

POST API ini menghapus rekaman aturan kalender untuk entitas yang dipilih. Selain itu, ini juga memberikan output berikut.

Nama Jenis KETERANGAN
InnerCalendarIds String Array GUID InnerCalendarIds yang merupakan hasil dari operasi POST.

Muat API Kalender

Input

Nama: msdyn_LoadCalendars
Jenis: Tindakan
Deskripsi: Menampilkan kalender untuk LoadCalendarsInput tertentu.

Nama: msdyn_LoadCalendars.LoadCalendarsInput
Jenis: Parameter
Deskripsi: String dalam format JSON berikut:

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

Nama: msdyn_LoadCalendarsResponse
Tipe: ComplexType
Deskripsi: Berisi respons dari tindakan msdyn_loadCalendars.

Nama: msdyn_LoadCalendarsResponse.CalendarEvents
Jenis: Properti
Deskripsi: String dalam format JSON berikut:

{
"calendarId": CalendarEventSlot[]
}

Di mana calendarId adalah guid yang tepat yang mewakili Guid dari Kalender dan CalendarEventSlot adalah objek format berikut:

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

Cara memanggil API

API ini dapat dipanggil menggunakan browser.

  1. Buka browser dan organisasi yang memungkinkan Anda membuat perubahan kalender.
  2. Buka Developer Tools (pilih Ctrl+Shift+I in Microsoft Edge, pilih F12 di Google Chrome).
  3. Di konsol, masukkan fungsi berikut, setelah mengganti [org-name] dengan detail organisasi (misalnya, 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. Setelah fungsi ini didefinisikan, Anda dapat memanggilnya untuk membuat, mengedit, atau menghapus kalender menggunakan API. Masukkan panggilan berikut untuk menyimpan kalender:
       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
                   }]
               }]
           }"
       })

Masukkan panggilan berikut untuk menghapus kalender:

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

Lihat bagian berikut untuk contoh cara membuat panggilan yang berbeda berdasarkan kebutuhan Anda. Ganti action panggilan fungsi di langkah 3 dengan msdyn_SaveCalendar or msdyn_DeleteCalendar, dan ganti data dengan yang relevan CalendarEventInfo.

Lihat juga tangkapan layar berikut untuk Power Automate ajakan msdyn_SaveCalendar bertindak: Power Automate Panggilan untuk tindakan msdyn_SaveCalendar.

Skenario contoh untuk penggunaan API

Lihat beberapa skenario yang dapat Anda gunakan untuk API ini.

Bob dan Tim adalah pengendara truk pengiriman untuk Contoso Enterprises di Bellevue, Washington. Operator mereka, Debbie, bertanggung jawab untuk membuat perubahan pada kalender jam kerja mereka. Debbie membuat perubahan ini dengan menggunakan msdyn_SaveCalendar API AND msdyn_DeleteCalendar .

Membuat kejadian jam kerja.

Tulus dijadwalkan untuk berkeliling untuk mengirimkan paket mulai pukul 09.00 hingga 17.00 pada 15 Mei 2021. Debbie menggunakan msdyn_SaveCalendar API.

Permintaan

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

Respons

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

Mengedit kejadian jam kerja.

Jadwal Tulus kemudian berubah menjadi mulai pukul 10.00 pada 15 Mei 2021. Debbie menggunakan msdyn_SaveCalendar API.

Permintaan

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

Respons

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

Menghapus kejadian jam kerja.

Keadaan darurat keluarga muncul, dan Bob harus membatalkan satu hari kerja penuh. Debbie menggunakan msdyn_DeleteCalendar API.

Permintaan

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

Respons

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

Membuat pengulangan harian jam kerja

Mulai 20 Mei 2021, Bob memutuskan untuk bekerja dengan Contoso sepanjang minggu dari pukul 08:00 hingga 17:00, dan akan berhenti bekerja di sana pada 15 Juli 2021.

Permintaan

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

Respons

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

Mengedit pengulangan hari ini jam kerja dengan peningkatan kapasitas

Bob memutuskan untuk berhenti bekerja sepanjang minggu tanggal 15 Juni 2021 untuk beristirahat. Sampai saat itu, Bob akan melanjutkan jadwal sepanjang minggu seperti yang telah disepakati sebelumnya. Debbie membuat perubahan ini dengan msdyn_SaveCalendar menggunakan API.

Permintaan

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

Respons

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

Membuat pengulangan pekanan jam kerja

Mulai 16 Juni 2021, Bob akan bekerja dari pukul 08:00 hingga 17:00 pada hari Rabu dan Jumat, dan akan beristirahat dari pukul 12:00 hingga 12:30 untuk makan siang. Debbie menggunakan msdyn_SaveCalendar API, tetapi membuat kesalahan, dan menjadwalkan istirahat dari pukul 12:00 hingga 13:00.

Permintaan

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

Respons

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

Mengedit istirahat dari pengulangan pekanan jam kerja

Debbie kemudian memperbaiki kesalahan dan mengubah jeda terjadi dari pukul 12:00 hingga 12:30 dengan menggunakan msdyn_SaveCalendar API.

Permintaan

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

Respons

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

Membuat pengulangan kustom jam kerja

Tim bekerja untuk Contoso pada hari Senin mulai pukul 08.00 hingga 17.00, dan Sabtu mulai pukul 11.00 hingga 15.00. Tim mulai bekerja untuk Contoso pada 16 Mei 2021. Debbie menggunakan msdyn_SaveCalendar API untuk membuat jam kerja Tim.

Permintaan

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

Respons

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

Mengedit pengulangan kustom jam kerja

Jadwal Tim kemudian berubah menjadi jam kerja dari Rabu pukul 17:00 hingga 20:00, dan Kamis pukul 10:00 hingga 12:00. Senin dihapus dari jadwal Tim. Debbie menggunakan API untuk mencapai hal msdyn_SaveCalendar ini.

Permintaan

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

Respons

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

Mengedit pengulangan jam kerja dalam satu pengulangan

Pada 26 Mei 2021, Tim hanya dapat bekerja dari pukul 13.00 hingga 19.00. Debbie menggunakan API di msdyn_SaveCalendar sini.

Permintaan

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

Respons

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

Menghapus pengulangan kustom jam kerja

Tim telah memutuskan untuk meninggalkan perusahaan dan harus menghapus seluruh jadwal mereka. Debbie menggunakan API di msdyn_DeleteCalendar sini.

Permintaan

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

Respons

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

Membuat waktu nonaktif

Tim akan mengambil libur selama tiga hari untuk liburan keluarga mulai tanggal 9 Juni 2021.

Permintaan

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

Respons

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

Membuat jam kerja seharian

Tim memiliki giliran kerja 72 jam mulai 20 Mei 2021. Debbie menggunakan msdyn_SaveCalendar API untuk membuat jam kerja Tim.

Permintaan

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

Respons

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

Tanya Jawab Umum

Saya mendapatkan kesalahan, "StartTime tidak bisa lebih besar atau sama dengan EndTime."

Pastikan tidak ada tumpang tindih pada slot waktu pada aturan kalender yang berbeda. Periksa tanggal untuk memastikan StartTime tidak lebih dari EndTime. Selain itu, pastikan waktu mengikuti format 24 jam.

Dapatkah API digunakan untuk memperbarui entitas "Template Jam Kerja"?

Ya, Anda dapat menggunakan API ini untuk membuat dan memperbarui template jam kerja selain jam kerja sumber daya.

Saya mendapatkan kesalahan, "Terjadi kesalahan saat mendeserialisasi objek jenis Microsoft.Dynamics.UCICalendar.Plugins.SaveCalendarContract+CalendarEventInfo. Sumber input tidak diformat dengan benar.
or
Mengharapkan status 'Elemen' .. Menemukan 'Teks' dengan nama '', namespace ''."

Pastikan string diuraikan dengan benar. Mungkin ada tanda kurung, koma, atau titik koma yang hilang.

Saya mendapatkan kesalahan, "Pola pengulangan tidak valid. Lihat dokumentasi untuk pola yang didukung."

Saat ini kami hanya mendukung pola ini: FREQ=DAILY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR,SA. BYDAY dapat diubah untuk menyertakan lebih sedikit hari; namun, FREQ dan INTERVAL tidak dapat diubah. Pastikan tidak ada spasi dalam pola.

Bagaimana kita mendapatkan informasi tentang CalendarId dan InnerCalendarId dari sumber daya?

Dapat CalendarId diambil dari atribut sumber daya. Lakukan panggilan ini untuk mendapatkan informasi ini: [org-url]/api/data/v9.1/bookableresources([bookableresourceGUID]).

Contoh panggilan sebelumnya adalah [org-url]/api/data/v9.1/bookableresources(7bb0224b-6712-ec11-94f9-000d3a6d888e).

Dapat InnerCalendarId diambil dari atribut kalender. Lakukan panggilan ini untuk mendapatkan informasi ini: [org-url]/api/data/v9.1/calendars([calendar-id-from-above-call])?$expand=calendar_calendar_rules.

Contoh panggilan sebelumnya adalah [org-url]/api/data/v9.1/calendars(02481736-1b6a-4d49-9ebd-a5bd041c1c99)?$expand=calendar_calendar_rules.

Apa yang terjadi jika ada aturan yang tumpang tindih?

Ada beberapa peringkat berbeda yang aturannya berada di bawah:

  • Peringkat 1 - kejadian sehari-hari (bekerja / tidak bekerja), dan kejadian cuti.
  • Peringkat 0 - pengulangan mingguan (bekerja / tidak bekerja).

Aturan tumpang tindih V2

  • Aturan Peringkat 1 memiliki prioritas yang lebih tinggi dari aturan Peringkat 0. Jika ada dua aturan (satu dari setiap peringkat) pada hari yang sama, kejadian harian atau kejadian cuti menjadi prioritas di atas pengulangan mingguan.
  • Jika ada beberapa aturan Peringkat 0 dalam rentang tanggal yang sama:
    • Jika waktu tidak berpotongan, keduanya akan tetap ada di kalender.
    • Jika waktu berpotongan, aturan yang terakhir dibuat/diubah adalah aturan yang dipertimbangkan untuk kalender fasilitas. Semua aturan berpotongan lainnya dalam rentang tanggal akan dihapus. Jika beberapa aturan peringkat 0 memiliki persimpangan pada beberapa tanggal tetapi tidak pada tanggal lain, aturan akan disambung untuk mempertahankan bagian yang tidak berpotongan, sementara bagian yang berpotongan dihapus.

Contoh perilaku kalender V2:

Contoh 1 - Jam kerja berulang: Tanggal yang tumpang tindih tanpa hari/waktu yang tumpang tindih

Untuk rentang tanggal tertentu, teknisi bekerja shift pagi, siang, atau malam di hari yang berbeda.

  1. Buat aturan kalender berulang pertama untuk rentang tanggal tertentu. Misalnya: Ulangi Senin, Selasa; 1.1-4.1; 8am-5pm ET.

  2. Buat aturan kalender berulang kedua untuk rentang tanggal yang berpotongan, sambil memastikan bahwa jam kerja tidak bersinggungan dengan hari atau waktu sebelumnya. Misalnya: Ulangi Rabu, Kamis; 1.1-4.1; 8am-5pm ET atau Ulangi Senin, Selasa; 1.1-4.1; 5pm-8pm ET.

Hasil: Kedua aturan kalender tetap ada dan hidup berdampingan satu sama lain.

Contoh 2 - Jam Kerja Berulang: Beberapa tanggal yang tumpang tindih, dengan semua hari yang tumpang tindih dan aturan kedua dimulai/berakhir sebelum atau sesudah aturan pertama

Seorang teknisi mendapat jadwal kerja baru, yang menggantikan beberapa minggu dari jadwal lama mereka. Dengan kontrak mereka selalu bekerja pada hari yang sama setiap minggu.

  1. Buat aturan kalender berulang pertama untuk rentang tanggal tertentu. Misalnya: Ulangi Senin, Selasa; 2.1-4.1; 8am-5pm ET.

  2. Buat aturan kalender berulang kedua untuk rentang tanggal yang tumpang tindih, di mana semua hari memiliki jam kerja yang tumpang tindih. Pilih tanggal mulai/akhir untuk aturan baru ini sebelum atau sesudah tanggal mulai/akhir untuk aturan pertama. Misalnya: Ulangi Senin, Selasa; 3.1-5.1; 1pm-8pm ET.

Hasil: Aturan pertama akan dipotong untuk mengakomodasi tanggal mulai / akhir dari aturan kedua. Misalnya: Ulangi Senin, Selasa; 2.1-2.28; 8am-5pm ET DAN ulangi Senin, Selasa; 3.1-5.1; 1pm-8pm ET.

Contoh 3 - Jam Kerja Berulang: Semua tanggal yang tumpang tindih, dengan beberapa hari/waktu yang tumpang tindih

Teknisi adalah pekerja kontrak untuk periode 2 bulan tetap. Mereka telah setuju untuk mengambil pekerjaan tambahan pada beberapa hari. Mereka ingin menggeser jam kerja Selasa ke waktu yang lebih awal / lebih lambat.

  1. Buat beberapa aturan kalender berulang untuk rentang tanggal tertentu. Misalnya: Ulangi Senin, Selasa; 2.1-4.1; 8am-12pm ET DAN ulangi Selasa, Rab; 2.1-4.1, 1pm-5pm ET.

  2. Buat aturan kalender berulang baru untuk rentang tanggal yang sama. Pilih hari/waktu yang sebagian tumpang tindih dengan aturan asli. Misalnya: Ulangi Selasa, Kam; 2.1-4.1; 10am-2pm ET.

Hasil: Aturan baru menimpa yang lama di mana ada tumpang tindih, dan membiarkan yang lain tidak berubah. Misalnya: Ulangi Senin; 2.1-4.1; 8am-12pm ET DAN ulangi Rabu; 2.1-4.1; 1pm-5pm ET DAN ulangi Selasa, Kamis; 2.1-4.1; 10am-2pm ET.

Contoh 4 - Jam Kerja Berulang: Tanggal aturan baru terdapat dalam aturan lama, beberapa hari/waktu yang tumpang tindih

Seorang teknisi bekerja 8 pagi - 5 sore, Senin-Jumat setiap minggu. Hanya selama dua minggu, mereka akan menangani proyek darurat khusus setiap Senin-Rabu dengan jam kerja yang berbeda 6am-6pm.

  1. Buat aturan kalender berulang pertama untuk rentang tanggal tertentu. Misalnya: Ulangi Senin, Selasa, Rabu, Kamis, Jumat; 1.1-Tidak Ada Tanggal Akhir; 8am-5pm ET.

  2. Buat aturan kalender berulang kedua yang terdapat dalam rentang tanggal di atas, pilih jam kerja yang tumpang tindih pada beberapa hari. Misalnya: Ulangi Senin, Selasa, Rabu; 5.1-5.14; 6am-6pm ET.

Hasil: Kalender harus memiliki empat aturan berulang pada akhir latihan ini:

  • Potong aturan pertama ke tanggal mulai aturan kedua
  • Aturan kalender kedua
  • Buat aturan baru yang mirip dengan aturan pertama tetapi dengan tanggal aturan kedua untuk hari yang tidak tumpang tindih
  • Potong aturan pertama untuk memulai dari tanggal akhir aturan kedua, tanpa tanggal akhir

Misalnya: Ulangi Senin, Selasa, Rabu, Kamis, Jumat; 1.1–4.30; 8am-5pm ET DAN ulangi Senin, Selasa, Rabu; 5.1-5.14; 6am-6pm ET DAN ulangi Kam, Jumat, 5.1-5.14; 8am-5pm ET DAN ulangi Senin, Selasa, Rabu, Kam, Jumat; 5.15–Tidak Ada Tanggal Akhir; 8am-5pm ET

Contoh 5 - Jam kerja tidak berulang (kejadian, aturan peringkat 1)

Seorang teknisi memiliki sejumlah hari kohesi tim, yang lebih diutamakan daripada semua contoh jam kerja lainnya untuk hari itu.

  1. Buat aturan kalender berulang untuk rentang tanggal tertentu. Misalnya: Ulangi Senin, Selasa, Rabu, Kamis, Jumat; 1.1-Tidak Ada Tanggal Akhir; 8am-5pm ET.

  2. Buat aturan kalender tidak berulang yang terdapat dalam rentang tanggal di atas. Pilih jam kerja yang tumpang tindih pada beberapa hari. Misalnya: Non-repeat; 6.21; 7am-1pm ET.

Hasil: Kalender harus memiliki 1 aturan yang tidak berulang (kejadian) pada akhir latihan. Aturan tidak berulang mengesampingkan peristiwa pengulangan yang tumpang tindih sepanjang hari. Misalnya: Ulangi Senin, Selasa, Rabu, Kamis, Jumat; 1.1-Tidak Ada Tanggal Akhir kecuali 6.21; non-ulangi; 6.21; 7am-1pm ET.

Aturan tumpang tindih V1

  • Aturan Peringkat 1 memiliki prioritas yang lebih tinggi dari aturan Peringkat 0. Jadi jika ada dua aturan (satu dari setiap peringkat) pada hari yang sama, kejadian harian atau kejadian cuti mengambil prioritas di atas pengulangan mingguan.
  • Jika terdapat dua aturan dengan peringkat yang sama, aturan yang terakhir dibuat/dimodifikasi akan menjadi aturan yang dipertimbangkan untuk kalender sumber daya.
  • Ingat bahwa kemunculan sepanjang hari adalah Peringkat 1, sehingga Anda dapat mempertimbangkan untuk mengubahnya menjadi pengulangan mingguan agar dapat menambahkan jam kerja kejadian dan membuatnya diperhatikan.
  • Bila jam kerja ada dan waktu tidak aktif dibuat tumpang tindih, aturan terpecah dengan cara yang memastikan waktu nonaktif diperhatikan, dan waktu tersisa sebagaimana jam kerja akan tetap sebagaimana adanya. Misalnya, jika terdapat jam kerja dari pukul 08.00 hingga 17.00 pada tanggal 21 September, sedangkan waktu tidak aktif ditambahkan dari pukul 15.00 hingga 19.00 pada tanggal 21 September, hal ini akan ditangani sebagai jam kerja mulai pukul 20.00 hingga 15.00 dan waktu tidak aktif dari pukul 15.00 hingga 19.00. Namun, jika aturan dibuat dengan urutan yang terbalik (waktu nonaktif dibuat lebih dulu dan kemudian jam kerja dibuat) apa pun slot waktunya, hanya jam kerja yang akan dipilih ulang. Waktu tidak aktif akan ditimpa.

Kode zona waktu

Enum Zona waktu
0 (GMT-12:00) Batas Penanggalan Internasional Barat
1 (GMT+13:00) Samoa
2 (GMT-10.00) Hawaii
3 (GMT-09.00) Alaska
4 (GMT-08:00) Waktu Pasifik (AS dan Kanada)
5 (GMT-08:00) Baja California
6 (GMT-11:00) Waktu Universal Terkoordinasi-11
7 (GMT-10.00) Kepulauan Aleutian
8 (GMT-09.30) Kepulauan Marquesas
9 (GMT-09.00) Waktu Universal Terkoordinasi-09
10 (GMT-07:00) Waktu Pegunungan (AS dan Kanada)
11 (GMT-08.00) Waktu Universal Terkoordinasi-08
12 (GMT-07:00) Chihuahua, La Paz, Mazatlan
15 (GMT-07:00) Arizona
20 (GMT-06:00) Waktu Standar Tengah (AS dan Kanada)
25 (GMT-06:00) Saskatchewan
29 (GMT-06:00) Guadalajara, Kota Meksiko, Monterrey
33 (GMT-06:00) Amerika Tengah
34 (GMT-06.00) Pulau Paskah
35 (GMT-05:00) Waktu Standar Tengah (AS dan Kanada)
40 (GMT-05:00) Indiana (Timur)
43 (GMT-05.00) Haiti
44 (GMT-05.00) Havana
45 (GMT-05:00) Bogota, Lima, Quito, Rio Branco
47 (GMT-04.00) Caracas
50 (GMT-04:00) Waktu Atlantik (Kanada)
51 (GMT-05:00) Turks dan Caicos
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) Brasilia
69 (GMT-03:00) Buenos Aires
70 (GMT-03:00) Cayenne, Fortaleza
71 (GMT-03:00) Salvador
72 (GMT-03.00) Saint Pierre dan Miquelon
73 (GMT-03:00) Tanah Hijau
74 (GMT-03:00) Montevideo
75 (GMT-02:00) Atlantik Tengah
76 (GMT-02:00) Waktu Universal Terkoordinasi-02
77 (GMT-03.00) Araguaina
80 (GMT-01:00) Azores
83 (GMT-01:00) Kep. Cabo Verde
84 (GMT+01.00) Casablanca
85 (GMT+00.00) Dublin, Edinburgh, Lisbon, London
90 (GMT+00.00) Monrovia, Reykjavik
92 (GMT) Waktu Universal Terkoordinasi
95 (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Praha
100 (GMT+01:00) Sarajevo, Skopje, Warsawa, Zagreb
105 (GMT+01:00) Brussel, Kopenhagen, Madrid, Paris
110 (GMT+01:00) Amsterdam, Berlin, Bern, Roma, Stockholm, Wina
113 (GMT+01:00) Afrika Tengah Barat
115 (GMT+02.00) Chisinau
120 (GMT+02:00) Kairo
125 (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
129 (GMT+02:00) Amman
130 (GMT+02:00) Athena, Bukares
131 (GMT+02:00) Beirut
133 (GMT+02:00) Damaskus
134 (GMT+03.00) Istanbul
135 (GMT+02:00) Yerusalem
140 (GMT+02:00) Harare, Pretoria
141 (GMT+02:00) Windhoek
142 (GMT+02.00) Gaza, Hebron
145 (GMT+03.00) Moskow, St. Petersburg
150 (GMT+03:00) Kuwait, Riyadh
151 (GMT+03:00) Minsk
155 (GMT+03:00) Nairobi
158 (GMT+03:00) Baghdad
159 (GMT+02.00) Kaliningrad
160 (GMT+03:30) Teheran
165 (GMT+04:00) Abu Dhabi, Muskat
169 (GMT+04:00) Baku
170 (GMT+04:00) Yerevan
172 (GMT+04:00) Port Louis
173 (GMT+04:00) Tbilisi
174 (GMT+04.00) Izhevsk, Samara
175 (GMT+04:30) Kabul
176 (GMT+04.00) Astrakhan, Ulyanovsk
180 (GMT+05.00) Ekaterinburg
184 (GMT+05:00) Islamabad, Karachi
185 (GMT+05.00) Toshkent
190 (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
193 (GMT+05:45) Kathmandu
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, Jakarta
207 (GMT+07.00) Krasnoyarsk
208 (GMT+07.00) Barnaul, Gorno-Altaysk
209 (GMT+07.00) Hovd
210 (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
211 (GMT+07.00) Tomsk
215 (GMT+08:00) Kuala Lumpur, Singapura
220 (GMT+08:00) Taipei
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) Seoul
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) Canberra, Melbourne, Sydney
260 (GMT+10:00) Brisbane
265 (GMT+10:00) Hobart
270 (GMT+10.00) Vladivostok
274 (GMT+10.30) Pulau Lord Howe
275 (GMT+10:00) Guam, Port Moresby
276 (GMT+11.00) Pulau Bougainville
277 (GMT+11.00) Pulau Norfolk
278 (GMT+11.00) Sakhalin
279 (GMT+11.00) Chokurdakh
280 (GMT+11:00) Kepulauan Solomon, Kaledonia Baru
281 (GMT+11.00) Magadan
284 (GMT+12:00) Waktu Universal Terkoordinasi+12
285 (GMT+12:00) Fiji
290 (GMT+12:00) Auckland, Wellington
295 (GMT+12.00) Anadyr, Petropavlovsk-Kamchatsky
299 (GMT+12.45) Kepulauan 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) Volgograd
305 (GMT-07.00) Yukon