IMPORTANT NOTE
This Knowledge Base and our support ticketing system have moved to Salesforce Service Cloud .
⚠ Important Notice

This Knowledge Base Has Moved

Our Knowledge Base and support ticketing system have moved to Salesforce Service Cloud. Content on this site has not been maintained since July 2025 and may be outdated or incorrect.

Go to New Knowledge Base →

Coursedog

Submit a Ticket My Tickets
Welcome
Login  Sign up

API Examples - Query Events/Meetings

Table of Contents

Overview
Search for Events
Get Meetings
Create Meeting
Related Articles

Overview

  • This page captures example API queries pertaining to Events. 

  • In each of the example API URLs:

    • environment” = “staging” or “app

    • schoolid” = unique ID assigned to your school (a Super Admin at your institution can find that at Admin > Settings > “School Unique ID”)


Search for Events

Overview | Known Limitations | Example 1 - Search on Event Name
Example 2 - Another Event Name Search | Example 3 - Search on Event Type
Example 4 - Multi-Word Queries

Overview


Known Limitations

One query cannot match across both the name and type fields.


Example 1 - Search on Event Name

Query

  • https://environment.coursedog.com/api/v1/em/schoolid/events/search/searchterm

  • In the below search, “searchterm” was “signing


Results

{

  "numberOfResults": 1,

  "numberOfEvents": 1,

  "events": {

    "pksJ7mQ00yFhA9BBgawd": {

      "_id": "pksJ7mQ00yFhA9BBgawd",

      "attachments": [],

      "authorId": "peoplesoft@example.com",

      "contacts": [],

      "createdAt": 1692396458247,

      "createdBy": "peoplesoft@example.com",

      "description": "",

      "id": "pksJ7mQ00yFhA9BBgawd",

      "lastEditedAt": 1692396458247,

      "lastEditedBy": "peoplesoft@example.com",

      "name": "Book Signing",

      "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

      "owners": [

        "peoplesoft@example.com"

      ],

      "status": "Confirmed",

      "type": "Fundraisers",

      "version": 2,

      "meetings": [

        {

          "_id": "DzH0eBbIsXAugcUHwtko",

          "endDate": "2023-09-14",

          "endTime": 900,

          "eventId": "pksJ7mQ00yFhA9BBgawd",

          "featured": null,

          "hidden": null,

          "id": "DzH0eBbIsXAugcUHwtko",

          "private": null,

          "public": null,

          "resources": [],

          "startDate": "2023-09-14",

          "startTime": 800,

          "status": "Confirmed"

        }

      ]

    }

  }

}


Query

  • https://environment.coursedog.com/api/v1/em/schoolid/events/search/searchterm

  • In the below search, “searchterm” was “author


Results

{

  "numberOfResults": 1,

  "numberOfEvents": 1,

  "events": {

    "nHRvRkSh53u6neZaGpve": {

      "_id": "nHRvRkSh53u6neZaGpve",

      "attachments": [],

      "authorId": "peoplesoft@example.com",

      "contacts": [],

      "createdAt": 1692396412702,

      "createdBy": "peoplesoft@example.com",

      "description": "",

      "id": "nHRvRkSh53u6neZaGpve",

      "lastEditedAt": 1692396412702,

      "lastEditedBy": "peoplesoft@example.com",

      "name": "Meet the Author",

      "organization": "26a76887-1022-41bc-a7f0-769cc5c30c50",

      "owners": [

        "peoplesoft@example.com"

      ],

      "status": "Confirmed",

      "type": "Fundraisers",

      "version": 2,

      "meetings": [

        {

          "_id": "hcjQBOaXrZ6BMlgJCw57",

          "endDate": "2023-10-11",

          "endTime": 900,

          "eventId": "nHRvRkSh53u6neZaGpve",

          "featured": null,

          "hidden": null,

          "id": "hcjQBOaXrZ6BMlgJCw57",

          "private": null,

          "public": null,

          "resources": [],

          "startDate": "2023-10-11",

          "startTime": 800,

          "status": "Confirmed"

        }

      ]

    }

  }

}


Example 3 - Search on Event Type

Query

  • https://environment.coursedog.com/api/v1/em/schoolid/events/search/searchterm

  • In the below search, “searchterm” was “fundraiser


Results

