POST Create a resource
Create a new resource
Create resources programmatically.
Endpoint
POST https://api.timekit.io/v2/resources
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
name |
body | string | yes, unless first_name is sent |
Set the name of the resource. Stored as first_name when first_name is not sent |
|
timezone |
body | string | yes | Timezone of the resources | |
email |
body | string | Email of the resources. Only required if resources need to log in to the Timekit admin (see the blue box below). If omitted, the resource gets a generated placeholder email of the form resource+<id>@timekit.io. |
||
first_name |
body | string | yes, unless name is sent |
First name of the resources, useful if you're creating users as resources | |
last_name |
body | string | Last name of the resources | ||
password |
body | string | Password of the resources (if not set, a random password will be assigned - can be reset subsequently) | ||
availability_constraints |
body | array_object | Define resource-level availability constraints to be used by our POST /availability endpoint. Lean more | ||
image |
body | string | Url of an image representing the resource | ||
meta |
body | object | metadata for the resource |
Request examples
curlcurl --request POST \
--url https://api.timekit.io/v2/resources \
--header 'Content-Type: application/json' \
--user :live_api_key_7nzvc7wsBQQISLeFSVhROys9V1bUJ1z7 \
--data '{
"email": "doc.brown@timekit.io",
"timezone": "America/Los_Angeles",
"name": "Doc Brown",
"password": "FluxCapacitator",
"image": "https://foo.bar/baz.png"
}'
json{
"email": "doc.brown@timekit.io",
"timezone": "America/Los_Angeles",
"first_name": "Emmet",
"last_name": "Brown",
"password": "FluxCapacitator"
}
Response examples
201
The response also includes the resource's calendars and, when set, its availability_constraints. last_name is null when it is not sent.
json{
"data": {
"id": "d187d6e0-d6cb-409a-ae60-45a8fd0ec879",
"email": "doc.brown@timekit.io",
"image": "https://foo.bar/baz.png",
"timezone": "America/Los_Angeles",
"last_name": null,
"first_name": "Doc Brown",
"name": "Doc Brown",
"email_verified": null,
"conference_type": null,
"explicit_consent": null,
"meta": [],
"conference_enabled": false,
"enabled_email_notification": false,
"created_at": "2025-09-19T15:21:44+0000",
"updated_at": "2025-09-19T15:21:44+0000",
"api_token": "<the resource's API token>",
"calendars": [
{
"id": "bfa0b9fa-36aa-4ae6-8096-f3b20fbed1d2",
"provider_id": null,
"provider_access": "owner",
"provider_primary": false,
"provider_sync": false,
"name": "Bookings",
"description": "Created by Timekit on resource creation",
"foregroundcolor": null,
"backgroundcolor": null,
"created_at": "2025-09-19T15:21:44+0000",
"updated_at": "2025-09-19T15:21:44+0000",
"provider": "timekit"
}
]
}
}
422
json{
"errors": {
"first_name": [
"The first name field is required when name is not present."
],
"name": [
"The name field is required when first name is not present."
],
"timezone": [
"The timezone field is required."
]
}
}