API reference
Every endpoint of the Timekit REST API, with parameters and example requests and responses.
Overview
- Introduction
A brief introduction to the API and core data types.
- Timestamps
Timestamps are a critical part of Timekit.
- Dynamic includes
- Search
A number of the Timekit endpoints provide the ability to search on relevant attributes.
- Responses & errors
- Signed search
Use signed search to fetch bookings for a customer on the frontend without an app API token
- Pagination
- Help center (external site)
Authentication
Apps
- GETGet current app
Get the app for the authenticated App API-Key
- POSTInvite resources to app
Invite existing resources to your app
Resources
- Resources overview
- POSTCreate a resource
Create a new resource
- GETList all resources
Get all resources for the app
- GETRetrieve a resource
Get a specific resource by ID
- PUTUpdate a resource
Update a specific resource
- DELETEDelete a resource
- Availability constraints
Set availability-constraints for a single resource in order to limit availability. A common use-case is to set an employees working hours, especially if these are different than a company's opening hours. Another common use-case is setting up vacation which are also employee-specific and not business-specific.
Availability
- Availability overview
- Constraints
Use constraints to set general rules for availability.
- POSTQuery availability
Query for availability of resources
- POSTDates
Endpoint that returns all available dates for given resource.
- POSTCounts
The ability to easily show a total count of available time slots across your resources.
- POSTUnavailable Slots
Following endpoint will be used to retrieve all the times that are blocked off.
- POSTCaching Availability
Endpoint that uses cache when fetched frequently
Bookings
- Bookings overview
- POSTCreate a booking
Use this endpoint to create a booking. Please refer to our tutorial on creating a booking for a more detailed description: http://help.timekit.io/working-with-the-api/bookings/creating-a-booking If you need an introduction the the booking concept as Timekit sees it, please refer to our introduction: http://help.timekit.io/working-with-the-api/bookings/introduction-to-bookings
- GETList all bookings
Use this endpoint to get all bookings
- GETRetrieve a booking
Use this endpoint to get a specific booking
- PUTUpdate booking state
Perform an action on a booking to update its state. For a tutorial on how to perform the "confirm" action, head on over to our help center: http://help.timekit.io/working-with-the-api/bookings/confirming-bookings Please also check out our [Action links](https://developers.timekit.io/docs/action-links) article on how you can create signed links that are safe to share with your customers, like links in an email. A link stays valid for as long as the booking's current state allows its action. Use this for your customers to confirm, cancel or perform any other action on a booking without involving your backend.
- PUTUpdate booking meta data
Update meta data related to a given booking.
- GETList all group bookings
Return all available (`tentative`) group bookings For a complete tutorial on working with group bookings, head on over to our help center: http://help.timekit.io/working-with-the-api/bookings/group-bookings
- GETRetrieve a group booking
Get a specific group booking
- POSTCreate bookings in bulk
Use this endpoint to create bookings in bulk
- PUTUpdate bookings in bulk
Bulk update bookings
- DELETEDelete a booking
Delete a booking. Please note that only bookings in a final state can be deleted. Final states are typically 'completed', 'declined' or 'cancelled'. We have this limit in order to make sure that all parties are notified as expected, before we delete the booking. So that no customer shows up to a booking that was deleted without being cancelled first.
- POSTReschedule a booking
Following endpoint will be used in order to reschedule a booking.
- GETRetrieve External Action URLs
Use this endpoint to retrieve external action URLs for rescheduling or cancelling by customer. You can read more about external action links here: https://developers.timekit.io/docs/action-links These will redirect customers to a UI which will allow them to reschedule or cancel a booking.
- Reminders
Setup reminders to send emails or trigger webhooks before or after a booking takes place.
- Booking Notifications
Customize how you want to send your booking reminders.
Booking graphs
- Graphs overview
Graphs are the blueprints/workflows that bookings follow during their lifetimes.
- Instant
The instant graph is used for the situations where the booking request is automatically confirmed, i.e. the booked user doesn't need to confirm the booking.
- Confirm / decline
Use the confirm_decline graph when you have to make sure the booking request is confirmed before the booked timeslot is unavailable and an event is added to the resource's calendar. For a tutorial on how you would confirm a booking, please read this tutorial in our help center: http://help.timekit.io/working-with-the-api/bookings/confirming-bookings
- Group owner
In a booking where a number of seats are bookable, like in a seats in a class. Group_owner is the main booking, specifying when the class takes place. The group_customer graph is for handling each seat-booking. For a complete tutorial on group bookings, please refer to this article in our help center: http://help.timekit.io/working-with-the-api/bookings/group-bookings
- Group customer
The group_customer graph is for booking each seat specified in the group_owner booking
Projects
- Projects overview
Understand Timekits project model
- POSTCreate a project
Create a project
- GETList all projects
List projects
- PUTUpdate a project
You can automatically update the different settings in a project, this means that only the settings that you input are updated, so you don't have to provide the entire project JSON in order to update a single setting.
- DELETEDelete a project
Delete a specific project
- POSTAdd resources to a project
You can add one or more resources to a project using this endpoint
- PUTSet resources on a project
This will set the resources, any existing resource will be removed and replaced by the once defined in the body. The sequence of the resources will be reflected when using the roundrobin_prioritized mode.
- DELETERemove a resource from a project
You can remove a single resource from a project using the endpoint
- GETGet resources for a project
Locations
- Locations Overview
Understand Timekit's location model
- GETList all Locations
Lists all the locations
- POSTCreate a new location
Create a new location
- GETRetrieve a location
Get a specific location
- PUTUpdate a location
Update a specific location
- DELETEDelete a location
Delete a specific location
Services
- Services Overview
Understand Timekit's service model
- GETListing services
Lists all the services
- POSTCreating new service
Create a new service
- GETRetrieve a service
Get a specific service
- PUTUpdate a service
Update a specific service
- DELETEDelete a service
Delete a specific service
Reservations
- POSTReserving a time
Reserve specific time for your customers.
- PUTExtending Reservation
Extend existing reservation.
Email Templates
- GETList of templates
Get list of all available email templates. Please be advised this is restricted to the Platform tier and is not available for apps in test mode.
- GETRetrieve a template
Get specific email template by slug. Please be advised this is restricted to the Platform tier and is not available for apps in test mode.
- PUTUpdate a template
Update specific email template for your project. Please be advised this is restricted to the Platform tier and is not available for apps in test mode.
Older pages
- GETRetrieve a calendar
Get a specific calendar