> Calendly developer docs. For page Markdown, append .md to any URL.
> Index: https://developer.calendly.com/llms.txt
> API catalog: https://developer.calendly.com/.well-known/api-catalog
> OpenAPI: https://developer.calendly.com/openapi/calendly-api.yaml
> OAuth authorization server: https://calendly.com/.well-known/oauth-authorization-server
> MCP protected resource: https://mcp.calendly.com/.well-known/oauth-protected-resource
> Scheduling MCP endpoint: https://mcp.calendly.com
> Docs search MCP: https://developer.calendly.com/_mcp/server

# List Event Type Available Times

GET https://api.calendly.com/event_type_available_times

Returns a list of available times for an event type within a specified date range.

**NOTE:**

* Date range can be no greater than 31 days.
* This endpoint does not support traditional keyset pagination.

> `availability:read`

Reference: https://developer.calendly.com/api-docs/calendly-api/event-types/list-event-type-available-times

## Authentication

- `Authorization` header (bearer token, required) — OAuth 2.0
- `Authorization` header (bearer token, required) — Personal Access Token

## Request

### Query parameters

- `event_type` (string, required) — The uri associated with the event type
- `start_time` (string, required) — Start time of the requested availability range. Date cannot be in the past.
- `end_time` (string, required) — End time of the requested availability range. Date must be in the future and no greater than 31 days from start_time.

## Response

### 200

OK

- `collection` (list of EventTypeAvailableTime, required) — The set of available times for the event type matching the criteria

## Errors

### 400 Bad Request Error

Request is not valid

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 401 Unauthorized Error

Cannot authenticate caller

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 403 Forbidden Error

Permission denied or insufficient scope

- `List-event-type-available-timesRequestForbiddenError`

### 404 Not Found Error

Requested resource not found

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

### 500 Internal Server Error

An error has occurred on the server

- `title` (enum, required)
  - Allowed values: `Internal Server Error`
- `message` (enum, required)
  - Allowed values: `The server encountered an unexpected condition that prevented it from fulfilling the request.`
- `details` (list of ErrorResponseDetailsItem, optional)

## Types

### EventTypeAvailableTime

An available meeting time slot for the given event type

- `status` (string, required) — Indicates that the open time slot is "available"
- `invitees_remaining` (double, required) — Total remaining invitees for this available time. For Group Event Type, more than one invitee can book in this available time. For all other Event Types, only one invitee can book in this available time.
- `start_time` (string, required) — The moment the event was scheduled to start in UTC time
- `scheduling_url` (string, required) — The URL of the user’s scheduling site where invitees book this event type

### ErrorResponseDetailsItem

- `message` (string, required)
- `parameter` (string, optional)
- `code` (string, optional)

### ListEventTypeAvailableTimesRequestForbiddenError0

Error Object

- `title` (enum, required)
  - Allowed values: `Permission Denied`
- `message` (enum, required)
  - Allowed values: `You do not have permission to access this resource.`, `You do not have permission`
- `details` (list of ErrorResponseDetailsItem, optional)

### InsufficientScopeError

Caller does not have required oauth scopes

- `title` (enum, required)
  - Allowed values: `Insufficient scope`
- `message` (enum, required)
  - Allowed values: `This operation requires the scopes listed in the 'required_scopes' array.`
- `required_scopes` (list of string, required)

## Examples

**Response**

```json
{
  "collection": [
    {
      "status": "available",
      "invitees_remaining": 2,
      "start_time": "2020-01-02T20:00:00.000000Z",
      "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-02T20:00:00Z?month=2020-01&date=2020-01-02"
    },
    {
      "status": "available",
      "invitees_remaining": 1,
      "start_time": "2020-01-03T15:00:00.000000Z",
      "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-03T15:00:00Z?month=2020-01&date=2020-01-03"
    },
    {
      "status": "available",
      "invitees_remaining": 3,
      "start_time": "2020-01-07T23:00:00.000000Z",
      "scheduling_url": "https://calendly.com/acmesales/discovery-call/2020-01-07T23:00:00Z?month=2020-01&date=2020-01-07"
    }
  ]
}
```

**SDK Code**

```python Event Type Available Times
import requests

url = "https://api.calendly.com/event_type_available_times"

querystring = {"end_time":"2020-01-08T00:00:00.000000Z","event_type":"https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA","start_time":"2020-01-02T20:00:00.000000Z"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Event Type Available Times
const url = 'https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Event Type Available Times
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Event Type Available Times
require 'uri'
require 'net/http'

url = URI("https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Event Type Available Times
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Event Type Available Times
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Event Type Available Times
using RestSharp;

var client = new RestClient("https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Event Type Available Times
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.calendly.com/event_type_available_times?end_time=2020-01-08T00%3A00%3A00.000000Z&event_type=https%3A%2F%2Fapi.calendly.com%2Fevent_types%2FAAAAAAAAAAAAAAAA&start_time=2020-01-02T20%3A00%3A00.000000Z")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```