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

# Program Schedules

> Create and manage IOP, PHP, Residential, and Outpatient program schedule templates for patient enrollment.

The Program Schedules screen lists and manages program schedule templates used for patient enrollment, accessible at `/cl/program-schedules`.

## Overview

The page fetches program schedule templates from `cl_program_schedules` via `useProgramSchedulesList`. By default only active schedules are shown; a "Show retired" toggle includes inactive schedules. Each schedule is displayed as a card showing the program name, program type label, minimum hours per week, and minimum days per week. Retired schedules render at reduced opacity with a "Retired" badge. A "New Schedule" button (visible to users with `cl.program_schedules.create`) opens a `ProgramScheduleFormDialog` to create a new template. The list is ordered alphabetically by name.

## Who it's for

Requires permission: `cl.program_schedules.view`

Additional permission that unlocks creation:

* `cl.program_schedules.create` — enables the "New Schedule" button

## Before you start

* Your account must have the `cl.program_schedules.view` permission.
* To create schedules, you additionally need `cl.program_schedules.create`.

## Steps

<Steps>
  <Step title="Open Program Schedules">
    Navigate to `/cl/program-schedules`. The schedule card grid loads automatically showing active schedules only.
  </Step>

  <Step title="Include retired schedules">
    Toggle "Show retired" to also display inactive (`is_active: false`) schedule templates. Retired cards render at reduced opacity.
  </Step>

  <Step title="Create a new schedule (create permission required)">
    Click "New Schedule" to open the Program Schedule form dialog. Complete the required fields and save to add the template to the directory.
  </Step>
</Steps>

## Key concepts

<AccordionGroup>
  <Accordion title="Active vs Retired schedules">
    Active schedules (`is_active: true`) are available for patient enrollment. Retired schedules (`is_active: false`) are hidden by default but remain in the system. Retiring a schedule does not end existing enrollments.
  </Accordion>

  <Accordion title="Schedule card fields">
    Each card shows: program name, program type (from `PROGRAM_TYPE_LABELS`), minimum hours per week (`≥Xh/wk`), and minimum days per week (`≥Xd/wk`).
  </Accordion>

  <Accordion title="Empty state">
    When no schedules exist: "No program schedules — Create your first program schedule template to get started."
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Clinical" icon="stethoscope" href="/cl/overview">
    Overview of the Clinical core.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/cl.tsx
  * src/cores/cl/pages/ProgramSchedulesListPage.tsx
  * src/cores/cl/hooks/useProgramSchedules.ts
</Accordion>