{

  "numberOfResults": 2,

  "numberOfEvents": 2,

  "events": {

    "nHRvRkSh53u6neZaGpve": {

      "_id": "nHRvRkSh53u6neZaGpve",

      "attachments": [],

      "authorId": "peoplesoft@example.com",

      "contacts": [],

      "createdAt": 1692396412702,

      "createdBy": "peoplesoft@example.com",

      "description": "",

      "id": "nHRvRkSh53u6neZaGpve",

      "lastEditedAt": 1692396412702,

      "lastEditedBy": "peoplesoft@example.com",

      "name": "Meet the Author",

      "organization": "26a76887-1022-41bc-a7f0-769cc5c30c50",

      "owners": [

        "peoplesoft@example.com"

      ],

      "status": "Confirmed",

      "type": "Fundraisers",

      "version": 2,

      "meetings": [

        {

          "_id": "hcjQBOaXrZ6BMlgJCw57",

          "endDate": "2023-10-11",

          "endTime": 900,

          "eventId": "nHRvRkSh53u6neZaGpve",

          "featured": null,

          "hidden": null,

          "id": "hcjQBOaXrZ6BMlgJCw57",

          "private": null,

          "public": null,

          "resources": [],

          "startDate": "2023-10-11",

          "startTime": 800,

          "status": "Confirmed"

        }

      ]

    },

    "pksJ7mQ00yFhA9BBgawd": {

      "_id": "pksJ7mQ00yFhA9BBgawd",

      "attachments": [],

      "authorId": "peoplesoft@example.com",

      "contacts": [],

      "createdAt": 1692396458247,

      "createdBy": "peoplesoft@example.com",

      "description": "",

      "id": "pksJ7mQ00yFhA9BBgawd",

      "lastEditedAt": 1692396458247,

      "lastEditedBy": "peoplesoft@example.com",

      "name": "Book Signing",

      "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

      "owners": [

        "peoplesoft@example.com"

      ],

      "status": "Confirmed",

      "type": "Fundraisers",

      "version": 2,

      "meetings": [

        {

          "_id": "DzH0eBbIsXAugcUHwtko",

          "endDate": "2023-09-14",

          "endTime": 900,

          "eventId": "pksJ7mQ00yFhA9BBgawd",

          "featured": null,

          "hidden": null,

          "id": "DzH0eBbIsXAugcUHwtko",

          "private": null,

          "public": null,

          "resources": [],

          "startDate": "2023-09-14",

          "startTime": 800,

          "status": "Confirmed"

        }

      ]

    }

  }

}


Example 4 - Multi-Word Queries

Query

  • https://environment.coursedog.com/api/v1/em/schoolid/events/search/searchterm

  • In the below search, “searchterm” was “book+sign


Results

{

    "numberOfResults": 1,

    "numberOfEvents": 1,

    "events": {

        "pksJ7mQ00yFhA9BBgawd": {

            "_id": "pksJ7mQ00yFhA9BBgawd",

            "attachments": [],

            "authorId": "peoplesoft@example.com",

            "contacts": [],

            "createdAt": 1692396458247,

            "createdBy": "peoplesoft@example.com",

            "description": "",

            "id": "pksJ7mQ00yFhA9BBgawd",

            "lastEditedAt": 1692396458247,

            "lastEditedBy": "peoplesoft@example.com",

            "name": "Book Signing",

            "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

            "owners": [

                "peoplesoft@example.com"

            ],

            "status": "Confirmed",

            "type": "Fundraisers",

            "version": 2,

            "meetings": [

                {

                    "_id": "DzH0eBbIsXAugcUHwtko",

                    "endDate": "2023-09-14",

                    "endTime": 900,

                    "eventId": "pksJ7mQ00yFhA9BBgawd",

                    "featured": null,

                    "hidden": null,

                    "id": "DzH0eBbIsXAugcUHwtko",

                    "private": null,

                    "public": null,

                    "resources": [],

                    "startDate": "2023-09-14",

                    "startTime": 800,

                    "status": "Confirmed"

                }

            ]

        }

    }

}


Get Meetings

Overview | Example 1 - Query by Start Date | Example 2 - Query by Date Range
Example 3 - Pagination | Example 4 - Returning a Subset of Fields | Example 5 - Returning a Subset of Fields

Overview

  • The Get Meetings endpoint documented at https://coursedogeventsapi.docs.apiary.io/#reference/meetings-calendar/meetings/get-meetings accepts a number of filters and returns all the meeting instances matching that filter.

  • The “startDate” and “endDate” parameters are used to filter by date range.

  • Note that the result structure for this API is inverted from the Search for Events API; rather than returning events containing a list of meetings, it returns meetings containing the parent event.


