OPWS Developers

예약 (Schedules)

oe.schedules.*템플릿 기반 예약 방송의 전체 CRUD를 제공합니다. 예약을 만들기 전에 먼저 방송 템플릿을 생성해야 합니다.

oe.schedules.create()

recurrence에 따라 필수 필드가 달라집니다.

ts
create(req: CreateScheduleInput): Promise<ScheduleView>
ts
// WEEKLY — 평일 아침 방송
await oe.schedules.create({
  templateHandle: "tpl_morning",
  name: "평일 아침 방송",
  recurrence: "WEEKLY",
  executeTime: "09:00",
  daysOfWeek: "MON,TUE,WED,THU,FRI",   // WEEKLY 시 필수
  startDate: "2026-07-01",
  isLastDay: false,
});
필드필수설명
templateHandle방송에 사용할 템플릿 handle
name예약 이름
recurrenceONCE · DAILY · WEEKLY · MONTHLY
executeTime실행 시각(HH:MM)
startDate예약 시작일(YYYY-MM-DD)
isLastDay말일 실행 여부(MONTHLY, 기본 false)
executeDateONCE실행 날짜
daysOfWeekWEEKLY요일(MON,WED,FRI)
monthlyDayMONTHLY실행 날짜(1–31)
endDate · notes아니오종료일 · 메모

oe.schedules.list()

ts
list(): Promise<ScheduleView[]>
ts
const schedules = await oe.schedules.list();
// ScheduleView: handle · name · templateHandle · recurrence · executeTime · executionAvailability

oe.schedules.get()

ts
get(handle: string): Promise<ScheduleView>
ts
const schedule = await oe.schedules.get("sch_morning");

oe.schedules.update()

UpdateScheduleInputCreateScheduleInput의 partial(templateHandle 제외). 변경할 필드만 전달합니다.

ts
update(handle: string, req: UpdateScheduleInput): Promise<ScheduleView>
ts
await oe.schedules.update("sch_morning", {
  name: "새벽 방송으로 변경",
  executeTime: "06:00",
});

recurrence 재설정 주의

ScheduleViewdaysOfWeek·monthlyDay·isLastDay를 반환하지 않습니다. 이름만 바꾸는 수정이라도 recurrence 관련 필드를 비우면 기존 값(예: isLastDay:true 말일 예약)이 잘못 덮어써질 수 있습니다. recurrence를 바꾸지 않을 땐 관련 필드를 건드리지 마세요.

oe.schedules.delete()

ts
delete(handle: string): Promise<void>
ts
await oe.schedules.delete("sch_morning");

모든 schedules 호출은 SCHEDULE MANAGE capability가 필요합니다.