Appointment Scheduling API

The API has predictable, resource-oriented URLs, and uses HTTP response codes to
indicate API errors. All API access is over HTTPS. All data is received as JSON, including errors.

Data: Please URL encode all parameter values.

The API requires an API token to work.
Please sign in or create an account to receive your accounts API tokens.

lock_open

List scheduled appointments

Returns a list of scheduled appointments. The appointments are sorted by upcoming first.

$ curl https://appointmentthing.com/api/v1/appointments/list/?token=token&type=type

// Params
$params = array(
    'token' => 'TOKEN', 
    'type' => 'upcoming'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/list/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/list/?token=TOKEN&type=TYPE', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/list/?token=TOKEN&type=upcoming').read)

# If OK, get values
if data['meta']['code'] = 200
    users = data['users']
    puts users
    appointments = data['appointments']
    puts appointments
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/list/?token=TOKEN&type=upcoming')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Users = data['users']
    print Users
    Appointments = data['appointments']
    print Appointments

                    

Returns

{"meta":{"code":"200"},"users":[{"id":"1","username":"email@domain.com","fullname":"John Doe","meetingtimezone":"America/Phoenix"},{"id":"2","username":"email@domain.com","fullname":"Jane Doe","meetingtimezone":"America/Los_Angeles"}],"appointments":[[{"appointment_id":"16212848967523S8CrJUHfF1at","appointment_unique":"16212848967523S8CrJUHfF1at","account_user_id":"1","account_user_name":"email@domain.com","account_name":"John Doe","date_start":"2021-05-31 08:00:00","date_start_unix":"1622473200","date_end":"2021-05-31 08:30:00","date_end_unix":"1622475000","date_timezone":"America/Phoenix","user_name":"Bob Doe","user_email":"bob.doe@domain.com","user_phone":"(555) 555-5555","user_phone_country":"1","user_guests":"","changed_by":null,"changed_date_unix":null,"canceled_by":"","canceled_date_unix":"1621535960","status":"1","color":"1","meeting_name":"Appointment Name","duration":"30"}]]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
type
Optional

List scheduled appointments in a specific order. Defaults to "upcoming".

Accepts: upcoming or past

Example: &type=upcoming
Return
Description
meta[]
Success

code - 200

appointments - List of appointments ordered by type of upcoming or past

users - array key that returns a list of appointments & users.

Error

code - 400

error_message - detailed error message.
users[]
List of users that is associated with your AppointmentThing account.
users['id']
User id of the user. Used to pass to the Create an appointment type API call.
users['username']
Email address of the user. Used to easily identify which user to associate with an appointment type.
users['fullname']
Full name of the user. Used to easily identify which user to associate with an appointment type.
users['meetingtimezone']
Time zone of the user. Used to easily identify the users associated time zone.
appointments[]
List of appointment that is associated with your AppointmentThing account.
appointments['appointment_id']
Appointment ID of the appointment. Used to pass to the Update an appointment type View an appointment Reschedule an appointment & Cancel an appointmentAPI call.
appointments['appointment_unique']
Unique random generated id of the appointment.
appointments['account_user_id']
Unique random generated ID of the appointment.
appointments['account_user_name']
Acount user email associated with the appointment.
appointments['account_name']
Account user full name associated with the appointment.
appointments['date_start']
Start date of the appointment.
appointments['date_start_unix']
Start date of the appointment given in unix time stamp form.
appointments['date_end']
End date of the appointment.
appointments['date_end_unix']
End date of the appointment given in unix time stamp form.
appointments['date_timezone']
Time zone associated with the appointment.
appointments['user_name']
Full name of the user who booked the appointment.
appointments['user_email']
Email address of the user who booked the appointment.
appointments['user_phone']
Phone number of the user who booked the appointment.
appointments['user_phone_country']
Phone number country code of the user who booked the appointment.
appointments['user_guests']
Guests the user has added to the appointment.
appointments['changed_by']
User who last changed the appointment based on the appointment being rescheduled.
appointments['changed_date_unix']
Date in unix format of when last change date/time was done for being rescheduled.
appointments['canceled_by']
User who canceled the appointment.
appointments['canceled_date_unix']
Date in unix format of when canceled date/time was completed.
appointments['status']
Status of the appointment. 1 (active) 2 (canceled)
appointments['color']
Color of the appointment type associated with the appointment. 1-20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
appointments['meeting_name']
Name of the appointment type associated with the appointment.
appointments['duration']
Duration of the appointment in minutes.

View an appointment

Returns details about an appointment.

$ curl https://appointmentthing.com/api/v1/appointments/appointment/?token=token&appointment_id=appointment_id

// Params
$params = array(
    'token' => 'TOKEN', 
    'appointment_id' => '1'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/appointment/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/appointment/?token=TOKEN&parameter1=XXX&parameter2=XXX', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/appointment/?token=TOKEN&parameter1=XXX&parameter2=XXX').read)

# If OK, get values
if data['meta']['code'] = 200
    appointment = data['appointment']
    puts appointment
    appointment_id = data['appointment']['0']['id']
    puts appointment_id
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/appointment/?token=TOKEN&parameter1=XXX&parameter2=XXX')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Appointment = data['appointment']
    print Appointment
    Appointment_id = data['appointment']['0']['id']
    print Appointment_id

                    

Returns

