Enrollment start and end dates

Jump to solution
Community Novice

Hello to all,

          We have an integration between a system A and Canvas and we're obtaining the necessary information through Canvas APIs.

          This question is because we're having some troubles with enrollments start and end dates (start_at and end_at).

Using Enrollment by ID API to get all information for a specific enrollment id, we always get a null value for both fields: start_at and end_at as shown in the image below:


We were specting start_at and end_at would be populated with section dates, course dates or term dates (in that priority order) for each enrollment, but we found both fields with null values.

Could someone help me understand how this two fields work? When are they populated?

We need to use section start and end dates as enrollments start and end dates. We configured this two dates for a section and activated the "Users can only participate in the course between these dates" option. These tests were done in test and beta environments.

Thanks in advance.

1 Solution
Community Contributor

It seems that the only time these fields can be populated is if the enrollment object is created via API, not CSV or GUI. Here is the field w/ comments:

start_at (datetime, optional): The start time of the enrollment, in ISO8601 format.,

end_at (datetime, optional): The end time of the enrollment, in ISO8601 format.,

Enrollments - Canvas LMS REST API Documentation

The SIS csv does not list support for start/end date at the enrollment object level:

SIS Import Format Documentation - Canvas LMS REST API Documentation

For us, this works fine as our start/end dates are course and/or term based and not specific to each user. Canvas does provide these fields in CSV for courses and terms. All our enrollment start/end dates are null like your example.

There is very limited documentation on what the enrollment start/end date would do if populated, I would guess it would override the start/end date of the course for just that enrollment. You could test out by creating an enrollment via API and populating those fields.

If you are not needing any user specific start/end dates, I would suggest sticking with the course/term start/end dates.


Anthony Hess

View solution in original post