Skip to content
English
  • There are no suggestions because the search field is empty.

Get Schedule Tasks by Start and End Date

Returns all schedule tasks that fall between the specified start and end date

get https://api.constructiononline.com/api/ScheduleActivities?startDate={startDate}&endDate={endDate}

Using this endpoint, users can extract a range of schedule tasks and groups that fall between a specified start and end date. This endpoint applies to all schedule tasks/groups that the user has access to, so tasks/groups from multiple schedules may be returned. Any schedule task or group that has qualifying start and end dates will be included in the response. Please note that schedule tasks/groups that only have one matching date (e.g. start date but not end date) do not qualify and will not be returned. 

Requests

REQUIRED PARAMETERS

startDate: date

  • Schedule task/group start date. Should be entered in YYYY-MM-DD format. 

endDate: date

  • Schedule task/group end date. Should be entered in YYYY-MM-DD format.

⚠️ Remember: Only schedule tasks/groups with both start AND end dates that fall within the entered dates will be returned. Tasks or groups that only have a qualifying start or end date will not be returned in the response.

Sample URL request:

  • https://api.constructiononline.com/api/ScheduleActivities?startDate=2024-01-12&endDate=2024-03-01

Example requests in cURL, C#, Python, and JavaScript can be found below:

cURL

# replace {email} with the email address for your ConstructionOnline account
# {password} with your ConstructionOnline password
# {apikey} with your provided API key
# {startDate} with the desired start date
# {endDate} with the desired end date

curl https://api.constructiononline.com/api/ScheduleActivities?startDate={startDate}&endDate={endDate} -u {email}:{password} -H 'APIKey:{apikey}'

C#

/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with your provided API key
{startDate} with the desired start date
{endDate} with the desired end date */

public string GetData(string endpoint) {
string username = "{username}";
string password = "{password}";
string apikey = "{apikey}";
HttpResponseMessage response = null;
HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = System.Net.DecompressionMethods.GZip };
    using (HttpClient client = new HttpClient(handler)) {
        client.Timeout = new TimeSpan(0, 0, 30);
        client.BaseAddress = new Uri("http://api.constructiononline.com");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)));
        client.DefaultRequestHeaders.Add("APIKey", apikey);
        client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip");
        response = client.GetAsync(endpoint).Result;
    }
    return response?.Content.ReadAsStringAsync().Result;
}
MessageBox.Show(GetData("api/ScheduleActivities?startDate={startDate}&endDate={endDate}"));

Python

#replace {username} with the email address for your ConstructionOnline account
#{password} with your ConstructionOnline password
#{apikey} with your provided API key
#{scheduleID} with the schedule's ID
#{startDate} with the desired start date
#{endDate} with the desired end date

import base64, requests, json
apikey = "{apikey}"
username = "{username}"
password = "{password}"
def makeRequest(endpoint):
url = "https://api.constructiononline.com/" + endpoint
userPass = username + ":" + password
headers = {
"APIKey": apikey,
"Accept-Encoding": "gzip, deflate, br",
"Authorization": "Basic " + base64.b64encode(userPass.encode()).decode(),
}
response = requests.get(url, headers=headers)
return json.dumps(json.loads(response.text), indent=2)

#Main Program
print(makeRequest("api/ScheduleActivities?startDate={startDate}&endDate={endDate}"))

JavaScript

/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with your provided API key
          {startDate} with the desired start date
{endDate} with the desired end date */

username = '{username}';
password = '{password}';
apikey = '{apikey}';
function makeRequest(endpoint) {
    auth = btoa('${username}:${password}');
    var myHeaders = new Headers();
    myHeaders.append("APIKey", apikey);
    myHeaders.append("Accept-Encoding", "gzip, deflate, br");
    myHeaders.append("Authorization", "Basic ${auth}");
    var requestOptions = {
        method: 'GET',
        headers: myHeaders,
        redirect: 'follow'
   };
    fetch("https://api.constructiononline.com/" + endpoint, requestOptions)
        .then(response => response.text())
        .then(result => console.log(result))
        .catch(error => console.log('error', error));
    return response;
};makeRequest("api/ScheduleActivities?startDate={startDate}&endDate={endDate}");

Responses

green 200: Success

A successful request will return a 200 response with the requested schedule tasks/groups in the body, as seen below. Definitions for all returned properties can be found here.

{
        "ID": 25554616,
        "START_TIME": "2021-02-19T00:00:00",
        "END_TIME": "2021-02-24T00:00:00",
        "SUBJECT": "Interior Doors and Trim",
        "DETAILS": null,
        "PRIORITY": 0,
        "STATUS": null,
        "ASAP": false,
        "TASK_TYPE": 5,
        "GRP_ID": 403505,
        "COMPLETED": 0.0,
        "DATE_COMPLETED": null,
        "COMPLETED_BY": null,
        "PRIVATE": false,
        "COMPLETOR": null,
        "DATE_CREATED": "2023-07-08T18:49:42.887",
        "CREATED_BY": 999997,
        "CREATOR": "Alex Kim",
        "DATE_MODIFIED": "2023-07-08T18:49:42.887",
        "MODIFIED_BY": 999997,
        "MODIFIED_NAME": "Alex Kim",
        "ACTIVE": true,
        "PRJ_ID": 1309343,
        "PROJECT_NAME": "Downtown Restaurant Remodel",
        "PRJ_INACTIVE": false,
        "PRJ_CREATOR": 999997,
        "CUSTOM_COLOR": "#0a5289",
        "IS_TEMPLATE": false,
        "CAN_EDIT": true,
        "ATTACHMENTS": null,
        "RELATEDCONIDS": null,
        "PARENTS": null,
        "CHILDREN": null,
        "LABEL_GRP_ID": null,
        "LABEL_GRP_NAME": null,
        "SORT_NUMBER": 66,
        "TASK_COLOR": 0
}

Note: All tasks and groups returned using this endpoint will contain the same set of properties (START_TIME, END_TIME, SUBJECT, etc.). However, schedule groups will not contain data for all returned properties, as some properties are specifically reserved for schedule tasks.

red 404: Error

The server was not able to locate the resource specified in the request. The dates may have been entered in an unacceptable format.

red 429: Error

The user has surpassed the request rate limit for the hour, day, week, or month.

 red 500: Error

There was an internal server error and the server was unable to complete the request.

 

Last updated: Jan 29, 2024