Example 1 - Query by Start Date

Query

  • https://environment.coursedog.com/api/v1/em/schoolid/meetings?startDate=XXXX-YY-ZZ

    • XXXX = Year

    • YY = Month (Numeral)

    • ZZ = Day (Numeral)

  • In the below search, “XXXX-YY-ZZ” was “2023-09-01” (September 1, 2023)


Result

{

    "DzH0eBbIsXAugcUHwtko": {

        "_id": "DzH0eBbIsXAugcUHwtko",

        "endDate": "2023-09-14",

        "endTime": 900,

        "eventId": "pksJ7mQ00yFhA9BBgawd",

        "featured": null,

        "hidden": null,

        "id": "DzH0eBbIsXAugcUHwtko",

        "private": null,

        "public": null,

        "resources": [],

        "startDate": "2023-09-14",

        "startTime": 800,

        "status": "Confirmed",

        "eventData": {

            "_id": "pksJ7mQ00yFhA9BBgawd",

            "attachments": [],

            "authorId": "peoplesoft@example.com",

            "contacts": [],

            "createdAt": 1692396458247,

            "createdBy": "peoplesoft@example.com",

            "description": "",

            "id": "pksJ7mQ00yFhA9BBgawd",

            "lastEditedAt": 1692396458247,

            "lastEditedBy": "peoplesoft@example.com",

            "name": "Book Signing",

            "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

            "owners": [

                "peoplesoft@example.com"

            ],

            "status": "Confirmed",

            "type": "Fundraisers",

            "version": 2

        }

    },

    "hcjQBOaXrZ6BMlgJCw57": {

        "_id": "hcjQBOaXrZ6BMlgJCw57",

        "endDate": "2023-10-11",

        "endTime": 900,

        "eventId": "nHRvRkSh53u6neZaGpve",

        "featured": null,

        "hidden": null,

        "id": "hcjQBOaXrZ6BMlgJCw57",

        "private": null,

        "public": null,

        "resources": [],

        "startDate": "2023-10-11",

        "startTime": 800,

        "status": "Confirmed",

        "eventData": {

            "_id": "nHRvRkSh53u6neZaGpve",

            "attachments": [],

            "authorId": "peoplesoft@example.com",

            "contacts": [],

            "createdAt": 1692396412702,

            "createdBy": "peoplesoft@example.com",

            "description": "",

            "id": "nHRvRkSh53u6neZaGpve",

            "lastEditedAt": 1692396412702,

            "lastEditedBy": "peoplesoft@example.com",

            "name": "Meet the Author",

            "organization": "26a76887-1022-41bc-a7f0-769cc5c30c50",

            "owners": [

                "peoplesoft@example.com"

            ],

            "status": "Confirmed",

            "type": "Fundraisers",

            "version": 2

        }

    }

}


Example 2 - Query by Date Range

Query

  • https://environment.coursedog.com/api/v1/em/schoolid/meetings?startDate=XXXX-YY-ZZ&endDate=XXXX-YY-ZZ

    • XXXX = Year

    • YY = Month (Numeral)

    • ZZ = Day (Numeral)

  • In the below search, the startDate was “2023-09-01” (September 1, 2023) and the endDate was “2023-09-30”. 


Result

{

    "DzH0eBbIsXAugcUHwtko": {

        "_id": "DzH0eBbIsXAugcUHwtko",

        "endDate": "2023-09-14",

        "endTime": 900,

        "eventId": "pksJ7mQ00yFhA9BBgawd",

        "featured": null,

        "hidden": null,

        "id": "DzH0eBbIsXAugcUHwtko",

        "private": null,

        "public": null,

        "resources": [],

        "startDate": "2023-09-14",

        "startTime": 800,

        "status": "Confirmed",

        "eventData": {

            "_id": "pksJ7mQ00yFhA9BBgawd",

            "attachments": [],

            "authorId": "peoplesoft@example.com",

            "contacts": [],

            "createdAt": 1692396458247,

            "createdBy": "peoplesoft@example.com",

            "description": "",

            "id": "pksJ7mQ00yFhA9BBgawd",

            "lastEditedAt": 1692396458247,

            "lastEditedBy": "peoplesoft@example.com",

            "name": "Book Signing",

            "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

            "owners": [

                "peoplesoft@example.com"

            ],

            "status": "Confirmed",

            "type": "Fundraisers",

            "version": 2

        }

    }

}


Example 3 - Pagination

