chronoskin
Go

The chronoskin API

Rooms, people and bookings over plain HTTP. Add scheduling to your own application with a handful of calls and a library for the language you already write.

Currently version 2.4.1

All systems normal UpNo incidents in the last 30 days. Released 9 September 2013 Read the changelog Get an API key

Scheduling, without writing a calendar.

chronoskin keeps the calendar and its rules. Your application asks what is free, books it, and hears about every change.

Bookings

Create, move and cancel a booking with one request each. Clashes are refused with a reason your code can read.

View details »

Availability

Ask for free slots by room, person or both. Opening hours, breaks and time zones are worked out on our side.

View details »

Webhooks

Name an address and we post to it whenever a booking is made, moved or cancelled, with retries for a day.

View details »

Your first call from a terminal

$ curl api.chronoskin.example/v2/rooms/14/free \
    -u YOUR_KEY: \
    -d day=2013-09-16
{
  "room": 14,
  "free": ["09:00", "09:30", "11:00", "14:30"]
}
  • 38 msmedian responseMeasured at our edge over the last seven days.
  • 99.98%uptime, last 90 days
  • 2.1 mcalls a day
  • 6official libraries

Latest releases 2.4.1

Version 1 is switched off on 1 March 2014.

A library for your language.

Each one wraps the same calls and is released together with the API.

Ruby

A gem for Ruby 1.9 and later.

Version 2.4.1

Python

A package for Python 2.6 and 2.7.

Version 2.4.1

PHP

A package for PHP 5.3 and later.

Version 2.4.0

JavaScript

For the server and for the browser.

Version 2.3.2

Getting started

From nothing to a confirmed booking in about ten minutes.

  1. Overview
  2. Getting started
  3. Your first booking

Your first booking

Every call is an HTTPS request that answers in JSON.

You need an API key, which you send as the user name of each request. Keys come in two kinds: a test key that books nothing real, and a live key.

Find a free slot

Ask a room for its free slots on a day. Times come back in the time zone of the room, in steps set by slot_minutes.

# free slots in room 14 on 16 September
$ curl api.chronoskin.example/v2/rooms/14/free \
    -u YOUR_KEY: \
    -d day=2013-09-16

Test keys are safe. A booking made with a test key is kept for an hour and never reaches a calendar.

Do not ship a live key in a web page. Anyone who reads the page source can book with it. Call the API from your server.

Book it

Post the slot back with the name of whoever it is for. The answer carries the booking and its address.

  • A slot that has gone answers 409 with the nearest free time
  • A room that is closed answers 422 with the opening hours
  • Too many calls answer 429; wait and send it again

What to read next

Bookings can repeat, belong to several people and tell your server when they change. The reference has every field.

Reference

Every address, what it takes and what it answers.

  1. Overview
  2. Reference
  3. Bookings
Limits are calls a minute for one key. Addresses are relative to /v2.
MethodAddressWhat it doesStatusLimit
GET/bookingsLists bookings, newest firstStable120
POST/bookingsBooks a free slotStable60
PUT/bookings/:idMoves or renames a bookingStable60
POST/bookings/:id/repeatRepeats a booking on a patternBeta30
DELETE/bookings/:idCancels a bookingStable60
GET/reservationsThe version 1 name for the listGoing away10
2.4 New Stable BetaMay change before 2.5. Tell us what breaks. Going away 16

POST /bookings Stable

Books a free slot in one room. Send room, start and name; the length defaults to one slot.

{
  "id": 90211,
  "room": 14,
  "start": "2013-09-16T09:30:00+02:00",
  "name": "Design review"
}
Answers 201 with the booking, or 409 when the slot has gone.

When it does not answer 201

409: the slot has gone

Somebody else booked it first. The answer carries the nearest free time, so you can offer it straight away.

422: the room is closed

The start lies outside the opening hours of the room. The answer lists them.

429: too many calls

Wait for the number of seconds in the Retry-After header and send the call again.

See also: Your first booking Errors Rate limits Libraries Overview

Libraries

Official clients, released together with the API.

  1. Overview
  2. Libraries

Ruby 2.4.1

For Ruby 1.9 and later. No dependencies beyond the standard library.

$ gem install chronoskin
Download the gem
48 KB, released 9 September 2013

Python 2.4.1

For Python 2.6 and 2.7. A build for Python 3 is in beta.

$ pip install chronoskin
Download the package
36 KB, released 9 September 2013

PHP 2.4.0

For PHP 5.3 and later. One release behind while 2.4.1 is tested.

$ composer require chronoskin/client
Download the archive
61 KB, released 21 August 2013

Changelog

  • 2.4.1: recurring bookings

    A booking can repeat daily, weekly or on named weekdays. In beta, behind one new address.

    9 September 2013, 14 changes, 3 contributors A K T
  • 2.4.0: webhooks with retries

    A failed delivery is tried again for a day, at growing intervals, and listed in the dashboard.

    21 August 2013, 22 changes, 5 contributors
  • 2.3.2: faster availability

    Free slots for a whole week now come back in one call and in a third of the time.

    30 July 2013, 9 changes, 2 contributors K M
  • 2.3.0: people as well as rooms

    A booking can need a person, a room or both, and availability takes all of them into account.

    2 July 2013, 31 changes, 6 contributors

Other languages

JavaScript, Java and Go clients are kept by their own maintainers and follow a release or two behind.

See all six

Written your own?

Tell us and we will list it here, with a link to its source.

Send us a note

API keys

One key for each application that calls the API.

  1. Overview
  2. API keys

Ask for a key

Cancel Revoke all keys

Calls this month

61,400 of 100,000 on the free planresets on 1 October

Your keys

No keys yet

Keys you create are listed here with the date they were last used.

Read how keys work