Skip to content

Event Availability

Manage availability schedules and settings for calendar events. Availability determines when users can book time slots.

Get Event Availability

Retrieve availability settings for a specific event.

Endpoint

http
GET /calendars/{id}/events/{event_id}/availability

URL Parameters

ParameterTypeRequiredDescription
idintegerYesThe calendar ID
event_idintegerYesThe event ID

Response

Returns available schedule options and current availability settings.

json
{
    "schedule_options": {
        "John Doe": [
            {
                "label": "Weekly Hours",
                "value": 1,
                "default": true
            }
        ],
        "Jane Smith": [
            {
                "label": "Custom Schedule",
                "value": 8,
                "default": true
            }
        ]
    },
    "available_schedules": [
        {
            "id": 1,
            "object_id": "1",
            "title": "Weekly Hours",
            "settings": {
                "default": true,
                "timezone": "UTC",
                "date_overrides": [],
                "weekly_schedules": {
                    "mon": {
                        "enabled": true,
                        "slots": [
                            {
                                "start": "09:00",
                                "end": "17:00"
                            }
                        ]
                    },
                    "tue": {
                        "enabled": true,
                        "slots": [
                            {
                                "start": "09:00",
                                "end": "17:00"
                            }
                        ]
                    },
                    "wed": {
                        "enabled": true,
                        "slots": [
                            {
                                "start": "09:00",
                                "end": "17:00"
                            }
                        ]
                    },
                    "thu": {
                        "enabled": true,
                        "slots": [
                            {
                                "start": "09:00",
                                "end": "17:00"
                            }
                        ]
                    },
                    "fri": {
                        "enabled": true,
                        "slots": [
                            {
                                "start": "09:00",
                                "end": "17:00"
                            }
                        ]
                    },
                    "sat": {
                        "enabled": false,
                        "slots": []
                    },
                    "sun": {
                        "enabled": false,
                        "slots": []
                    }
                }
            }
        }
    ]
}

Update Event Availability

Update the availability schedule for an event.

Endpoint

http
POST /calendars/{id}/events/{event_id}/availability

URL Parameters

ParameterTypeRequiredDescription
idintegerYesThe calendar ID
event_idintegerYesThe event ID

Request Body

ParameterTypeRequiredDescription
schedule_typestringYesScheduling mode (e.g., weekly_schedules)
weekly_schedulesobjectConditionalRequired when schedule_type is weekly_schedules. Provide slots in the calendar host's timezone
date_overridesarrayNoDate-specific overrides
range_typestringNoAvailability range mode: range_days or date_range
range_daysintegerNoNumber of days bookable when using range_days (default 60)
range_date_betweenarrayNoTwo-element array [start_date, end_date] for date_range
common_schedulebooleanNoWhen true, reuse a shared host schedule for team events
hosts_schedulesobjectConditionalMap of host user IDs to availability IDs. Required for team events when common_schedule is false
availability_typestringNoexisting_schedule or custom
availability_idintegerNoAvailability schedule ID when using existing_schedule

NOTE

Buffer times (buffer_time_before, buffer_time_after, slot_interval) are managed separately through the Event Limits endpoint.

Example Request

json
{
    "schedule_type": "weekly_schedules",
    "weekly_schedules": {
        "mon": {
            "enabled": true,
            "slots": [
                {
                    "start": "09:00",
                    "end": "12:00"
                },
                {
                    "start": "14:00",
                    "end": "17:00"
                }
            ]
        },
        "tue": {
            "enabled": true,
            "slots": [
                {
                    "start": "09:00",
                    "end": "17:00"
                }
            ]
        }
    },
    "range_type": "range_days",
    "range_days": 60,
    "availability_type": "custom"
}

Response

json
{
    "message": "Data has been updated",
    "event": {
        "id": 15,
        "settings": {
            "schedule_type": "weekly_schedules",
            "...": "Updated availability settings"
        }
    }
}