Query

  • Includes the “limit” and “skip” parameters to paginate results. 

  • https://environment.coursedog.com/api/v1/em/schoolid/meetings?startDate=XXXX-YY-ZZ&skip=A&limit=B

    • XXXX = Year

    • YY = Month (Numeral)

    • ZZ = Day (Numeral)

    • A = Numeral

    • B = Numeral

  • This is our standard pagination API. So if you wanted to retrieve 3 pages of results and have 50 results in each page, you'd use the following arguments in sequence:

    • limit=50&skip=0

    • limit=50&skip=50

    • limit=50&skip=100

  • In the below search, the startDate was “2023-09-01” (September 1, 2023), “A” was “1” and “B” was “1”. 


Result

{

    "hcjQBOaXrZ6BMlgJCw57": {

        "_id": "hcjQBOaXrZ6BMlgJCw57",

        "endDate": "2023-10-11",

        "endTime": 900,

        "eventId": "nHRvRkSh53u6neZaGpve",

        "featured": null,

        "hidden": null,

        "id": "hcjQBOaXrZ6BMlgJCw57",

        "private": null,

        "public": null,

        "resources": [],

        "startDate": "2023-10-11",

        "startTime": 800,

        "status": "Confirmed",

        "eventData": {

            "_id": "nHRvRkSh53u6neZaGpve",

            "attachments": [],

            "authorId": "peoplesoft@example.com",

            "contacts": [],

            "createdAt": 1692396412702,

            "createdBy": "peoplesoft@example.com",

            "description": "",

            "id": "nHRvRkSh53u6neZaGpve",

            "lastEditedAt": 1692396412702,

            "lastEditedBy": "peoplesoft@example.com",

            "name": "Meet the Author",

            "organization": "26a76887-1022-41bc-a7f0-769cc5c30c50",

            "owners": [

                "peoplesoft@example.com"

            ],

            "status": "Confirmed",

            "type": "Fundraisers",

            "version": 2

        }

    }

}


Example 4 - Returning a Subset of Fields

Query

  • Include the returnFields argument to only return a subset of object fields. 

  • The field names are passed on as a comma-delimited list.

  • https://environment.coursedog.com/api/v1/em/schoolid/meetings?startDate=XXXX-YY-ZZ&returnFields=FieldIdFieldIdFieldId

    • XXXX = Year

    • YY = Month (Numeral)

    • ZZ = Day (Numeral)

    • FieldId = The Field/Question Id of the field(s) you would like to have returned.

  • In the below search, the startDate was “2023-09-01” (September 1, 2023), and the return fields are ID, startDate, and endDate. 


Result

{

    "DzH0eBbIsXAugcUHwtko": {

        "_id": "DzH0eBbIsXAugcUHwtko",

        "endDate": "2023-09-14",

        "id": "DzH0eBbIsXAugcUHwtko",

        "startDate": "2023-09-14",

        "eventData": {}

    },

    "hcjQBOaXrZ6BMlgJCw57": {

        "_id": "hcjQBOaXrZ6BMlgJCw57",

        "endDate": "2023-10-11",

        "id": "hcjQBOaXrZ6BMlgJCw57",

        "startDate": "2023-10-11",

        "eventData": {}

    }

}



Example 5 - Returning a Subset of Fields

