REST APIs

The REST APIs provide programmatic access to read and write EasyCalendar data. Create a new meeting, delete them, add notes, and more.

Overview

Below are some points that will help you get going with the REST APIs as quickly as possible.

  • Authenticating Requests
  • Rate Limiting
  • Endpoints

Authenticating Requests

To make a REST API call, you must include request headers including the Authorization header with your API Key and API Secret.

To get an API Key head over to developers section. Then, to authenticate your requests, you pass the api_key:api_secret credentials in the Authorization header. The authorization server then allows you to make REST API requests.

Request Header Description
Authorization When you request an endpoint, send the value as the HTTP basic authentication credentials by using your api_key and api_secret.
For example: Authorization: api_key:api_secret.If you use cURL, specify -u “api_key:api_secret”.Required.
Accept Set to application/json. Required.

Rate Limiting

HTTP Headers and Response Codes

Use the HTTP headers in order to understand where the application is at for a given rate limit, on the method that was just utilized.

Note that the HTTP headers are contextual. When using api_key and api_secret, they indicate the rate limit for the application context.

  • X-Rate-Limit-Limit:the rate limit ceiling for that given endpoint
  • X-Rate-Limit-Remaining:the number of requests left for the 1 hour window
  • X-Rate-Limit-Reset:the remaining window before the rate limit resets, in UTC epoch seconds

When an application exceeds the rate limit for a given API endpoint, the API will return a HTTP 429 “Too Many Requests” response code, along with a detailed error message in response body.

To predict the rate limits available in a better format, consider periodic usage of GET application / rate_limit_status.

Endpoints

We have endpoints for your meetings. We can also customize this data for your business or your own custom needs.

Meetings

This endpoint lets you create, delete or update meetings that you have on EasyCalendar. A sample meeting object on EasyCalendar is on the right

Sample Object

                                  

                                    
curl -X POST \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--data 
'{

"firstname":"James",
"lastname":"harden",
"email":"james.harden@gmail.com",
"title":"Meeting with James and Lakshya",
"starttime":"2020-11-18T09:15:00Z",
"endtime":"2020-11-18T10:16:10Z",
"attendees":
{
"0":"lakshya@easycalendar.com",
"1":"kartikay@hotmail.com",
"3":"arunav@gmail.com"
},
"description":"Discuss invoice status of customers",
"google_calendar_log":true,
"google_calendar":
{
"name":"help@easycalendar.com"
}' 


                                    
                            

Create Meetings

You can use this endpoint, to create meetings on Easycalendar using your api_key and api_secret.

POST : https://easycalendar.com/api/v1/meetings/new

Requestion body

Fields Type Details
firstname string Invitee's first name
lastname string Invitee's last name (optional)
email string Email address associated with the Invitee
title string Meeting title associated with the meeting
starttime string Meeting start time. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC.
endtime string Meeting end time. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC.
attendees array Array of attendees taking part in meeting
description string Description of meeting. Additional information you need for this meeting. (optional)
google_calendar_log boolean Log your appointment to Google calendar. (optional)
google_calendar object The name of the Google calendar. Must be provided, if google_calendar_log is true

Sample Request

                             

                                
curl -X POST \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--data 
'{
"firstname":"James",
"lastname":"harden",
"email":"james.harden@gmail.com",
"title":"Meeting with James and Lakshya",
"starttime":"2020-11-18T09:15:00Z",
"endtime":"2020-11-18T10:16:10Z",
"attendees":
{
"0":"lakshya@easycalendar.com",
"1":"kartikay@easycalendar.com",
"2":"arunav@easycalendar.com",
"3":"testjim@hotmail.com"
},
"description":"Discuss invoice status of customers",
"google_calendar_log":true,
"google_calendar":
{
"name":"test@easycalendar.com"
}
}' \
--url  
"https://easycalendar.com/api/v1/meetings/new"

                                
                                
                

Sample Response

                    
                    
"status":"success",
"meeting_id":"1245",
"created_at":"2020-11-18T15:00:10Z",
"message":"Meeting created"
                  
              
          

Update Meeting

You can use this endpoint, to update a single meeting on EasyCalendar using your api_key and api_secret.

PATCH : https://easycalendar.com/api/v1/meetings/update/{meeting_id}

Parameters

Parameter Type Details
meeting_id numeric Id of the meeting you want to update. Only this particular meeting will be updated.

Request Body

Fields Type Details
firstname string Invitee's first name (optional)
lastname string Invitee's last name (optional)
title string Meeting title associated with the meeting (optional)
starttime string Meeting start time. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC. Must be smaller than meeting end time. (optional)
endtime string Meeting end time. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC. Must be greater than meeting start time. (optional)
attendees array Array of attendees taking part in meeting. New attendees will overwrite the previously added ones. (optional)
description string Description of meeting. Additional information you need for this meeting. (optional)

Note : Atleast one field must be provided in the request body in order to update the meeting.

