Timekit developers

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

curl
curl --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."
    ]
  }
}
Last edited 6 October 2026.