Skip to content

Create an office hours exception

Request

You can create an exception for an office hours schedule. Use closed to mark the day closed (omit time_intervals) or custom_hours to supply replacement intervals.

Security
bearerAuth
Path
office_hours_schedule_idstringrequired

The unique identifier for the office hours schedule.

Example:123
Headers
Intercom-Versionstring(intercom_version)

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

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

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

Example:"2026-12-25"
exception_typestringrequired

The type of exception.

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

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. Required for custom_hours; omit for closed.

recurring_annuallyboolean

Whether the exception repeats every year on the same date.

Example:true
curl -i -X POST \
  https://api.intercom.io/office_hours_schedules/123/office_hours_exceptions \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: Preview' \
  -d '{
    "exception_date": "2026-12-25",
    "exception_type": "closed",
    "name": "Christmas Day",
    "recurring_annually": true
  }'

Responses

Office hours exception created

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": "458", "office_hours_schedule_id": "123", "exception_date": "2026-12-25", "exception_type": "closed", "name": "Christmas Day", "time_intervals": null, "recurring_annually": true, "created_at": 1717200000, "updated_at": 1717200000 }