Skip to content

Update an office hours exception

Request

You can update an existing office hours exception.

Security
bearerAuth
Path
office_hours_schedule_idstringrequired

The unique identifier for the office hours schedule.

Example:123
idstringrequired

The unique identifier for the office hours exception.

Example:456
Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default:"2.16"
Enum:"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example:2.16
Bodyapplication/json
exception_datestring, (date)

The date the exception applies to, in YYYY-MM-DD format.

Example:"2026-12-25"
exception_typestring

The type of exception.

Enum:"closed""custom_hours"
Example:"custom_hours"
namestring

An optional name for the exception.

Example:"Christmas Day (reduced hours)"
time_intervalsArray of objects or null(Office Hours Time Interval)

The open intervals for the exception date. Required for custom_hours; omit for closed.

recurring_annuallyboolean

Whether the exception repeats every year on the same date.

Example:true
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.16' \
  -d '{
    "exception_type": "custom_hours",
    "name": "Christmas Day (reduced hours)",
    "time_intervals": [
      {
        "start_minute": 540,
        "end_minute": 780
      }
    ],
    "recurring_annually": true
  }'

Responses

Office hours exception updated

Bodyapplication/json
typestring

The type of the object - always office_hours_exception.

Example:"office_hours_exception"
idstring

The unique identifier for the office hours exception.

Example:"456"
office_hours_schedule_idstring

The unique identifier for the schedule this exception belongs to.

Example:"123"
exception_datestring, (date)

The date the exception applies to, in YYYY-MM-DD format.

Example:"2026-12-25"
exception_typestring

closed means the workspace is closed all day; custom_hours replaces the regular hours with time_intervals.

Enum:"closed""custom_hours"
Example:"closed"
namestring or null

An optional name for the exception.

Example:"Christmas Day"
time_intervalsArray of objects or null(Office Hours Time Interval)

The open intervals for the exception date. null when exception_type is closed.

recurring_annuallyboolean

Whether the exception repeats every year on the same date.

Example:true
created_atinteger

The time the exception was created as a Unix timestamp.

Example:1717200000
updated_atinteger

The time the exception was last updated as a Unix timestamp.

Example:1717200000
Response
{ "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 }