Yes we offer a REST API to allow access to the data in your online account. In addition we have Webhooks that can send information to other services based on actions that happen in your account.
We also partner with Zapier to make integration with our API even quicker and easier. Connect to 1000+ of your favorite tools with our Zapier app.
Get our Zapier app here.
Within our API we use Hypermedia to allow you to explore the API and its calls. You can use many API browsers to see and interact with the API for your account like
Postman. Once you are logged into your account simply start your API browser and point it to
https://www.scheduleit.com/api/.
API calls are made via the HTTP methods GET, POST, and DELETE. The responses return status codes indicating success or failure, along with any applicable headers, and JSON representing the affected fields (or nothing) in the message-body.
Security & Access
Authentication to the API is normally done using HTTP Basic Authentication where your account login (account number_login name) and password are required. You can also enter a login name and password in the URL parameters, and if accessing via your browser with a valid login token then access is automatically granted. The most compelling aspect about HTTP Basic Authentication is that it's simple, and you should of course always use HTTPS when submitting HTTP Basic Authentication credentials.
Although the connection between you and our servers is encrypted and protected by the SSL layer it is advised not to put your login details as URL parameters where possible. These could be stored in the clear in our server logs as well as being visible to snooping if your SSL connection is not secure.
URL
https://accountnum_loginname:password@www.scheduleit.com/api/
cURL
$ch = curl_init('https://accountnum_loginname:password@www.scheduleit.com/api/');
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
cURL
$ch = curl_init('https://www.scheduleit.com/api/');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, 'accountnum_username:password');
$output = curl_exec($ch);
curl_close($ch);
cURL$ch = curl_init('https://www.scheduleit.com/api/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization:Basic '.base64_encode('accountnum_username:password').''));
$output = curl_exec($ch);
curl_close($ch);
Base64 Encoding Tools cURL (Limited Access - Login via GET will be removed in future updates)
$ch = curl_init('https://www.scheduleit.com/api/');
$params = 'user=accountnum/loginname&pass=password';
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$output = curl_exec($ch);
curl_close($ch);
Retrieving User Information
Data is request via the URL path and additional parameters.
URL
https://accountnum_loginname:password@www.scheduleit.com/api/
cURL
$ch = curl_init('https://accountnum_loginname:password@www.scheduleit.com/api/');
curl_setopt($ch, CURLOPT_HEADER, 0);
$output = curl_exec($ch);
curl_close($ch);
DATA SETS
Data set names can be your groups, resources, events, account, system, messages...
GET
GET is used to retrieve data without directly modifying it. Returned data is in json format unless CSV is specified (?format=csv).
GET /data set name
Get the summary of your Groups, Resources or Events. Other data sets are available.
GET /groups HTTP/1.1
GET /resources HTTP/1.1
GET /events HTTP/1.1
Get the summary and Event where the Event ID is 1234
GET /events/1234 HTTP/1.1
Unless specific fields are specified only a summary is returned including total count of matching records. You must specify the fields if you need the actual data value.
fields=field names
Field name examples:
id (all)
name (groups,resources)
email (resources,events)
positionv (groups,resources)
title (events)
date_start (events)
date_end (events)
owner (events)
ownername (events)
priority (events)
date_created (events)
date_modified (events)
...
Get the id and Name fields from all your Groups
GET /groups?fields=id,name HTTP/1.1
Get the id, name and email addresses from all your Resources
GET /resources?fields=id,name,email HTTP/1.1
Get the id from all your Events within the default date range
GET /events?fields=id HTTP/1.1
Get the title of your Events where the Event ID is 123456
GET /events/123456?fields=title HTTP/1.1
Search the data sets for specific data.
search_id=search id
search_title=search text
search_name=search text
search_date_start=search date
search_date_end=search date
search_owner=search resource id
search_date_modified=(search type) search date
date_range_from=search date
date_range_to=search date
Get any Events linked to a resource with the ID 123, 123 OR 456, and 123 AND 456
GET /events/1234?fields=id&search_owner=123 HTTP/1.1
GET /events/1234?fields=id&search_owner=123,456 HTTP/1.1
GET /events/1234?fields=id&search_owner=!,123,456 HTTP/1.1
Get Events for 2018
GET /events?date_range_from=2018-01-01&date_range_to=2018-12-31 HTTP/1.1
Get Events where the start date is from 2016-01-01, and where the title contains the word 'test'
GET /events?date_range_from=2016-01-01&date_range_to=2020-01-01&search_title=test HTTP/1.1
Get data that was added or updated after a date, on date, before date, and not on date
GET /events?search_date_modified=>2018-01-01 HTTP/1.1 (after date)
GET /resources?search_date_modified=>2018-01-01 HTTP/1.1 (after date)
GET /groups?search_date_modified=>2018-01-01 HTTP/1.1 (after date)
GET /events?search_date_modified=2018-01-01 HTTP/1.1 (on date)
GET /events?search_date_modified=<2018-01-01 HTTP/1.1 (before date)
GET /events?search_date_modified=!2018-01-01 HTTP/1.1 (not on date)
Get Groups where the ID is greater than 10 but less than 200
GET /groups?search_id=>10,<200 HTTP/1.1
Sort the returned records with the specified fields.
sort=field names
Get the Name of your Groups and sort by the Name then descending by ID
GET /groups?fields=name&sort=name,-id HTTP/1.1
Get the ID of the last modified Event
GET /events?fields=id&sort=-date_modified&limit=1 HTTP/1.1
Only return the specified number of records.
limit=search value
Get the Name of the first 5 records from your Groups
GET /groups?fields=name&limit=5 HTTP/1.1
POST
POST is used to add or update data to your account. Returned response is in json format.
POST /data set name
Create a new event by posting to...
POST /events/
Create a new group by posting to...
POST /groups/
Update an existing event with the ID of 1234
POST /events/1234
Add a new Event
cURL
$ch = curl_init();
$fields = array(
'title' => 'the title',
'owner => '220',
'date_start' => urlencode('2016-09-29 09:00:00'),
'date_end' => urlencode('2016-09-29 17:00:00'),
'notes' => 'the notes',
'custom1' => 'custom 1',
'custom2' => 'custom 2',
'custom3' => 'custom 3',
'custom4' => 'custom 4',
'custom7' => 'custom 7',
'custom8' => 'custom 8',
'custom9' => 'custom 9',
'starticon' => '1',
'color_text' => '#66FF66',
'color_back' => '#FFFFFF',
'priority' => '7',
'completed' => '75'
);
$post_data = '';
foreach($fields as $key => $value) {
$post_data .= $key.'='.$value.'&';;
}
rtrim($post_data, '&');
curl_setopt($ch, CURLOPT_URL, 'https://accountnum_loginname:password@www.scheduleit.com/api/events');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
Add a new Resource
cURL
$ch = curl_init();
$fields = array(
'name' => 'the resource name',
'owner' => '10,456,789',
'email' => 'fred@example.com',
'color_back' => '#A9f5A9',
'color_text' => '#66FF66',
'color_event_back' => '#FF0000',
'data1' => 'Manager',
'data2' => '',
'data3' => '',
'data4' => '',
'data5' => '',
'data6' => '',
'data7' => '',
'data8' => '',
'data9' => '',
'data10' => '',
'skills' => '123,456,678',
'geonav' => ''
);
$post_data = '';
foreach($fields as $key => $value) {
$post_data .= $key.'='.$value.'&';
}
rtrim($post_data, '&');
curl_setopt($ch, CURLOPT_URL, 'https://accountnum_loginname:password@www.scheduleit.com/api/resources');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
Add a new Group
cURL
$ch = curl_init();
$fields = array(
'name' => 'the group name',
'color_back' => '#66FF66',
'positionv' => '5',
'min_resources' => '0',
'max_resources' => '0',
'hide_from_main' => '0',
'hide_from_event' => '0'
);
$post_data = '';
foreach($fields as $key => $value) {
$post_data .= $key.'='.$value.'&';
}
rtrim($post_data, '&');
curl_setopt($ch, CURLOPT_URL, 'https://accountnum_loginname:password@www.scheduleit.com/api/groups');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_exec($ch);
DELETE
DELETE is used to delete data from your account. Returned response is in json format.
DELETE /data set name/record id
cURL
$ch = curl_init('accountnum_loginname:password@https://www.scheduleit.com/api/events/123456');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_POSTFIELDS);
curl_exec($ch);
api documentation notes spec webhook