---
title: "Update a package availability rule"
method: PUT
path: "/shop/packages/{packageId}/availability-rules/{availabilityRuleId}"
tags: ["Packages"]
---

# Update a package availability rule

`PUT /shop/packages/{packageId}/availability-rules/{availabilityRuleId}`

Replaces an `AvailabilityRule` on a `Package`. The server validates
the same shape as on create, so `is_available` is required.
Requires the `SETTINGS_MANAGE` permission on the package's site.

## Request body

- object
  - `is_available` boolean, required — Whether the window is bookable. `false` rules override `true` rules.
  - `date_from` string, date, nullable — First date this rule applies (inclusive).
  - `date_to` string, date, nullable — Last date this rule applies (inclusive).
  - `time_from` string, nullable — Daily start time in `HH:MM`.
  - `time_to` string, nullable — Daily end time in `HH:MM`.
  - `min_duration` integer, nullable — Match only for total package durations ≥ this many minutes.
  - `max_duration` integer, nullable — Match only for total package durations ≤ this many minutes.
  - `weekdays` string[]

## Response `200`

A single `AvailabilityRule` belonging to a `Package`.

- object
  - `data` AvailabilityRule, required
    - `id` string, object-id, required — The ID of the availability rule.
    - `date_from` string, date, required — The start of the rule period.
    - `date_to` string, date, required — The end of the rule period.
    - `is_available` boolean, required — Whether the resource is available during this period. Any `false` rules will override `true` rules.
    - `max_duration` integer — Maximum number of minutes.
    - `min_duration` integer — Minimum number of minutes.
    - `time_from` string, required — The daily start time of the time period, in 24 hour format.
    - `time_to` string, required — The daily end time of the time period, in 24 hour format.
    - `weekdays` string[] — The weekdays this rule applies to.

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
