---
title: "Merubah Data Jadwal Rapat"
method: PUT
path: "/schedules/{meeting_id}"
tags: ["Update Schedule"]
---

# Merubah Data Jadwal Rapat

`PUT /schedules/{meeting_id}`

Perbarui jadwal meeting Zoom untuk One-time dan Recurring Schedule.

**Batasan update (divalidasi server):**
- **Tidak dapat diubah:** `product_id`, `meeting_id`, `account_id`.
- `start_date` & `start_time` **tidak dapat diubah** jika `is_used = 1` **atau** tanggal jadwal telah berlalu.
- PUT bersifat **partial update**: field yang tidak dikirim **tidak diubah**.

**Petunjuk saat memperbarui jadwal One-time (`recurring = false`):**
- Dapat diubah: `topic`, `start_date`, `start_time`, `passcode`, dan seluruh pengaturan `is_*`.

**Petunjuk saat memperbarui jadwal Recurring (`recurring = true`):**
- **Edit semua occurrence (seri)** — *tanpa* `occurrence_id`:
  - **Tidak dapat mengubah pola pengulangan:** `recurring`, `recurrence`, `repeat_interval`, `end_type`, `end_date`, `end_after_type`, `weekly_days`, `monthly_day`, `monthly_week`.
  - **Tidak dapat diubah:** `start_date` (terlepas dari status `is_used`—sudah dipakai maupun belum).
  - Dapat diubah: `topic`, `passcode`, `start_time`, dan seluruh pengaturan `is_*` **dengan mematuhi batasan umum** (ditolak jika occurrence yang terkena `is_used = 1` atau tanggalnya telah berlalu).
- **Edit salah satu occurrence** — *dengan* query `occurrence_id`:
  - **Hanya** `start_date` dan/atau `start_time` yang diproses.
  - Seluruh field pola recurring diabaikan: `recurrence`, `repeat_interval`, `weekly_days`, `monthly_day`, `monthly_week`, `end_type`, `end_date`, `end_after_type`.
  - Tetap tunduk pada batasan umum (`is_used = 1` atau tanggal berlalu akan ditolak).

## Path parameters

- `meeting_id` string, required

## Query parameters

- `occurrence_id` string

## Headers

- `Content-Type` string, required
- `Authorization` string, required

## Request body

- union
  - UpdateOneTimeBody
    - `topic` string — Judul/topik meeting.
    - `passcode` string — Kode sandi rapat.
    - `start_date` string, date — Tanggal pelaksanaan (YYYY-MM-DD).
    - `start_time` string — Jam pelaksanaan (format 24 jam, HH:MM).
    - `is_meeting_registration` boolean — Apakah membutuhkan registrasi peserta.
    - `is_meeting_qna` boolean — Mengatur aktif tidaknya fitur Q&A di ruang Zoom.
    - `is_language_interpretation` boolean — Aktifkan fitur juru bahasa.
    - `is_mute_participant_upon_entry` boolean — Mute otomatis saat peserta masuk.
    - `is_req_permission_to_unmute_participants` boolean — Peserta membutuhkan izin host untuk melakukan unmute.
  - UpdateRecurringAllOccurrencesBody
    - `topic` string — Ubah judul/topik seri.
    - `passcode` string — Ubah passcode seri.
    - `start_time` string — Ubah jam mulai seluruh occurrence ke depan (HH:MM).
    - `is_meeting_registration` boolean
    - `is_meeting_qna` boolean
    - `is_language_interpretation` boolean
    - `is_mute_participant_upon_entry` boolean
    - `is_req_permission_to_unmute_participants` boolean
  - UpdateSingleOccurrenceBody
    - `start_date` string, date — Tanggal occurrence (YYYY-MM-DD).
    - `start_time` string — Jam occurrence (HH:MM).

## Response `200`

Schedule updated successfully

- ScheduleUpdateSuccessResponse
  - `response` object
    - `status` string
    - `status_code` integer
    - `message` string
  - `data` ScheduleItemFull
    - `id` integer
    - `topic` string
    - `passcode` string
    - `recurring` boolean
    - `start_date` string, date
    - `start_time` string
    - `meeting_id` string
    - `occurence_id` string, nullable
    - `join_url` string
    - `registration_url` string, nullable
    - `waiting_room` integer
    - `is_meeting_registration` boolean
    - `is_meeting_qna` boolean
    - `is_language_interpretation` boolean
    - `is_mute_participant_upon_entry` boolean
    - `is_req_permission_to_unmute_participants` boolean
    - `editable` boolean
    - `is_used` boolean
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `product` object
      - `id` integer
      - `name` string
      - `capacity` integer
    - `account` object
      - `id` integer
      - `name` string
    - `recurring_data` object — Rincian pengulangan (jika recurring).
      - `total_recurring` integer, nullable
      - `recurrence` integer, nullable
      - `repeat_interval` integer, nullable
      - `monthly_day` integer, nullable
      - `monthly_week` integer, nullable
      - `weekly_days` integer[], nullable
      - `end_type` string, nullable
      - `end_date` string, date, nullable
      - `end_after_type` integer, nullable
    - `occurrences` object[]
      - `id` integer
      - `occurence_id` string
      - `start_date` string, date
      - `start_time` string
      - `waiting_room` integer
      - `editable` boolean
      - `is_used` boolean

## Other responses

- `400` — Validation error
- `401` — Unauthorized (token tidak valid)
- `422` — Unprocessable Entity (kombinasi parameter tidak valid / melanggar batasan update)

---

[API](https://skmtc.net/rapatin/apis/authentication.md) · [All operations](https://skmtc.net/rapatin/apis/authentication/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rapatin/authentication/revisions/5aa22566f41f/schema)
