# Ignoring Calendar Events

There are situations where it makes sense to ignore the events in someone's calendars when generating a list of availabile slots using the [Availability API](/developers/api/scheduling/availability/index.md).

A few examples of when this may be needed includes:

- A recruiter has pre-agreed solts to offer a candidate with a hiring manager

- A Sales Person needs to fit a call in with a client and is happy to override internal meetings

- A work conference marks out the team as busy for external calls but wants to be availble for in person meetings

- An employee has set an event with the "Working elsewhere" [extended transparency](/developers/api/events/read-events/index.md) but are still available for meetings during this time

In these situations you may still want to respect someone's working hours as defined with [Availability Rules](/developers/api/scheduling/availability-rules/index.md) or [Availability Periods](/developers/api/scheduling/available-periods/index.md), or you may want to provide times outside of their working hours. Either way, it is possible to ignore events already booked into someone's calendar.

## How to Ignore Events
There are a few different ways to ignore a persons events, some will ignore all events present in the calendar, whereas others will ignore a specific type of event from the Availability query.

### Ignore all events
The `participants.members.calendar_ids` parameter restricts the events contributing towards the members availability to those within the set of specified calendar_ids.

If this is passed as an empty array to the in the [Availability](/developers/api/scheduling/availability/index.md) query then all events in the participants calendars are ignored.

```json
{
  "participants": [
    {
      "members": [
        {
          "sub": "acc_64b17d868090ea21640c914c",
          "calendar_ids": [],
          "managed_availability": true
        }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 30 },
  "query_periods": [
    {
      "start": "2026-04-29T00:00:00Z",
      "end": "2026-04-30T00:00:00Z"
    }
  ]
}
```

The above query we're generating slots for 2026-04-29 and respecting the Availability Rules for the `participant` with `sub` value of `acc_64b17d868090ea21640c914c`.

### Ignore Unmanaged Events
If you wish to ignore events that your application isn't managing, the `participants.members.only_managed_events` boolean - if set to true - only consider events that you are managing when determining busy times for this member. This defaults to false if not specified.

A managed event means an event that has been created by your application.

```json
{
  "participants": [
    {
      "members": [
        {
          "sub": "acc_64b17d868090ea21640c914c",
          "calendar_ids": ["cal_n23kjnwrw2_jsdfjksn234"],
          "managed_availability": true,
          "only_managed_events": true
        }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 30 },
  "query_periods": [
    {
      "start": "2026-04-29T00:00:00Z",
      "end": "2026-04-30T00:00:00Z"
    }
  ]
}
```

In this example we have set the query to only consider managed events in the availability query and to ignore any other events for the `participant` with `sub` value of `acc_64b17d868090ea21640c914c` and `calendar_ids` of `cal_n23kjnwrw2_jsdfjksn234`.

### Ignore Tentative Events
If you wish to ignore events the participant has marked as "tentative" in the availability query then the `participants.members.ignore_tentative` boolean - if set to true - will consider events marked as tentatively attending as free periods. This defaults to false if not specified and will consider these event as busy periods.

```json
{
  "participants": [
    {
      "members": [
        {
          "sub": "acc_64b17d868090ea21640c914c",
          "calendar_ids": ["cal_n23kjnwrw2_jsdfjksn234"],
          "ignore_tentative": true
        }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 30 },
  "query_periods": [
    {
      "start": "2026-04-29T00:00:00Z",
      "end": "2026-04-30T00:00:00Z"
    }
  ]
}
```

In this example we have set the query to ignore any events in the participants calendar that have been marked at tentative in the availability query.

### Ignore events with Extended Transparency
Currently only events within Microsoft 365 and Exchange calendars can return the [extended transparency](/developers/api/events/read-events/index.md) values.
The possible values are:

- `&quot;working_elsewhere&quot;`<br/>indicates the user is working away from their normal site

- `&quot;tentative&quot;`<br/>indicates an invitation not yet responded to, or which has been responded to tentatively

- `&quot;out_of_office&quot;`<br/>indicates the user is unavailable due to being out of the office, such as being on vacation

There is an inherent uncertainty about if these events should be considered available or not. For example, `working_elsewhere` could be because someone is working from another office and available for meetings, or it could be because they are working at a trade show and not available for meetings.

If you wish to ignore events with an extended transparency status, you can pass these as values to the `participants.members.ignored_extended_transparencies` array.

This defaults to an empty array if not set and events with these statuses will be considered as unavailable.

```json
{
  "participants": [
    {
      "members": [
        {
          "sub": "acc_64b17d868090ea21640c914c",
          "calendar_ids": ["cal_n23kjnwrw2_jsdfjksn234"],
          "ignored_extended_transparencies": ["working_elsewhere"]
        }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 30 },
  "query_periods": [
    {
      "start": "2026-04-29T00:00:00Z",
      "end": "2026-04-30T00:00:00Z"
    }
  ]
}
```

In this example we have set the query to ignore any events in the participants calendar that have been marked as working elsewhere in the availability query.

### Ignore all events including Availability Rules
You might want to ignore not only the events in a users calendar, but also the managed availabilty rules so that the query can offer time outside of their normal working hours.

In this example instead of using Availability Rules we're manually setting the periods that the participant is available for.

```json
{
  "participants": [
    {
      "members": [
        {
          "sub": "acc_64b17d868090ea21640c914c",
          "calendar_ids": [],
          "available_periods": [
            {
              "start": "2026-04-29T09:00:00Z",
              "end": "2026-04-29T12:00:00Z"
            },
            {
              "start": "2026-04-29T16:00:00Z",
              "end": "2026-04-29T17:00:00Z"
            }
          ]
        }
      ],
      "required": "all"
    }
  ],
  "required_duration": { "minutes": 30 },
  "query_periods": [
    {
      "start": "2026-04-29T09:00:00Z",
      "end": "2026-04-29T18:00:00Z"
    }
  ]
}
```



---
[Read in HTML](/developers/scheduling/ignoring-calendar-events/)