Resource Overview
-
Ed-Fi endpoint:
/data/v3/bellSchedules -
Published view/entity: Bell Schedule Entry
-
Purpose: School bell schedule entries by date and grade level.
-
Source query:
BellSchedule -
Dependencies: No resource dependency is declared.
This resource represents the schedule of class period meeting times.
Enhanced Publishing Logic
To ensure that courses are represented only on the days they are actually taught, the logic to publish Class Periods with Bell Schedules and Cycle Days is enhanced. Prior to this change, when a bell schedule was applied across multiple cycle days, class periods under that schedule were published for all cycle day combinations, even if certain courses were taught only once per week.
Bell Schedule Publishing Changes
-
Class Periods are now published in Bell Schedules, only for the cycle days on which their associated sections are taught.
-
Class periods that do not have any sections taught on any cycle day will not be published.
-
The above publishing changes ensure that courses that meet on a rotation or partial‑week basis are no longer reported as full‑week courses.
-
-
Class periods that are linked to Bell Schedules but not configured on the Calendar page are not published.
-
When a student is enrolled in a secondary school, the Bell Schedule of the remote school is not published if it is not linked to that remote school's calendar.
Recommendation to Districts
-
Use dedicated class periods for rotation courses and avoid sharing them with daily‑meeting courses
-
Ensure all course sections including rotation course sections are explicitly mapped to the correct cycle days in section setup.
-
Avoid mixing regular and rotation sections within the same class period.
-
Run the Publish Changes option for the Schedules resource category on the Data Exchange Dashboard to apply the enhanced logic.
-
The error - “Validation of Bell Schedule failed, scheduled class period requires at least one object in the collection,” indicates that no class periods are linked to the specified bell schedule, or that the class periods linked to the bell schedule do not have any sections taught on that particular Cycle day.
Primary PowerSchool Source Data
-
[Bell_Schedule]
-
[Bell_Schedule_Items]
-
[Calendar_Day]
-
[Period]
Selection Criteria
Records are published if the following criteria are met:
-
The school must not be excluded from state reporting.
-
The bell schedule exists within the year for the Term selected in the PowerSchool UI.
Note: Bell Schedules are not published if they are not explicitly linked to calendar dates on the Calendar Configuration page. This is to prevent invalid combinations from being sent and eliminate the missing date errors. There is no impact the on the publishing of related resources such as Class Periods or Sections.
Resource Output
|
Data Element (Ed-Fi target) |
Data View Column Name |
Submission |
[Table]Field (PowerSchool Source) |
Business Rules |
Comments |
|---|---|---|---|---|---|
|
bellScheduleName |
Name |
Y |
[Bell_Schedule]Name |
Required by the production resource definition when the resource is published. |
JSON type: string. Query alias: Name. |
|
classPeriods[].classPeriodReference.classPeriodName |
PeriodName |
Y |
[Period]DCID; [Period]Abbreviation; [Period]Period_number; Transformation: EDFI_TN_LIB.formaPeriodName(p_profileid, p.dcid, p.abbreviation, p.period_number) |
Required by the production resource definition when the resource is published. |
JSON type: string. Query alias: PeriodName. |
|
classPeriods[].classPeriodReference.schoolId |
SchoolOrgID |
Y |
Publishing framework or supporting query Query alias: SchoolOrgID |
Required by the production resource definition when the resource is published. |
JSON type: string. Query alias: SchoolOrgID. |
|
schoolReference.schoolId |
SchoolOrgID |
Y |
Publishing framework or supporting query Query alias: SchoolOrgID |
Required by the production resource definition when the resource is published. |
JSON type: string. Query alias: SchoolOrgID. |
|
startTime |
StartTime |
Conditional |
[Bell_Schedule_Items]Start_Time; Transformation: to_char(to_date(bsi.start_time, 'sssss'), 'hh24:mi:ss') |
Submit when the source alias is populated and the parent structure is applicable. |
JSON type: string. Query alias: StartTime. |
|
endTime |
EndTime |
Conditional |
[Bell_Schedule_Items]End_Time; Transformation: to_char(to_date(bsi.end_time, 'sssss'), 'hh24:mi:ss') |
Submit when the source alias is populated and the parent structure is applicable. |
JSON type: string. Query alias: EndTime. |
|
dates[].date |
Date |
Y |
[Calendar_Day]Date_Value; Transformation: to_char(cd.date_value, 'YYYY-MM-DD') |
Required by the production resource definition when the resource is published. |
JSON type: datetime. Query alias: Date. |
|
totalInstructionalTime |
totalInstructionalTime |
Y |
[Bell_Schedule_]ID |
Required by the production resource definition when the resource is published. |
JSON type: string. Query alias: totalInstructionalTime. |