---
title: "List program calendar strategies"
method: GET
path: "/v1/programs/{programId}/calendar-strategies"
tags: ["Program calendar strategies"]
---

# List program calendar strategies

`GET /v1/programs/{programId}/calendar-strategies`

List program calendar strategies and their configurations.

<b>Note:</b> This endpoint does not return information about a [fixed due date calendar](https://developers.pismo.io/pismo-docs/docs/fixed-due-date-calendars).

## Path parameters

- `programId` integer, required

## Query parameters

- `active` boolean
- `strategy` 'FIXED_CYCLE_CLOSING' | 'MONTHLY_CYCLE_CLOSING' | 'MONTHLY_DUE_DATE' | 'WEEKLY_CYCLE_CLOSING' | 'WEEKLY_DUE_DATE' | 'DAILY_CYCLE_CLOSING' | 'DAILY_DUE_DATE'
- `page` integer
- `perPage` integer

## Headers

- `x-cid` string

## Response `202`

OK

- GetListCalendarStrategyResponseDto — Response returned by program calendar strategy list
  - `current_page` integer — Current page number
  - `per_page` integer — Maximum number of items per page
  - `pages` integer — Number of pages
  - `total_items` integer — Total number of items
  - `items` union[]
    - union
      - FIXEDCYCLECLOSINGListResponse — Cycle closing date is fixed. Due date is dynamic.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'FIXED_CYCLE_CLOSING' — Program calendar strategy
        - `configuration` object
          - `cycle_closing_day` integer — Day of the month for the cycle closing. Must be in the range 1 to 28.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - MONTHLYCYCLECLOSINGListResponse — Cycle closes on a fixed day or Nth weekday each month.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'MONTHLY_CYCLE_CLOSING' — Program calendar strategy
        - `configuration` object
          - `cycle_closing_day` integer — Day of the month for the cycle closing. Must be in the range 1 to 28.
          - `nth_specific_weekday` NthSpecificWeekday — Nth specific weekday of the month (e.g. 3rd Friday). Mutually exclusive with fixed day fields.
            - `day_of_week` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required — Day of the week.
            - `week_of_month` integer, required — Week of the month. 1 = first, 2 = second, 3 = third, 4 = fourth, 5 = last.
          - `every_x_months` integer — Interval in months between cycles. Must be between 1 and 12. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - MONTHLYDUEDATEListResponse — Due date falls on a fixed day or Nth weekday each month.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'MONTHLY_DUE_DATE' — Program calendar strategy
        - `configuration` object
          - `due_day` integer — Day of the month for the due date. Must be in the range 1 to 28.
          - `nth_specific_weekday` NthSpecificWeekday — Nth specific weekday of the month (e.g. 3rd Friday). Mutually exclusive with fixed day fields.
            - `day_of_week` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required — Day of the week.
            - `week_of_month` integer, required — Week of the month. 1 = first, 2 = second, 3 = third, 4 = fourth, 5 = last.
          - `every_x_months` integer — Interval in months between cycles. Must be between 1 and 12. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - WEEKLYCYCLECLOSINGListResponse — Cycle closes on a specific weekday every N weeks.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'WEEKLY_CYCLE_CLOSING' — Program calendar strategy
        - `configuration` object
          - `day_of_week` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY' — Day of the week.
          - `every_x_weeks` integer — Interval in weeks between cycles. Must be between 1 and 52. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - WEEKLYDUEDATEListResponse — Due date falls on a specific weekday every N weeks.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'WEEKLY_DUE_DATE' — Program calendar strategy
        - `configuration` object
          - `day_of_week` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY' — Day of the week.
          - `every_x_weeks` integer — Interval in weeks between cycles. Must be between 1 and 52. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - DAILYCYCLECLOSINGListResponse — Cycle closes every N days.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'DAILY_CYCLE_CLOSING' — Program calendar strategy
        - `configuration` object
          - `every_x_days` integer — Interval in days between cycles. Must be between 1 and 365. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?
      - DAILYDUEDATEListResponse — Due date falls every N days.
        - `program_calendar_strategy_id` integer — Program calendar strategy ID
        - `program_id` integer — Program ID
        - `created_at` string, date-time — Datetime program calendar strategy was created. Format = YYYY-MM-DDTHH:MM:SS:MM.
        - `updated_at` string, date-time — Datetime program calendar strategy was updated. Format = YYYY-MM-DDTHH:MM:SS:MM
        - `strategy` 'DAILY_DUE_DATE' — Program calendar strategy
        - `configuration` object
          - `every_x_days` integer — Interval in days between cycles. Must be between 1 and 365. Defaults to 1.
          - `days_between_cycle_closing_and_due_date` integer — Number of days between cycle closing and due date
        - `active` boolean — Is the program calendar strategy active?

## Other responses

- `400` — Invalid payload
- `500` — Internal server error

---

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