NAV
shell ruby python csharp php

CourseMeeting

The CourseMeeting object

The CourseMeeting object looks like this in JSON:

{
    "object": "course_meeting",
    "id": 1,
    "course_offering_id": 1,
    "summary": "Main class",
    "start_at": "2022-10-04T08:00:00+00:00",
    "end_at": "2022-10-04T09:30:00+00:00",
    "room_id": 1,
    "counts_toward_attendance_hours": true,
    "counts_toward_clinical_hours": true,
    "status": "active",
    "present_until": null,
    "tardy_until": null,
    "beacon_active": false,
    "is_online": false,
    "sandbox": true,
    "api_version": null
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
summary Yes text (50)
start_at Yes datetime
end_at Yes datetime
room_id Yes int
counts_toward_attendance_hours Yes bool
counts_toward_clinical_hours Yes bool
status Yes enum (active, deleted)
present_until No datetime
tardy_until No datetime
beacon_active Yes bool
is_online Yes bool
sandbox No bool
api_version No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "course_meeting",
            "id": 2,
            "course_offering_id": 21908,
            "summary": "Main class",
            "start_at": "2022-10-01T08:00:00+00:00",
            "end_at": "2022-10-01T09:30:00+00:00",
            "room_id": 1,
            "counts_toward_attendance_hours": true,
            "counts_toward_clinical_hours": true,
            "status": "active",
            "present_until": null,
            "tardy_until": null,
            "beacon_active": false,
            "is_online": false
        }
    ],
    "sandbox": true,
    "api_version": "2026-07-13"
}

Retrieves all CourseMeeting objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/coursemeetings

Parameters

None

Permissions

One of the following roles is required to call this method:

update_attendance

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "start_time": "2022-10-15 08:00:00",
    "status": "present",
    "note": "Excused for doctor visit",
    "keep_best_status": "true",
    "counts_toward_attendance_hours": "true",
    "counts_toward_clinical_hours": "false"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :status => 'present'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'status': 'present'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  status = "present"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'status' => 'present'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

Updates the attendance attribute of an existing CourseMeeting object.

HTTP Request

PUT /courseofferings/(courseoffering)/students/(enrollment)/attendance/update

Parameters

Name Required Data Type Description
course_meeting_id No int
start_time No datetime
status Yes enum (present, tardy, absent, excused)
note No text
keep_best_status No bool
counts_toward_attendance_hours No bool Default is true
counts_toward_clinical_hours No bool Default is true

Permissions

One of the following roles is required to call this method: