Invitation allowed days
- Type
- invitation_allowed_days
- Category
- Invitations
- Enforced atWhen this policy is checked: while someone tries to open, while they create or change an invitation or hold, or after a denial (notify only).
- Access-time
- TiersWhere an admin can set this policy: the whole organization, one integration, or the physical device when the connector supports a device steward.
- OrgIntegrationDevice
- EnforcementHow a configured row behaves. Enforce blocks. Require approval opens an admin inbox when the type supports it. Audit only records and never blocks.
- Enforce
- DefaultWhat happens when no row of this type is configured.
- Not configured — invitation-based access is not limited by weekday or blackout date.
Weekdays are 0–6 with 0 = Sunday. Combination intersects weekday allow-lists (empty intersection means every day is forbidden) and unions blackout dates with holiday-calendar dates when holiday_calendar is true. Local calendar date uses the organization IANA timezone. Checked at invitation redemption and when an invitation principal opens an entity. Guests see a hint similar to invitation curfew. Admins and residents are not bound unless applies_to says so.
When it is enforced
Evaluated when someone opens a door or gate or triggers an entity action. If this policy applies, the open is denied even when roles and grants would otherwise allow it.
Where to set it
Settings → Policies (org), the integration Policies tab, or — on PalGate — the device steward Policies tab.
Policies never grant access. See thepolicies architecture guidefor how org, integration, and device tiers combine.
Arguments
The config object on create/update. Shared row fieldsenforcement (enforce, require_approval,audit_only) and enabled apply to every type;audit_only and disabled rows never block.
| Name | Type | Required | Values | Description |
|---|---|---|---|---|
| weekdays | integer[] | No | 0123456 | Allow-list of weekdays (0 = Sunday). Omitted means this row does not restrict weekdays. |
| blackout_dates | string[] | No | — | ISO dates YYYY-MM-DD that invitations cannot use. |
| holiday_calendar | boolean | No | — | When true, also forbid dates listed on applicable holiday_calendar policies. |
| output | string or integer | No | — | Optional channel or output id. When set, the policy binds only that output. When omitted, it binds every output of the tier target. A scoped row does not apply when the acting output is unknown. |
How overlapping rows combine
Most-restrictive: intersect weekdays, union blackout_dates, and union holiday dates when holiday_calendar is true. Empty weekday intersection forbids every day. Disabled and audit_only rows never block.
Example
A guest invitation cannot open on Saturday, on 2026-12-25, or on any date in the org holiday calendar. The guest sees an allowed-days note. The invitation row is unchanged.
{ "weekdays": [ 1, 2, 3, 4, 5 ], "blackout_dates": [ "2026-12-25" ], "holiday_calendar": true}Integrations
This type is documented on these connectors:
- Home Assistant (home_assistant)
- KNX (knx)
- MQTT (mqtt)
- PalGate Cloud (palgate_cloud)
- Shelly Cloud (shelly_cloud)
- Shelly Websocket (shelly_websocket)
- Tasmota (tasmota)
- Virtual Access (virtual_access)
- Virtual Demo Devices (virtual_demo)
- Waveshare (waveshare)
Related
- Policy catalog
- Policies architecture guide
- Holiday calendar (holiday_calendar)
- Invitation curfew (invitation_curfew)
- Quiet hours (quiet_hours)
Typed configuration
Section titled “Typed configuration”The OpenAPI contract names this object InvitationAllowedDaysPolicyConfig:
{ "weekdays": [1, 2, 3, 4, 5], "blackout_dates": ["2026-12-25"], "holiday_calendar": true, "applies_to": ["invitation"], "output": "main"}weekdays uses Sunday = 0 through Saturday = 6. Dates use the organization-local YYYY-MM-DD calendar. Each field is optional for a row; holiday_calendar: true imports dates from applicable HolidayCalendarPolicyConfig rows.