Expand recurring classes
expand_recurring_classesGenerate all meeting dates for a recurring class between start and end dates while skipping holidays and reading weeks, then list skipped dates and reasons.
Instructions
Generate the meeting dates for a recurring class between two dates, and skip holidays and reading weeks. Inputs: course, weekdays (day names or codes such as Tuesday or TU), start_date, end_date, start_time, optional end_time, optional location, holidays (single dates or ranges) and reading_weeks (single dates or ranges). Returns every meeting date plus the dates that were skipped and why. The answer ends with a next step hint that points to build_ics when the class should become a calendar. Example prompt: "My biology class meets Tuesday and Thursday from Sep 8 to Dec 10, 2026 at 10:00. Skip the reading week of Oct 12 to Oct 16."
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title for the calendar event. Defaults to the course name plus class. | |
| course | Yes | Course name or code, such as BIO 101. | |
| end_date | Yes | Last date of the term as YYYY-MM-DD. | |
| end_time | No | Class end time as HH:MM or 2:30 PM. It must be after start_time. | |
| holidays | No | Holiday dates or ranges, such as "2026-10-12" or "2026-10-12 to 2026-10-16". | |
| location | No | Room or place. | |
| weekdays | Yes | Days the class meets, as names or codes, such as "Tuesday", "Tue" or "TU". | |
| start_date | Yes | First date of the term as YYYY-MM-DD. | |
| start_time | Yes | Class start time as HH:MM or 2:30 PM. | |
| reading_weeks | No | Reading week dates or ranges, such as "2026-10-12 to 2026-10-16". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title used for the calendar event. | |
| course | Yes | Course name or code. | |
| skipped | Yes | Dates that were skipped, with the reason. | |
| end_date | Yes | Last date of the term. | |
| end_time | Yes | Class end time, or null when none was passed. | |
| location | Yes | Room or place, or null when none was passed. | |
| meetings | Yes | Every class meeting, in date order. | |
| weekdays | Yes | The weekdays as two letter codes. | |
| next_step | Yes | Suggested next tool call for turning the class meetings into a calendar. | |
| start_date | Yes | First date of the term. | |
| start_time | Yes | Class start time. | |
| candidate_count | Yes | How many dates matched the weekdays before holidays and reading weeks were removed. |