{"meta":{"code":"200"},"appointment":[{"id":"1","type":"Type","type_name":"Type Name","type_title":"30 minute meeting","type_custom_url":"custom_url","type_picture":"","type_intro":"intro","type_details":"","type_duration":"30","apptid":"app_id","date_start":"2021-05-03 09:00:00","date_start_unix":"1620057600","date_end":"2021-05-03 09:30:00","date_end_unix":"1620059400","date_timezone":"America/Phoenix","location":null,"location_details":null,"location_type":null,"location_json":null,"user_timezone":null,"user_timeformat":null,"user_name":"User Name","user_email":"user_email@appointmentthing.com","user_phone":"","user_phone_country":"1","user_guests":"","form_data":"","form_details":"","form_meeting_dump":"","changed_by":null,"chnaged_by_type":null,"changed_reason":null,"changed_date":null,"changed_date_unix":null,"canceled_by":null,"canceled_by_type":null,"canceled_reason":null,"canceled_date":null,"canceled_date_unix":null,"status":"1","active":"true","create_date":"2021-03-08 21:00:05","update_date":"2021-05-03 07:00:27"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
appointment_id
Required

ID of the appointment.

Example: &appointment_id=12212848967523S1CrJAHfE1et
Return
Description
meta[]
Success

code - 200

appointment - Appointment details for the parameter appointment_id

Error

code - 400

error_message - detailed error message.
appointment[]
Appointment details for the parameter appointment_id
appointment['id']
ID of the appointment.
appointment['type']
Appointment type associated with the appointment.
appointment['type_name']
Appointment name associated with the appointment.
appointment['type_title']
Appointment title associated with the appointment.
appointment['type_custom_url']
Custom URL of the appointment type. eg. https://appointmentthing.com/user/custom-url

eg. https://appointmentthing.com/user/custom-url
appointment['type_picture']
The name of the photo uploaded associated with the appointment type. eg. 1618347928049.png

Images are hosted with Amazon S3.

Example Full URL: https://d308kqgza84c3k.cloudfront.net/images/1618347928049.png
appointment['type_intro']
Appointment intro associated with the appointment.
appointment['type_details']
Appointment details associated with the appointment.
appointment['type_duration']
Duration of the appointment in minutes.
appointment['apptid']
Unique appointment id associated with the appointment.
appointment['date_start']
Start date & time of the appointment.
appointment['date_start_unix']
Start date & time of the appointment in unix timestamp format.
appointment['date_end']
End date & time of the appointment.
appointment['date_end_unix']
End date & time of the appointment in unix timestamp format.
appointment['date_timezone']
Timezone associated with the appointment.
appointment['location']
Location associated with the appointment.
appointment['location_details']
Location details associated with the appointment.
appointment['location_type']
Location type. custom-location in-person zoom google-meet or go-to-meeting
appointment['location_json']
Appointment details in json_encode() format.
appointment['user_timezone']
Timezone of the appointment invitee.
appointment['user_timeformat']
Timeformat of the appointment invitee.
appointment['user_name']
Full name of the appointment invitee.
appointment['user_email']
Email address of the appointment invitee.
appointment['user_phone']
Phone number of the appointment invitee.
appointment['user_phone_country']
Phone country of the appointment invitee.
appointment['user_guests']
Guest list of the appointment invitee.
appointment['form_data']
Form data in json_encode() format from the appointment invitee.
appointment['form_details']
Form details in json_encode() format from the appointment invitee.
appointment['form_meeting_dump']
Form data dump data in json_encode() format from the appointment invitee.
appointment['changed_by']
User who last changed the appointment.
appointment['changed_reason']
Changed reason of the appointment.
appointment['changed_date']
Change date of the appointment.
appointment['changed_date_unix']
Change date in unix timestamp format.
appointment['canceled_by']
User who canceled the appointment.
appointment['canceled_reason']
Cancel reason of the appointment.
appointment['canceled_date']
Cancel date of the appointment.
appointment['canceled_date_unix']
Cancel date in unix timestmap format.
appointment['status']
Status of the appointment. 1 (active) 2 (canceled)
appointment['active']
Whether or not the appointment is active. true or false
appointment['create_date']
Creation date of the appointment.
appointment['modify_date']
Modify date of the appointment.

Reschedule an appointment

Reschedules an appointment. Returns a rescheduled status.

$ curl https://appointmentthing.com/api/v1/appointments/reschedule/?token=token&appointment_id=appointment_id&start=start&end=end

// Params
$params = array(
    'token' => 'TOKEN', 
    'appointment_id' => '1', 
    'start' => 'start', 
    'end' => 'end'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/reschedule/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/reschedule/?token=TOKEN&appointment_id=1&start=start&end=end', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/reschedule/?token=TOKEN&appointment_id=1&start=start&end=end').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    status = data['status']
    puts status
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/reschedule/?token=TOKEN&parameter1=XXX&parameter2=XXX')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Status = data['status']
    print Status

                    

Returns

{
    "meta": {
        "code": "200"
    },
    "id": "1",
    "status": "rescheduled"
}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
appointment_id
Required

ID of the appointment to reschedule.

Example: &appointment_id=12212848967523S1CrJAHfE1et
start
Required

Start date of the appointment to reschedule.

Accepts: date format of yyyy-mm-dd hh:mm am/pm

Example: &start=06%2F02%2F2021+03%3A00+PM
end
Required

End date of the appointment to reschedule.

Accepts: date format of yyyy-mm-dd hh:mm am/pm

Example: &end=06%2F02%2F2021+03%3A30+PM
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
id
ID of the rescheduled appointment.
status
Status of the rescheduled appointment.

Cancel an appointment

Cancels an appointment. Returns a canceled status.

$ curl https://appointmentthing.com/api/v1/appointments/cancel/?token=token&appointment_id=appointment_id

// Params
$params = array(
    'token' => 'TOKEN', 
    'appointment_id' => '1'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/cancel/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/cancel/?token=TOKEN&appointment_id=1', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/cancel/?token=TOKEN&appointment_id=1').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    status = data['status']
    puts status
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/cancel/?token=TOKEN&appointment_id=1')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Status = data['status']
    print Status

                    

Returns

{"meta":{"code":"200"},"id":"1","status":"canceled"}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
appointment_id
Required

ID of the appointment.

Example: &appointment_id=12212848967523S1CrJAHfE1et
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
id
ID of the canceled appointment.
status
Status of the canceled appointment.

List appointment types

Returns a list of appointment types. The appointments types are sorted by newest first.

$ curl https://appointmentthing.com/api/v1/appointments/types/list/?token=token

// Params
$params = array(
    'token' => 'TOKEN'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/types/list/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/types/list/?token=TOKEN', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/types/list/?token=TOKEN').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    total = data['total']
    puts total
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/types/list/?token=TOKEN')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Total = data['total']
    print Total

                    

Returns

{"meta":{"code":"200"},"total":1,"types":[{"id":"1","userid":"1","fullname":"John Doe","username":"email@domain.com","unique":"uh8523","custom_url":null,"color":"1","meeting_name":"meeting_name","meeting_title":"meeting_title","meeting_picture":"1618347928046.png","meeting_intro":"meeting_intro","meeting_locations":[{"location_id":"1","meeting_type_id":"meeting_type_id","location_type":"in-person","location_details":"location_details","location_additional_details":"location_additional_details","create_date":"2021-04-05 20:48:37","modify_date":"2021-04-05 20:48:37"},{"location_id":"2","meeting_type_id":"meeting_type_id","location_type":"custom-location","location_details":"location_details","location_additional_details":"location_additional_details","create_date":"2021-04-13 19:37:49","modify_date":"2021-04-13 19:37:49"}],"form_fields":[{"id":"1","type":"text","text":"Name","extra_text1":null,"extra_text2":null,"mandatory_field":"true","system_field":"true","field_option1":null,"field_option2":null,"field_option3":null,"field_option4":null,"field_option5":null,"field_option6":null,"field_option7":null,"field_option8":null,"field_option9":null,"field_option10":null,"field_option11":null,"field_option12":null,"field_option13":null,"field_option14":null,"field_option15":null},{"id":"2","type":"email","text":"Email","extra_text1":null,"extra_text2":null,"mandatory_field":"true","system_field":"true","field_option1":null,"field_option2":null,"field_option3":null,"field_option4":null,"field_option5":null,"field_option6":null,"field_option7":null,"field_option8":null,"field_option9":null,"field_option10":null,"field_option11":null,"field_option12":null,"field_option13":null,"field_option14":null,"field_option15":null}],"meeting_details":"","availablity_general":"{\"mon\":\"0900-1900\",\"tue\":\"0900-1900\",\"wed\":\"0900-1900\",\"thu\":\"0900-1900\",\"fri\":\"0900-1900\",\"sat\":\"\",\"sun\":\"\"}","schedule_window":"1","schedule_from":"2021-01-22","schedule_to":"2021-02-22","buffer_before":"5","buffer_after":"10","booking_before":"0","booking_intervals":"10","duration":"60","visible":"true","create_date":"2021-03-31 23:38:29","modify_date":"2021-06-01 18:12:29"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
total
Total number of appointment types found.
types[]
List of appointment types.
types['id']
ID of the appointment type.
types['userid']
User ID of the user associated with the appointment type.
types['username']
Email address of the user associated with the appointment type.
types['fullname']
Full name of the user associated with the appointment type.
types['unique']
Unique randomly generated key associated with the appointment type.
types['custom_url']
Custom URL of the user. eg. https://appointmentthing.com/custom-url

If null, use unique key

eg. https://appointmentthing.com/custom-url
types['color']
Color of the appointment type associated with the meeting. 1-20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
types['meeting_name']
Appointment name associated with the appointment type.
types['meeting_title']
Appointment title associated with the appointment type.
types['meeting_picture']
The name of the photo uploaded associated with the appointment type. eg. 1618347928049.png

Images are hosted with Amazon S3.

Example Full URL: https://d308kqgza84c3k.cloudfront.net/images/1618347928049.png
types['meeting_intro']
Intro associated with the appointment type.
types['meeting_locations'][]
Locations associated with the appointment type.
types['form_fields'][]
Form fields associated with the appointment type.
types['meeting_details']
Details associated with the appointment type.
types['availablity_general']
General availability that's checked for the appointment type.
types['schedule_window']
When the meeting should be scheduled. 1 (Indefinitely) 2 (Over a period of rolling days next XX 'booking_intervals' days ) or 3 (Over a date range XX 'schedule_from' date to XX 'schedule_to' date)
types['schedule_from']
Schedule from date if schedule window '3' is set.
types['schedule_to']
Schedule to date if schedule window '3' is set.
types['buffer_before']
Buffer time before the meeting begin in minutes.
types['buffer_after']
Buffer time after the meeting ends in minutes.
types['booking_intervals']
Booking intervals in minutes of available time slots for your invitees.
types['duration']
How long each appointment types meetings can be in minutes.
types['visible']
Whether or not the appointment type is visible on the main appointment booking page. false or true
types['create_date']
Creation date of the appointment type.
types['modify_date']
Modify date of the appointment type.

Create an appointment type

Creates an appointment type. Returns the appointment type created.

$ curl https://appointmentthing.com/api/v1/appointments/types/create/?token=token&user_id=user_id&meetingname=meetingname&meetingtitle=meetingtitle&customurl=customurl&meetingintro=meetingintro&meetinglocations=meetinglocations&duration=duration&timezone=timezone&timeformat=timeformat&availability_general=availability_general&schedule_window=schedule_window&schedule_rolldays=schedule_rolldays&schedule_datefrom=schedule_datefrom&schedule_dateto=schedule_dateto&buffer_before=buffer_before&buffer_after=buffer_after&book_before=book_before&booking_intervals=booking_intervals&setting_calendar_firstday=setting_calendar_firstday&visible=visible&notiwsenabled=notiwsenabled&noti1enabled=noti1enabled&noti1min=noti1min&noti2enabled=noti2enabled&noti2min=noti2min&noti3enabled=noti3enabled&noti3min=noti3min&paymenttype=paymenttype&paymentamount=paymentamount&paymentcurrency=paymentcurrency&paymentterms=paymentterms

// Params
$params = array(
    'token' => 'TOKEN', 
    'user_id' => '1', 
    'meetingname' => 'meetingname'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/types/create/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/types/create/?token=TOKEN&user_id=1&meetingname=meetingname', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/types/create/?token=TOKEN&user_id=1&meetingname=meetingname').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    id = data['appointment_type_id']
    puts id
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/types/create/?token=TOKEN&user_id=1&meetingname=meetingname')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Id = data['appointment_type_id']
    print Id

                    

Returns

{"meta":{"code":"200"},"appointment_type_id":"1","appointment_type":{"id":"1","uniquekey":"uh8522","customurl":"custom-url","color":"1","meetingname":"meetingname","meetingtitle":"meetingtitle","meetingintro":"","meetinglocations":"","timeformat":"12","meetingdetails":"","availability_general":"{\"mon\":\"0900-1900\",\"tue\":\"0900-1900\",\"wed\":\"0900-1900\",\"thu\":\"0900-1900\",\"fri\":\"0900-1900\",\"sat\":\"\",\"sun\":\"\"}","duration":"30","create_date":"2021-06-01 19:27:28","modify_date":"2021-06-01 19:27:29","timezone":"America/Phoenix","schedule_window":"1","schedule_days":"60","buffer_before":"0","visible":"true","bufferafter":"0","bookingbefore":"0","scheduleto":null,"schedulefrom":null,"bookingintervals":"30"}}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
user_id
Required

User id to associate the appointment type with.

Accepts: valid userid from List users API call:

Example: &user_id=1
meetingtitle
Required

Appointment title for the appointment type.

Accepts: text

Example: &meetingtitle=Appointment+Title
meetingname
Optional

The meeting name of the appointment type to set. For internal use.

Accepts: text, no special characters

Example: &meetingname=New+Name
customurl
Optional

The custom url of the appointment type to set.

Accepts: text, no special characters

Example: &customurl=my-new-booking-url
duration
Optional

The meeting duration in minutes of the appointment type to set.

Accepts: integer in minutes

Example: &duration=30
timezone
Optional

The meeting timezone of the appointment type to set.

Accepts: valid timezone from List time zones API call

Example: &timeformat=12h
timeformat
Optional

The meeting timeformat of the appointment type to set.

Accepts: 12h or 24h

Example: &timeformat=12h
availability_general
Optional

The meeting general of the appointment type to set.

Accepts: json array of general availability

{"mon":"start-24hour:end-24hour","tue":"start-24hour:end-24hour","wed":"start-24hour:end-24hour","thu":"start-24hour:end-24hour","fri":"start-24hour:end-24hour","sat":"start-24hour:end-24hour","sun":"start-24hour:end-24hour"}

Defaults to mon-friday 9am-5pm

Example: &availability_general={"mon":"0900-1900","tue":"0900-1900","wed":"0900-1900","thu":"0900-1900","fri":"0900-1900","sat":"","sun":""}
schedule_window
Optional

The meeting schedule_window of the appointment type to set.

Accepts: 1 2 or 3

Example: &schedule_window=1
schedule_rolldays
Optional

The meeting schedule_rolldays of the appointment type to set.

Accepts: integer in days

Example: &schedule_rolldays=5
schedule_datefrom
Optional

The meeting schedule_datefrom of the appointment type to set.

Accepts: date format of yyyy-mm-dd

Example: &schedule_dateto=2021-06-01
schedule_dateto
Optional

The meeting schedule_dateto of the appointment type to set.

Accepts: date format of yyyy-mm-dd

Example: &schedule_dateto=2021-06-02
buffer_before
Optional

The meeting buffer_before of the appointment type to set.

Accepts: integer given in minutes

Example: &buffer_before=10
book_before
Optional

The meeting book_before of the appointment type to set.

Accepts: integer given in minutes

Example: &book_before=10
buffer_after
Optional

The meeting buffer_after of the appointment type to set.

Accepts: integer given in minutes

Example: &book_after=10
booking_intervals
Optional

The meeting booking_intervals of the appointment type to set.

Accepts: 10 15 30 or 60

Example: &booking_intervals=15
setting_calendar_firstday
Optional

The meeting setting_calendar_firstday of the appointment type to set.

Accepts: 0 (sunday) or 1 (monday)

Example: &setting_calendar_firstday=0
visible
Optional

The meeting visible of the appointment type to set.

Accepts: true or false

Example: &visible=true
notiwsenabled
Optional

The meeting notiwsenabled of the appointment type to set. Whether or not to send an appointment confirmation via email when an appointment has been scheduled.

Accepts: true or false

Example: &notiwsenabled=true
noti1enabled
Optional

The meeting noti1enabled of the appointment type to set. Whether or not to send a reminder before the appointment starts via Text/SMS.

Accepts: true or false

Example: &noti1enabled=true
noti1min
Optional

The meeting noti1min of the appointment type to set. Time in minutes if sending a reminder before the appointment starts via Text/SMS is enabled.

Accepts: minutes of 5 10 15 30 45 60 90 or 120

Example: &noti1min=5
noti2enabled
Optional

The meeting noti2enabled of the appointment type to set. Whether or not to send reminder a before the appointment starts via email.

Accepts: true or false

Example: &noti2enabled=true
noti2min
Optional

The meeting noti2min of the appointment type to set. Time in minutes if sending a reminder before the appointment starts via email is enabled.

Accepts: minutes of 5 10 15 30 45 60 90 120 180 240 300 360 420 480 600 or 720

Example: &noti2min=5
noti3enabled
Optional

The meeting noti3enabled of the appointment type to set. Whether or not to send a 2nd reminder before the appointment starts via email.

Accepts: true or false

Example: &noti3enabled=true
noti3min
Optional

The meeting noti3min of the appointment type to set. Time in seconds for days if sending a 2nd reminder before the appointment starts via email is enabled.

Accepts: 1440 (1 day) 2880 (2 days) 4320 (3 days) 5760 (4 days) or 10080 (1 week)

Example: &noti3min=1440
paymenttype
Optional

The meeting payment type of the appointment type to set.

Accepts: 0 (disabled) 1 (stripe) 2 (paypal)

Example: &paymenttype=1
paymentamount
Optional

The meeting payment amount of the appointment type to set.

Accepts: integer in money

Example: &paymentamount=10
paymentcurrency
Optional

The meeting payment currency of the appointment type to set.

Accepts: payment currency of AUD BRL CAD CZK DKK EUR HKD HUF INR ILS MYR MXN TWD NZD NOK PHP OLN GBP RUB SGD SEK CHF THB or USD

Example: &paymentcurrency=USD
paymentterms
Optional

The meeting paymentterms availability of the appointment type to set.

Accepts: text

Example: &paymentterms=These+are+my+new+terms.
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
total
Total number of appointment types found.
types[]
List of appointment types.
types['id']
ID of the appointment type.
types['userid']
User ID of the user associated with the appointment type.
types['username']
Email address of the user associated with the appointment type.
types['fullname']
Full name of the user associated with the appointment type.
types['unique']
Unique randomly generated key associated with the appointment type.
types['custom_url']
Custom URL of the user. eg. https://appointmentthing.com/custom-url

If null, use unique key

eg. https://appointmentthing.com/custom-url
types['color']
Color of the appointment type associated with the meeting. 1-20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
types['meeting_name']
Appointment name associated with the appointment type.
types['meeting_title']
Appointment title associated with the appointment type.
types['meeting_picture']
The name of the photo uploaded associated with the appointment type. eg. 1618347928049.png

Images are hosted with Amazon S3.

Example Full URL: https://d308kqgza84c3k.cloudfront.net/images/1618347928049.png
types['meeting_intro']
Intro associated with the appointment type.
types['meeting_locations'][]
Locations associated with the appointment type.
types['form_fields'][]
Form fields associated with the appointment type.
types['meeting_details']
Details associated with the appointment type.
types['availablity_general']
General availability that's checked for the appointment type.
types['schedule_window']
When the meeting be scheduled. 1 (Indefinitely) 2 (Over a period of rolling days next XX 'booking_intervals' days ) or 3 (Over a date range XX 'schedule_from' date to XX 'schedule_to' date)
types['schedule_from']
Schedule from date if schedule window '2' is set.
types['schedule_to']
Schedule to date if schedule window '2' is set.
types['buffer_before']
Buffer time before the meeting begin in minutes.
types['buffer_after']
Buffer time after the meeting ends in minutes.
types['booking_intervals']
Booking intervals in minutes of available time slots for your invitees.
types['duration']
How long each appointment types meetings can be in minutes.
types['visible']
Whether or not the appointment type is visible on the main appointment booking page. false or true
types['create_date']
Creation date of the appointment type.
types['modify_date']
Modify date of the appointment type.

Save an appointment type

Save an appointment type. Returns the appointment type saved.

$ curl https://appointmentthing.com/api/v1/appointments/types/save/?token=token&type_id=type_id&meetingname=meetingname&meetingtitle=meetingtitle&customurl=customurl&meetingintro=meetingintro&meetinglocations=meetinglocations&duration=duration&timezone=timezone&timeformat=timeformat&availability_general=availability_general&schedule_window=schedule_window&schedule_rolldays=schedule_rolldays&schedule_datefrom=schedule_datefrom&schedule_dateto=schedule_dateto&buffer_before=buffer_before&buffer_after=buffer_after&book_before=book_before&booking_intervals=booking_intervals&setting_calendar_firstday=setting_calendar_firstday&visible=visible&notiwsenabled=notiwsenabled&noti1enabled=noti1enabled&noti1min=noti1min&noti2enabled=noti2enabled&noti2min=noti2min&noti3enabled=noti3enabled&noti3min=noti3min&paymenttype=paymenttype&paymentamount=paymentamount&paymentcurrency=paymentcurrency&paymentterms=paymentterms

// Params
$params = array(
    'token' => 'TOKEN', 
    'type_id' => '1', 
    ...
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/types/save/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/types/save/?token=TOKEN&type_id=1&...', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/types/save/?token=TOKEN&type_id=1&...').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    status = data['status']
    puts status
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/types/save/?token=TOKEN&type_id=1&...')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Status = data['status']
    print Status

                    

Returns

{"meta":{"code":"200"},"status":"updated","appointment_type":{"id":"1","uniquekey":"uh8523","customurl":null,"color":"1","meetingname":"meetingname","meetingtitle":"meetingtitle","meetingintro":"meetingintro","meetinglocations":"meetinglocations","timeformat":"24","meetingdetails":"","availability_general":"{\"mon\":\"0900-1900\",\"tue\":\"0900-1900\",\"wed\":\"0900-1900\",\"thu\":\"0900-1900\",\"fri\":\"0900-1900\",\"sat\":\"\",\"sun\":\"\"}","duration":"60","timezone":"America/Phoenix","schedule_window":"1","schedule_days":"60","buffer_before":"5","visible":"true","bufferafter":"10","bookingbefore":"0","scheduleto":"2021-02-22","schedulefrom":"2021-01-22","bookingintervals":"10","create_date":"2021-03-31 23:38:29","modify_date":"2021-06-01 18:12:29"}}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
type_id
Required

The ID of the type to update.

Accepts: valid id key from List appointment types API call

Example: &type_id=1
meetingtitle
Required

The meeting title of the appointment type to update.

Accepts: text, no special characters

Example: &meetingtitle=Title
meetingname
Optional

The meeting name of the appointment type to update. For internal use.

Accepts: text, no special characters

Example: &meetingname=New+Name
customurl
Optional

The custom url of the appointment type to update.

Accepts: text, no special characters

Example: &customurl=my-new-booking-url
duration
Optional

The meeting duration in minutes of the appointment type to update.

Accepts: integer in minutes

Example: &duration=30
timezone
Optional

The meeting timezone of the appointment type to update.

Accepts: valid timezone from List time zones API call

Example: &timeformat=12h
timeformat
Optional

The meeting timeformat of the appointment type to update.

Accepts: 12h or 24h

Example: &timeformat=12h
availability_general
Optional

The meeting general availability of the appointment type to update.

Accepts: json array of general availability

{"mon":"start-24hour:end-24hour","tue":"start-24hour:end-24hour","wed":"start-24hour:end-24hour","thu":"start-24hour:end-24hour","fri":"start-24hour:end-24hour","sat":"start-24hour:end-24hour","sun":"start-24hour:end-24hour"}

Example: &availability_general={"mon":"0900-1900","tue":"0900-1900","wed":"0900-1900","thu":"0900-1900","fri":"0900-1900","sat":"","sun":""}
schedule_window
Optional

The meeting schedule_window of the appointment type to update.

Accepts: 1 2 or 3

Example: &schedule_window=1
schedule_rolldays
Optional

The meeting schedule_rolldays of the appointment type to update.

Accepts: integer in days

Example: &schedule_rolldays=5
schedule_datefrom
Optional

The meeting schedule_datefrom of the appointment type to update.

Accepts: date format of yyyy-mm-dd

Example: &schedule_dateto=2021-06-01
schedule_dateto
Optional

The meeting schedule_dateto of the appointment type to update.

Accepts: date format of yyyy-mm-dd

Example: &schedule_dateto=2021-06-02
buffer_before
Optional

The meeting buffer_before of the appointment type to update.

Accepts: integer given in minutes

Example: &buffer_before=10
buffer_after
Optional

The meeting buffer_after of the appointment type to update.

Accepts: integer given in minutes

Example: &book_after=10
book_before
Optional

The meeting book_before of the appointment type to update.

Accepts: integer given in minutes

Example: &book_before=10
booking_intervals
Optional

The meeting booking_intervals of the appointment type to update.

Accepts: 10 15 30 or 60

Example: &booking_intervals=15
setting_calendar_firstday
Optional

The meeting setting_calendar_firstday of the appointment type to update.

Accepts: 0 (sunday) or 1 (monday)

Example: &setting_calendar_firstday=0
visible
Optional

The meeting visible of the appointment type to update.

Accepts: true or false

Example: &visible=true
notiwsenabled
Optional

The meeting notiwsenabled of the appointment type to update. Whether or not to send an appointment confirmation via email when an appointment has been scheduled.

Accepts: true or false

Example: &notiwsenabled=true
noti1enabled
Optional

The meeting noti1enabled of the appointment type to update. Whether or not to send a reminder before the appointment starts via Text/SMS.

Accepts: true or false

Example: &noti1enabled=true
noti1min
Optional

The meeting noti1min of the appointment type to update. Time in minutes if sending a reminder before the appointment starts via Text/SMS is enabled.

Accepts: minutes of 5 10 15 30 45 60 90 or 120

Example: &noti1min=5
noti2enabled
Optional

The meeting noti2enabled of the appointment type to update. Whether or not to send reminder a before the appointment starts via email.

Accepts: true or false

Example: &noti2enabled=true
noti2min
Optional

The meeting noti2min of the appointment type to update. Time in minutes if sending a reminder before the appointment starts via email is enabled.

Accepts: minutes of 5 10 15 30 45 60 90 120 180 240 300 360 420 480 600 or 720

Example: &noti2min=5
noti3enabled
Optional

The meeting noti3enabled of the appointment type to update. Whether or not to send a 2nd reminder before the appointment starts via email.

Accepts: true or false

Example: &noti3enabled=true
noti3min
Optional

The meeting noti3min of the appointment type to update. Time in seconds for days if sending a 2nd reminder before the appointment starts via email is enabled.

Accepts: 1440 (1 day) 2880 (2 days) 4320 (3 days) 5760 (4 days) or 10080 (1 week)

Example: &noti3min=1440
paymenttype
Optional

The meeting payment type of the appointment type to update.

Accepts: 0 (disabled) 1 (stripe) 2 (paypal)

Example: &paymenttype=1
paymentamount
Optional

The meeting payment amount of the appointment type to update.

Accepts: integer in money

Example: &paymentamount=10
paymentcurrency
Optional

The meeting payment currency of the appointment type to update.

Accepts: payment currency of AUD BRL CAD CZK DKK EUR HKD HUF INR ILS MYR MXN TWD NZD NOK PHP OLN GBP RUB SGD SEK CHF THB or USD

Example: &paymentcurrency=USD
paymentterms
Optional

The meeting paymentterms of the appointment type to update.

Accepts: text

Example: &paymentterms=These+are+my+new+terms.
Return
Description
meta[]
Success

code - 200

appointment_type - Appointment type details for the parameter appointment_id

Error

code - 400

error_message - detailed error message.
status
Status of the updated appointment type.
appointment_type[]
Appointment type details for the parameter appointment_id
appointment_type['id']
The ID of the appointment type updated.
appointment_type['uniquekey']
The unique key of the appointment type updated.
appointment_type['customurl']
Custom URL of the appointment type updated. eg. https://appointmentthing.com/user/custom-url

If null, use uniquekey

eg. https://appointmentthing.com/user/custom-url
appointment_type['color']
Color of the appointment type associated with the meeting. 1-20

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
appointment_type['meetingname']
The meeting name of the appointment type updated.
appointment_type['meetingtitle']
The meeting title of the appointment type updated.
appointment_type['meetingintro']
The meeting intro of the appointment type updated.
appointment_type['meetinglocations']
The meeting location ids of the appointment type updated. Comma separated IDs from List locations API call.
appointment_type['timeformat']
The time format of the appointment type updated.
appointment_type['meetingdetails']
The meeting details of the appointment type updated.
appointment_type['availability_general']
The meeting general availability of the appointment type updated.
appointment_type['duration']
Appointment duration for the appointment type in minutes.
appointment_type['timezone']
Appointment timezone for the appointment type.
appointment_type['schedule_window']
When the meeting should be scheduled. 1 (Indefinitely) 2 (Over a period of rolling days next XX 'schedule_days' days ) or 3 (Over a date range XX 'schedule_from' date to XX 'schedule_to' date)
appointment_type['schedule_days']
Schedule days date if schedule window '2' is set.
appointment_type['buffer_before']
Buffer time before the appointment type begins in minutes.
appointment_type['visible']
Whether or not the appointment type is visible on the main appointment booking page. false or true
appointment_type['bookingbefore']
Buffer time before the appointment type begins in minutes.
appointment_type['bufferafter']
Buffer time after the appointment type ends in minutes.
appointment_type['schedulefrom']
Schedule from date if schedule window '3' is set.
appointment_type['scheduleto']
Schedule to date if schedule window '3' is set.
appointment_type['bookingintervals']
Booking intervals in minutes of available time slots for your invitees.
appointment_type['create_date']
Create date of the appointment type.
appointment_type['modify_date']
Modify date of the appointment type.

Delete an appointment type

Deletes an appointment type. Returns a deletion status.

$ curl https://appointmentthing.com/api/v1/appointments/types/delete/??token=token&type_id=type_id

// Params
$params = array(
    'token' => 'TOKEN', 
    'type_id' => '1'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/types/delete/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/types/delete/?token=TOKEN&type_id=1', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/types/delete/?token=TOKEN&type_id=1').read)

# If OK, get values
if data['meta']['code'] = 200
    data = data
    puts data
    type = data['type']
    puts type
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/types/delete/?token=TOKEN&type_id=1')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Data = data
    print Data
    Type = data['type']
    print Type

                    

Returns

{
    "meta": {
        "code": "200"
    },
    "type": {
        "id": "1",
        "status": "deleted"
    }
}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
type_id
Required

The ID of the type to delete.

Accepts: valid id key from List appointment types API call

Example: &type_id=1
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
id
ID of the deleted appointment type.
status
Status of the deleted appointment type.

List locations

Lists of all appointment type locations.

$ curl https://appointmentthing.com/api/v1/appointments/locations/list/?token=token

// Params
$params = array(
    'token' => 'TOKEN'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/locations/list/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/locations/list/?token=TOKEN', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/locations/list/?token=TOKEN').read)

# If OK, get values
if data['meta']['code'] = 200
    total = data['total']
    puts total
    firstlocationid = data['types']['0']['location_id']
    puts firstlocationid
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/locations/list/?token=TOKEN')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Total = data['total']
    print Total
    FirstID = data['types']['0']['location_id']
    print FirstLocationID

                    

Returns

{"meta":{"code":"200"},"total":2,"types":[{"location_id":"1","userid":"1","fullname":"John Doe","username":"email@domain.com","location_type":"custom-location","meeting_type":"Appointment Type","location_details":"Location Details","location_additional_details":"","location_visibility":"1","create_date":"2021-03-31 23:38:27","modify_date":"2021-03-31 23:38:27"},{"location_id":"2","userid":"2","fullname":"John Doe","username":"email@domain.com","location_type":"custom-location","meeting_type":"Appointment Type","location_details":"Location Details","location_additional_details":"","location_visibility":"2","create_date":"2021-04-05 20:48:37","modify_date":"2021-04-05 20:48:37"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
total
Total number of location types found.
types[]
List of location types.
types['location_id']
ID of the location type.
types['userid']
User ID of the user associated with the location type.
types['fullname']
Full name of the user associated with the location type.
types['username']
Email address of the user associated with the location type.
types['location_type']
Location type. custom-location in-person zoom google-meet or go-to-meeting
types['meeting_type']
Appointment type.
types['location_details']
Details of the location type.
types['location_additional_details']
Additional details of the location type.
types['location_visibility']
Whether or not the location type is visible. 0 false or 1 true
types['create_date']
Creation date of the location type.
types['modify_date']
Modify date of the location type.

Get availability

Lists of all availability for an account.

$ curl https://appointmentthing.com/api/v1/appointments/get/availability/?token=token&meetingtype=meetingtype&timezone=timezone&timeformat=timeformat&calendar_date=calendar_date

// Params
$params = array(
    'token' => 'TOKEN', 
    'meetingtype' => 'Appointment Type', 
    'timezone' => 'America/Phoenix',
    ...
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/get/availability/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/get/availability/?token=TOKEN&meetingtype=meetingtype&timezone=timezone&timeformat=timeformat&calendar_date=calendar_date', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/get/availability/?token=TOKEN&meetingtype=meetingtype&timezone=timezone&timeformat=timeformat&calendar_date=calendar_date').read)

# If OK, get values
if data['meta']['code'] = 200
    city = data['data']['city']
    puts city
    time = data['data']['datetime']['date_time_txt']
    puts time
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/get/availability/?token=TOKEN&meetingtype=meetingtype&timezone=timezone&timeformat=timeformat&calendar_date=calendar_date')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    City = data['data']['city']
    print City
    Time = data['data']['datetime']['date_time_txt']
    print Time

                    

Returns

{"meta":{"code":"200"},"availabilty":[{"month":"05","day":"26","year":"2021","label":"Wednesday, May 26th","available":3,"unavailable":"0","total":3,"date":"2021-05-26"}],"unavailable":[{"from_unix":"1622138400","to_unix":"1622140200"}],"available":[{"from_unix":"1622075400","to_unix":"1622077200"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
meetingtype
Required

The appointment type to check availability for.

Accepts: valid appointment type. Use the 'unique' key from the return data in List appointment types API call

Example: &meetingtype=uh8523
timezone
The timezone to set the availability to. Dates will be returned for this timezone.

Defaults to America/Los_Angeles.

Accepts: valid timezone from List time zones API call

Example: &timezone=America/New_York
timeformat
The timeformat to set the return dates to.

Defaults to 12h.

Accepts: 12h or 24h

Example: &timeformat=12h
calendar_date
The date to check availability to start from.

Defaults to current date.

Accepts: date format ofyyyy-mm-dd

Example: &calendar_date=2021-06-02
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
availability[]
List of data for the given availability.
availability['month']
Availability month.
availability['day']
Availability day.
availability['label']
Availability label.
availability['available']
Total available time slots.
availability['unavailable']
Total unavailable time slots.
availability['total']
Total overall time slots.
availability['date']
Date for the availability statistics.
unavailable[]
List of unavailable date & times.
unavailable['from_unix']
From unix timesamp for the unavailable time slot. Use datetime to convert to formatted timestamp.
unavailable['to_unix']
To unix timesamp for the unavailable time slot. Use datetime to convert to formatted timestamp.
available[]
List of available date & times.
available['from_unix']
From unix timesamp for the unavailable time slot. Use datetime to convert to formatted timestamp.
available['to_unix']
To unix timesamp for the unavailable time slot. Use datetime to convert to formatted timestamp.

List users

List of all available account users.

$ curl https://appointmentthing.com/api/v1/appointments/users/list/?token=token

// Params
$params = array(
    'token' => 'TOKEN'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/users/list/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/users/list/?token=TOKEN', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/users/list/?token=TOKEN').read)

# If OK, get values
if data['meta']['code'] = 200
    total = data['0']['total']
    puts total
    username = data['0']['username']
    puts username
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/users/list/?token=TOKEN')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Total = data['data']['total']
    print Total
    Username = data['data']['0']['username']
    print Username

                    

Returns

{"meta":{"code":"200"},"total":1,"users":[{"id":"1","username":"Username","fullname":"John Doe","timezone":"America/Phoenix","customurl":"custom-url","headline":"Headline","description":"Description","time_format":"12","phone_country":"1","phone":"555-555-5555","phony_notify_minutes":"15","phone_active":"true","week_day_begins_on":"Monday"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
total
Total number of users found.
users[]
List of users.
users['id']
ID of the user.
users['username']
Email address of the user.
users['fullname']
Full name of the user.
users['customurl']
Custom URL of the user. eg. https://appointmentthing.com/custom-url
users['headline']
Headline shown on the appointment booking page for the user.
users['description']
Description shown on the appointment booking page for the user.
users['time_format']
Time format set for the users appointment booking page. eg. 12 or 24
users['phone_country']
Phone country set for the user.
users['phone']
Phone number set for the user.
users['phony_notify_minutes']
Number in minutes of when to send SMS notifications.
users['phone_active']
Whether or not a users phone number is active. eg. true or false
users['week_day_begins_on']
What day the users week day begins on. eg. Sunday or Monday

List time zones

Lists of all available time zones.

$ curl https://appointmentthing.com/api/v1/appointments/timezones/list/?token=token

// Params
$params = array(
    'token' => 'TOKEN'
);

// Get JSON object
$jsondata = file_get_contents("https://appointmentthing.com/api/v1/appointments/timezones/list/?" . http_build_query($params));

// Decode
$data = json_decode($jsondata, true);
                    


// Require
const request = require('request');

// Request
request('https://appointmentthing.com/api/v1/appointments/timezones/list/?token=TOKEN', function(err, res, dat){

    // Parse
    var data = JSON.parse(dat);

    // Request OK?
    if(data.meta.code == '200'){

        // Log
        console.log(data);

    }

});

                    


# Require
require 'json'
require 'open-uri'

# Get JSON and parse
data = JSON.parse(open('https://appointmentthing.com/api/v1/appointments/timezones/list/?token=TOKEN').read)

# If OK, get values
if data['meta']['code'] = 200
    offset = data['0']['offset']
    puts offset
    time = data['0']['local_time']
    puts time
end

                    


# Import
import requests

# Get
response = requests.get('https://appointmentthing.com/api/v1/appointments/timezones/list/?token=TOKEN')

# Parse JSON
data = response.json()

# If ok, get values
if data['meta']['code'] = 200:
    Offset = data['0']['offset']
    print Offset
    Time = data['0']['local_time']
    print Time

                    

Returns

{"meta":{"code":"200"},"data":[{"id":0,"label":"Pacific\/Midway","local_time":"2021-05-26 13:20:49","is_dst":"0","gmt_offset":"-39600","gmt_diff":"-11:00","tzid_abbr":"SST","offset":"-39600"},{"id":1,"label":"Pacific\/Pago_Pago","local_time":"2021-05-26 13:20:49","is_dst":"0","gmt_offset":"-39600","gmt_diff":"-11:00","tzid_abbr":"SST","offset":"-39600"},{"id":2,"label":"Pacific\/Honolulu","local_time":"2021-05-26 14:20:49","is_dst":"0","gmt_offset":"-36000","gmt_diff":"-10:00","tzid_abbr":"HST","offset":"-36000"},{"id":3,"label":"Pacific\/Honolulu","local_time":"2021-05-26 14:20:49","is_dst":"0","gmt_offset":"-36000","gmt_diff":"-10:00","tzid_abbr":"HST","offset":"-36000"},{"id":4,"label":"Pacific\/Honolulu","local_time":"2021-05-26 14:20:49","is_dst":"0","gmt_offset":"-36000","gmt_diff":"-10:00","tzid_abbr":"HST","offset":"-36000"},{"id":5,"label":"Pacific\/Honolulu","local_time":"2021-05-26 14:20:49","is_dst":"0","gmt_offset":"-36000","gmt_diff":"-10:00","tzid_abbr":"HST","offset":"-36000"},{"id":6,"label":"Pacific\/Honolulu","local_time":"2021-05-26 14:20:49","is_dst":"0","gmt_offset":"-36000","gmt_diff":"-10:00","tzid_abbr":"HST","offset":"-36000"},{"id":7,"label":"America\/Adak","local_time":"2021-05-26 15:20:49","is_dst":"1","gmt_offset":"-32400","gmt_diff":"-09:00","tzid_abbr":"HDT","offset":"-32400"},{"id":8,"label":"America\/Adak","local_time":"2021-05-26 15:20:49","is_dst":"1","gmt_offset":"-32400","gmt_diff":"-09:00","tzid_abbr":"HDT","offset":"-32400"}]}
Parameter
Description
token
Required

Account token. The account token is available in the Account section and is incorporated in all code examples on this page.

Example: &token=API-TOKEN
Return
Description
meta[]
Success

code - 200

Error

code - 400

error_message - detailed error message.
data[]
List of time zones.
data['id']
ID of the timezone.
data['label']
Label of the timezone. eg. America/Phoenix
data['local_time']
Local time of the timezone. eg. 2021-05-26 13:20:49
data['is_dst']
Whether or not DST is in effect. eg. 0 (false) or 1 (true)
data['gmt_offset']
GMT offset of the timezone. eg. -3600
data['gmt_diff']
GMT difference of the timezone. eg. -11:00
data['tzid_abbr']
Timezone abbreviation of the timezone. eg. MST
data['offset']
Offset of the timezone. eg. -3600