Query

  • This is a variation of Example 4. 

  • In the below search, the startDate was “2023-09-01” (September 1, 2023), and the return fields are ID, startDate, endDate, startTime, endTime, eventData, name, eventData, and status (i.e. https://environment.coursedog.com/api/v1/em/schoolid/meetings?startDate=XXXX-YY-ZZ&returnFields=id,startDate,endDate,startTime,endTime,eventData.name,eventData.status


Result

{

    "DzH0eBbIsXAugcUHwtko": {

        "_id": "DzH0eBbIsXAugcUHwtko",

        "endDate": "2023-09-14",

        "endTime": 900,

        "id": "DzH0eBbIsXAugcUHwtko",

        "startDate": "2023-09-14",

        "startTime": 800,

        "eventData": {

            "name": "Book Signing",

            "status": "Confirmed"

        }

    },

    "hcjQBOaXrZ6BMlgJCw57": {

        "_id": "hcjQBOaXrZ6BMlgJCw57",

        "endDate": "2023-10-11",

        "endTime": 900,

        "id": "hcjQBOaXrZ6BMlgJCw57",

        "startDate": "2023-10-11",

        "startTime": 800,

        "eventData": {

            "name": "Meet the Author",

            "status": "Confirmed"

        }

    }


Create Meeting

Overview | Important Note | Example 1 - Creating a Meeting
Example 2 - Check for Meeting Conflicts | Example 3 - Create Multiple Meetings

Overview

The POST event endpoint documented at https://coursedogeventsapi.docs.apiary.io/#reference/events/events/post-an-event takes a JSON structure defining a single event and returns the id of the created event, if successful.


Important Note

  • Using this API directly bypasses the usual event validation logic used by Coursedog.

  • Thus, for example, it is possible to create events that would normally be disallowed due to conflicts, or even events that have invalid date/time ranges.


Example 1 - Creating a Meeting

Query

https://environment.coursedog.com/api/v1/em/schoolid/events?doPutMeetings=true


Post

{

    "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

    "type": "Lecture/Speaker 2",

    "name": "Introductory Lecture",

    "description": "Overview of the lecture series",

    "status": "Confirmed",

    "meetings": [

        {

            "resources": [],

            "startDate": "2023-11-17",

            "endDate": "2023-11-17",

            "startTime": "0800",

            "endTime": "0900",

            "roomId": "1A-101C"

        }

    ],

    "contacts": [

        {

            "name": "John Doe",

            "email": "peoplesoft@example.com",

            "phone": "",

            "notify": false

        }

    ]

}


Response

"4KtFOyfD0bIM2lciZejz"


This POST request results in the following event:


Example 2 - Check for Meeting Conflicts

Overview

To explicitly invoke the meeting conflicts logic, use the meetingConflicts endpoint.


Query

https://environment.coursedog.com/api/v1/em/schoolid/meetingConflicts?eventId=new


Post

{

    "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

    "type": "Lecture/Speaker",

    "name": "Introductory Lecture",

    "description": "Overview of the lecture series",

    "status": "Confirmed",

    "meetings": [

        {

            "resources": [],

            "startDate": "2023-11-08",

            "endDate": "2023-11-08",

            "startTime": "0800",

            "endTime": "0900",

            "roomId": "1A-101C"

        }

    ],

    "contacts": [

        {

            "name": "John Doe",

            "email": "peoplesoft@example.com",

            "phone": "",

            "notify": false

        }

    ]

}


Response

{

    "cXlQb0R88aEwQaC8z58F": [

        {

            "conflictReason": "daysNoticeLimitConflict",

            "meetingId": "cXlQb0R88aEwQaC8z58F",

            "eventId": null,

            "conflictText": "Lecture/Speaker events are not allowed to be scheduled within 7 days of the event.\n    This event was created on 11/07/2023\n    and should not have any meetings starting before 11/15/2023."

        },

        {

            "conflictReason": "doubleBookedRoom",

            "meetingId": "cXlQb0R88aEwQaC8z58F",

            "eventId": null,

            "conflictText": "Room <strong>CSI01 - 1A-101C</strong> is <strong>double booked</strong> with <strong>BIO 105 - 001</strong> on 11/08/2023."

        },

        {

            "conflictReason": "doubleBookedRoom",

            "meetingId": "cXlQb0R88aEwQaC8z58F",

            "eventId": null,

            "conflictText": "Room <strong>CSI01 - 1A-101C</strong> is <strong>double booked</strong> with <strong>Introductory Lecture</strong> on 11/08/2023."

        }

    ]

}


Example 3 - Create Multiple Meetings

Overview

  • You can use the same endpoint to create multiple meetings for the same event.

  • In this example, the Query and response is the same as Example 1 (we only return the first id that was created). 


Query

https://environment.coursedog.com/api/v1/em/schoolid/events?doPutMeetings=true


Post

{

        "organization": "e732746b-4a63-4372-a30b-f1c1957dd318",

        "type": "Lecture/Speaker",

        "name": "Introductory Lectures",

        "description": "Overview of the lecture series",

        "status": "Confirmed",

        "meetings": [

            {

                "resources": [],

                "startDate": "2023-11-17",

                "endDate": "2023-11-17",

                "startTime": "0800",

                "endTime": "0900",

                "roomId": "1A-101C"

            },

            {

                "resources": [],

                "startDate": "2023-11-18",

                "endDate": "2023-11-18",

                "startTime": "0800",

                "endTime": "0900",

                "roomId": "1A-101C"

            }


        ],

        "contacts": [

            {

                "name": "John Doe",

                "email": "peoplesoft@example.com",

                "phone": "",

                "notify": false

            }

        ]

    }


Related Articles

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.