- Update an office hours exception
You can update an existing office hours exception.
Intercom API version.
If you omit the header, the API uses the version set in your app package, and 1.0 if none is set.
The date the exception applies to, in YYYY-MM-DD format. A schedule can have only one exception for each date.
The open intervals for the exception date. Required for custom_hours; omit for closed, which returns a 422 error if intervals are sent. start_minute and end_minute must be on a 15-minute boundary. Don't send day_of_week; it is read-only and a request that includes it is rejected with a 400 error.
- The production API serverhttps://api.intercom.io/office_hours_schedules/{office_hours_schedule_id}/office_hours_exceptions/{id}
- The european API serverhttps://api.eu.intercom.io/office_hours_schedules/{office_hours_schedule_id}/office_hours_exceptions/{id}
- The australian API serverhttps://api.au.intercom.io/office_hours_schedules/{office_hours_schedule_id}/office_hours_exceptions/{id}
curl -i -X PUT \
https://api.intercom.io/office_hours_schedules/123/office_hours_exceptions/456 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Intercom-Version: 2.17' \
-d '{
"exception_type": "custom_hours",
"name": "Christmas Day (reduced hours)",
"time_intervals": [
{
"start_minute": 540,
"end_minute": 780
}
],
"recurring_annually": true
}'Office hours exception updated
The unique identifier for the schedule this exception belongs to.
The date the exception applies to, in YYYY-MM-DD format.
closed means the workspace is closed all day; custom_hours replaces the regular hours with time_intervals.
The open intervals for the exception date. null when exception_type is closed.
{ "type": "office_hours_exception", "id": "456", "office_hours_schedule_id": "123", "exception_date": "2026-12-25", "exception_type": "custom_hours", "name": "Christmas Day (reduced hours)", "time_intervals": [ { … } ], "recurring_annually": true, "created_at": 1717200000, "updated_at": 1717203600 }