Create a project

Create a project

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Create a new project.

Projects are meant to be used togehter with our fetch availability endpoint and the create bookings endpoint. It's a way to persistent configurations for these parts of Timekit at our end. Please note that you can always override the project settings in the request to the booking and availability endpoints.

Let's take a look at the properties you can set and what they do in 1-to-1 projects:

👍

🔒Only available on Platform plan

Creating projects through the API is locked on the Essential and Professional plans. Please see our pricing page.

Availability

resources is a list of resource IDs that make your defined resources available for booking within specific the project. Please see the fetch availability endpoint.

availability contains the top-level parameters that the fetch availability endpoint takes. These should map 1:1 with what is specified on the endpoint

availability_constraints are you project-level availability constraints which are applied in addition to resource-level constraints defined directly on your resources. Please see the fetch availability endpoint.

Clarification: Please note that { "block_period": { "start": "2022-05-01", "end": "2022-05-06" } } means 2022-05-01T00:00:00 (midnight of May 1st) to 2022-05-06T00:00:00 (midnight of May 6th). This means that May 6th at 00:01 and everything afterwards are not counted in the block. If you want to block off all of May 6th, you'd use { "block_period": { "start": "2022-05-01", "end": "2022-05-07" } } as this is midnight of May 7th.

Booking

booking contains the top-level parameters that the create booking endpoint takes. These should map 1:1 with what is specified on the endpoint

Please note that if you want to make a project that offers group bookings (classes etc.) you need to create the group_owner classes before they will be visible through the project. The project setting under booking.graph should likewise be set to group_customer because this is the kind of bookings that will end up being created through the project.

reminders are reminders (aka. "event notifications"), which are documented in depth here.

Presentation

customer_fields specifies which inputs you want your customers to fill out when making a booking. If you use our booking.js widget, the fields you declare are rendered on the form screen. Please see the booking.js docs for a full reference.

ui are miscellaneous UI specific settings that are meant to instruct how the booking flow for your customers should behave. Our booking.js v2 widget uses these when embedded on your own web page or on our hosted URL. If you're building your own UI, you can use these as hints on how to render to your component, although it's completely optional.

Attach meta data to projects

meta is extra data you can attach to the project, stored as key-value pairs. This could be an external_id from your own system or maybe the address of the store the project represents.
This data will be searchable via /projects endpoint, see: https://developers.timekit.io/v2/reference#projects

📘

Many-to-1 (group bookings)

Using projects for group bookings is different from the default 1-to-1 bookings. Essentially, the only required setting is booking: { graph: 'group_customer' } and optionally customer_fields and ui. Bookable slots are created as bookings with the group_owner graph which you link together with the project by passing project_id parameter to the booking created.

Body Params
string
required

Give the project a name

string
Defaults to Will be generated from the name

If a project with the same slug already exists, a validation error will be returned with a valid suggestion.

resources
array of strings
required

ID's of the resources that are available as par of this project

resources*
availability
array of strings
required

Configure how availability should be queried. Please see the reference for querying availability

availability*
availability_constraints
array

Configure any cross-resource constraints. Please see availability-constraints for reference.

availability_constraints
booking
array of strings
required

Configure how bookings should be made. Please see the booking section below

booking*
reminders
array

Reminder settings specific to this project. Please see our "reminders" reference, for how to configure these

reminders
string

Configure which inputs the customer can add to the booking.

ui
array of strings

UI specific configuration used by our booking.js widget (v2) reference coming.

ui
meta
array of strings

Meta data can be anything like external_ids or project locations

meta
string
Defaults to "0"

Setting to enable sending a Google Meet or Zoom conference link in the booking

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json