> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Menjadwalkan anggota grup absensi berbasis shift

> Panggil API DingTalk ini untuk menjadwalkan shift atau hari libur anggota grup absensi berbasis shift per tanggal, termasuk pengaturan penjadwalan shift massal per pengguna.

Panggil API ini untuk menjadwalkan anggota grup absensi berbasis shift. Pastikan tipe grup absensi adalah **absensi berbasis shift**.

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/group/schedule/async](https://api.dingtalk.io/topapi/attendance/group/schedule/async) |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internal　appType-Aplikasi perusahaan pihak ketiga |
| Izin yang diperlukan | permission-qyapi\_attendance\_group\_manage-Izin pengelolaan grup absensi |

### Parameter query

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | bE74xxxx | Kredensial aplikasi yang digunakan untuk memanggil API ini.   - Untuk Aplikasi internal, panggil API [Mendapatkan access\_token Aplikasi internal](https://help.dingtalk.io/id/open/development/obtain-orgapp-token) untuk memperolehnya. - Untuk Aplikasi perusahaan pihak ketiga, panggil API untuk mendapatkan access\_token organisasi pihak ketiga untuk memperolehnya. |

### Isi permintaan

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| op\_user\_id | String | Ya | user456 | ID pengguna operator. |
| group\_id | Number | Ya | 2987 | ID grup absensi.  **Catatan**  Jika Anda menggunakan pengenal grup absensi lama group\_key, panggil API [Mengonversi groupKey menjadi groupId](https://help.dingtalk.io/id/open/development/convert-groupkey-to-groupid.md) untuk mengonversi group\_key menjadi group\_id. |
| schedules | TopScheduleParam\[] | Ya | | Detail penjadwalan shift. Contoh:   `&#123;   "is_rest": false,   "work_date": 1605150671000,   "shift_id": 1,   "userid": "user123" &#125;`   **Catatan**  Panjang daftar maksimum adalah 200. |
| shift\_id | Number | Ya | 1 | ID shift. Isi 1 untuk shift libur. Panggil API [Mendapatkan ringkasan shift](https://help.dingtalk.io/id/open/development/enterprise-shift-query-in-batches.md) untuk memperoleh nilai id.  **Catatan**   - Jika is\_rest bernilai true, isi shift\_id dengan 1. - Untuk menghapus jadwal, isi shift\_id dengan -2. |
| work\_date | Number | Ya | 1564985177000 | Tanggal penjadwalan shift.  **Catatan**  Tanggal tidak boleh lebih awal dari 180 hari yang lalu dan tidak boleh lebih lambat dari 180 hari dari sekarang. |
| is\_rest | Boolean | Tidak | false | Menentukan apakah hari tersebut merupakan hari libur:   - **true**: Hari libur  **Catatan**  Jika parameter ini bernilai true, isi shift\_id dengan 1. - **false**: Bukan hari libur |
| userid | String | Ya | user123 | ID pengguna dari pengguna. |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/group/schedule/async" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=d64b3xxxx57b23' \
-d 'group_id=2987' \
-d 'op_user_id=dd_test' \
-d 'schedules=null'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/schedule/async");
OapiAttendanceGroupScheduleAsyncRequest req = new OapiAttendanceGroupScheduleAsyncRequest();
req.setOpUserId("user456");
req.setGroupId(2987L);
List<TopScheduleParam> list2 = new ArrayList<TopScheduleParam>();
TopScheduleParam obj3 = new TopScheduleParam();
obj3.setShiftId(1L);
obj3.setWorkDate(1564985177000L);
obj3.setIsRest(false);
obj3.setUserid("user123");
list2.add(obj3);
req.setSchedules(list2);
OapiAttendanceGroupScheduleAsyncResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import dingtalk.api

req=dingtalk.api.OapiAttendanceGroupScheduleAsyncRequest("https://api.dingtalk.io/topapi/attendance/group/schedule/async")

req.op_user_id="dd_test"
req.group_id=2987
req.schedules=""
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
```

PHP

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiAttendanceGroupScheduleAsyncRequest;
$req->setOpUserId("dd_test");
$req->setGroupId("2987");
$schedules = new TopScheduleParam;
$schedules->shift_id="1";
$schedules->work_date="1564985177000";
$schedules->is_rest="false";
$schedules->userid="dd_test";
$req->setSchedules(array($schedules));
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/group/schedule/async");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/schedule/async");
OapiAttendanceGroupScheduleAsyncRequest req = new OapiAttendanceGroupScheduleAsyncRequest();
req.OpUserId = "dd_test";
req.GroupId = 2987L;
List<OapiAttendanceGroupScheduleAsyncRequest.TopScheduleParamDomain> list2 = new List<OapiAttendanceGroupScheduleAsyncRequest.TopScheduleParamDomain>();
OapiAttendanceGroupScheduleAsyncRequest.TopScheduleParamDomain obj3 = new OapiAttendanceGroupScheduleAsyncRequest.TopScheduleParamDomain();
list2.Add(obj3);
obj3.ShiftId = 1L;
obj3.WorkDate = 1564985177000L;
obj3.IsRest = false;
obj3.Userid = "dd_test";
req.Schedules_ = list2;
OapiAttendanceGroupScheduleAsyncResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| success | Boolean | true | Menunjukkan apakah permintaan berhasil.   - **true**: Berhasil - **false**: Gagal |
| errcode | Number | 0 | Kode respons. |
| errmsg | String | ok | Deskripsi kode respons. |
| request\_id | String | zpd0i7dlr7bi | ID permintaan. |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode":0,
  "errmsg":"ok",
  "success":true,
  "request_id":"zpd0i7dlr7bi"
}
```

### Kode error

Jika panggilan API mengembalikan error, cari solusinya di dokumen [Kode error global](https://help.dingtalk.io/id/open/development/server-api-error-codes-1.md) berdasarkan pesan error.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.