Sample Request


                                
curl -X PATCH \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--data 
'{
"firstname":"Jimmy",
"lastname":"harden",
"title":"Meeting with James and Lakshya",
"starttime":"2020-11-18T09:15:00Z",
"endtime":"2020-11-18T10:16:10Z",
"attendees":{
"0":"lakshya@easycalendar.com",
"1":"kartikay@easycalendar.com",
"2":"arunav@easycalendar.com",
"3":"testjim@hotmail.com"
}
"description":"Discuss invoice status of customers"
}' \
--url  
"https://easycalendar.com/api/v1/meetings/update/2454"

Sample Response



"status": "success",
"meeting_id": "2454",
"updated_at": "2020-11-18T09:38:15Z",
"message": "Meeting details updated"
                        
                    

List Meetings

You can use this endpoint to get meetings of a specified period on EasyCalendar using your api_key and api_secret.

GET : https://easycalendar.com/api/v1/meetings/list

Parameters

Fields Type Details
start numeric It gives the starting point for the API to return the result. if skipped, then the API will return data from the beginning of the search result (optional)
limit numeric Set the limit for the API search result. By default 10, maximum 100
starttime string Starting from this time onwards. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC. Must be smaller than the endtime.
endtime string The ending before this time. Format YYYYY-mm-dd HH:mm:ssZ. The time must be in UTC. Must be greater than the starttime.

Sample Request


curl -X GET \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--url
"https://easycalendar.com/api/v1/meetings/list"
{
"start":2469,
"limit":2,
"starttime":"2020-11-19T07:15:00Z",
"endtime":"2020-11-19T23:00:00Z"
}

Sample Response


                                
"status": "success",
"total": 1,
"data": [
{
 "meeting_id": "2469",
 "clientemail": "jim.harden@gmail.com",
 "user_startime": "2020-11-19 16:59:00",
 "user_endtime": "2020-11-19T23:00:00Z",
 "client_fname": "James",
 "client_lname": "harden",
 "description": "Discuss invoice status of customers",
 "meeting_title": "Meeting with James and Lakshya",
 "attendees": [
  "arunav@easycalendar.com",
  "jim.harden@gmail.com",
  "lakshya@easycalendar.com"
 ],
 "meeting_timezone": null,
 "meeting_type": 0,
 "created_at": null,
 "client_starttime": "2020-11-19T07:15:00Z",
 "client_endtime": "2020-11-19T23:00:00Z",
 "google_calendar": "arunav@easycalendar.com"
}
],
"pagination": 
{
"next_meeting_id": 0
}
}

Get Meeting

You can use this endpoint, to get a single meeting on EasyCalendar using your api_key and api_secret.

GET : https://easycalendar.com/api/v1/meetings/get/{meeting_id}

Parameters

Parameters Type Details
meeting_id numeric Meeting id to get details. Only this particular meeting will be returned

Sample Request


curl -X GET \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--url
"https://easycalendar.com/api/v1/meetings/get/2454"
                            

Sample Response


                                
"status": "success",
"meeting_id": "2454",
"message": "Meeting details found",
"data": 
{
 "meeting_title": "Meeting with James and Lakshya",
 "client_fname": "Jimmy",
 "client_lname": "harden",
 "client_email": "jim.harden@gmail.com",
 "description": "Discuss invoice status of customers and some more queries",
 "attendees": 
  [
 "lakshya@easycalendar.com",
 "kartikay@easycalendar.com",
 "arunav@easycalendar.com",
 "testjim@hotmail.com"
  ],
 "created_at": "2020-11-18 09:10:06",
 "meeting_type": 0,
 "client_starttime": "2020-11-18 16:45:00",
 "client_endtime": "2020-11-18 17:46:00",
 "user_startime": "2020-11-18 16:45:00",
 "user_endtime": "2020-11-18 17:46:00",
 "meeting_timezone": "America/New_York",
 "google_calendar": "lakshya@easycalendar.com"
}

Delete meeting

You can use this endpoint, to delete a meeting on EasyCalendar using your api_key and api_secret.

DELETE : https://easycalendar.com/api/v1/meetings/delete/{meeting_id}

Parameters

Parameters Type Details
meeting_id numeric Id of the meeting you want to delete. Only this particular meeting will be deleted.

Sample Request

                                
curl -X DELETE \
-H "Accept: application/json" \
-H "Authorization: {api_key}:{api_secret}" \
--url 
"https://easycalendar.com/api/v1/meetings/delete/2453"
                            
                        

Sample Response


                                
"status": "success",
"meeting_id":"2453",
"message": "Meeting deleted"
                              
                          

Error Definition

The Easycalendar API uses HTTP status codes to reflect a successful or unsuccessful request 200 status codes represent a successful request. If you receive any other error status code, check the body for an error code and message.

Error code Error Description
200 Successful Request
500 Internal Server Error server error Contact support if this error persists
401 Unauthorized Invalid/missing credentials
429 Too Many Requests API request has exceeded the API hit rate limit
400 Bad Request Invalid/missing data
404 Not Found The resource doesn’t exist. Ex. invalid/non-existent meeting-id