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

# Scheduling

> Schedule payments to occur at a recurrence.

You may create and cancel schedules via Deliver.

## How to Create a Schedule

<Steps>
  <Step title="Create a Recurrence Rule (RRule)">
    Create a recurrence rule using the recommended generator [here](https://freetools.textmagic.com/rrule-generator).
  </Step>

  <Step title="Create the Schedule Request">
    Create a schedule using our [POST /schedules API](https://docs.orum.io/api-reference/deliver/schedules/post-schedule).
  </Step>

  <Step title="Get the Response">
    See below for the expected response upon creating a schedule.

    ```[expandable] theme={null}
    {
      "schedule": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "schedule_reference_id": "<string>",
        "status": "active",
        "amount": 2,
        "currency": "USD",
        "speed": "asap",
        "source": {
          "customer_reference_id": "<string>",
          "account_reference_id": "<string>",
          "statement_display_name": "<string>"
        },
        "destination": {
          "customer_reference_id": "<string>",
          "account_reference_id": "<string>",
          "statement_display_name": "<string>"
        },
        "start_date": "2025-01-01",
        "recurrence": "RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR",
        "next_payment_date": "2025-01-01",
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "rrule_readable": "Weekly on Monday, Wednesday, and Friday"
      }
    }
    ```
  </Step>
</Steps>

A few things to note after creating a schedule:

<Info>
  Orum will kick off scheduled transfers at 9am ET. However, if a schedule is created after 9AM ET and is set to start same day - it will kick off right after schedule creation
</Info>

<Info>
  If a payment date falls on a Bank Holiday, ASAP eligible payments (RTP/FedNow) will process as normal. However, ACH payments will be executed on the immediate Next Business Date
</Info>

For all transfers created from a schedule, the “schedule\_id” will be displayed in the transfer response - as seen below:

```[expandable] theme={null}
{
  "transfer": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "transfer_reference_id": "<string>",
    "amount": 2,
    "currency": "USD",
    "speed": "asap",
    "source": {
      "customer_reference_id": "<string>",
      "account_reference_id": "<string>",
      "statement_display_name": "<string>",
      "trace_number": "<string>",
      "return_trace_number": "<string>"
    },
    "destination": {
      "customer_reference_id": "<string>",
      "account_reference_id": "<string>",
      "statement_display_name": "<string>",
      "trace_number": "<string>",
      "return_trace_number": "<string>"
    },
    "status": "completed",
    "status_reasons": [
      {
        "source": {
          "reason_code": "insufficient_funds",
          "reason_code_message": "<string>",
          "network_reason_code": "<string>",
          "network_reason_code_message": "<string>",
          "network_reason_code_rail_type": "<string>"
        },
        "destination": {
          "reason_code": "insufficient_funds",
          "reason_code_message": "<string>",
          "network_reason_code": "<string>",
          "network_reason_code_message": "<string>",
          "network_reason_code_rail_type": "<string>"
        }
      }
    ],
    "account_statement_descriptor": "<string>",
    "estimated_funds_delivery_date": "2023-11-07T05:31:56Z",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "metadata": {},
    "transfer_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "schedule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  }
}
```

## How to Cancel a Schedule

<Steps>
  <Step title="Locate the Schedule ID">
    Locate the unique schedule ID of the schedule by using [GET /schedules](https://docs.orum.io/api-reference/deliver/schedules/get-schedules).
  </Step>

  <Step title="Request Cancel Schedule with the Schedule ID">
    Call the [Cancel Schedule API](https://docs.orum.io/api-reference/deliver/schedules/delete-schedule).
  </Step>
</Steps>
