The Schedule API exposes two complementary operations: reading the study plan a student already has, and generating a fresh one on demand. Separating these into distinct endpoints matters because a client that opens to “today’s plan” needs the saved schedule instantly, without triggering a new AI generation that would quietly discard the progress already ticked off. Generation pulls live assignments from all connected school platforms if no explicit assignment list is provided, so in the common case the caller only needs to supplyDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/UAnirudh/IntelliPlan/llms.txt
Use this file to discover all available pages before exploring further.
hours_per_day and preferred_time. Generated schedules can be pushed directly to Google Calendar via the POST /calendar/export endpoint.
Both schedule endpoints require authentication. Send your API key as
X-API-Key: ip_live_…. Apply for a key at intelliplan.tech/developers.GET /api/v1/schedule — Retrieve Saved Schedule
Returns the study schedule the student has already generated and saved. This does not trigger a new AI generation — it returns the persisted plan exactly as it was last saved. If no schedule has been generated yet, the response will be an empty schedule object. Required scope:read:schedule
- Request
- Response
cURL
Array of day objects, each containing a list of time blocks for that day.
ISO 8601 timestamp of when this schedule was generated.
null if no schedule has been saved yet.POST /api/v1/schedule/generate — Generate AI Schedule
Calls the AI scheduler to build a complete multi-day study plan tailored to the student’s workload. If noassignments array is provided, the endpoint fetches live assignments automatically from all connected school platforms. The plan is broken into focused work blocks with breaks and is saved to the student’s account, replacing the previous saved schedule.
Required scope: write:schedule
- Request
- Request with custom assignments
- Response
cURL — auto-fetch assignments
Request Body
Available study hours per day. Accepts decimal values (e.g.
2.5 for two and a half hours). Defaults to 2 if not provided.Preferred study time of day. Accepted values:
"morning", "afternoon", "evening". Defaults to "evening". The AI aligns generated blocks to the chosen time window.Optional explicit list of assignments to schedule. When omitted, the API fetches live assignments from all connected school platforms automatically. Each object may include
title, course, due_date, and estimated_time (minutes).Optional array of additional tasks to weave into the schedule alongside the fetched assignments. Each object may include
title and estimated_time (minutes).Exporting to Google Calendar
Once a schedule is generated, it can be pushed directly to the student’s Google Calendar in one call. The export endpoint accepts the schedule data and creates individual calendar events for each study block.The
/calendar/export endpoint is a web-layer route, not under /api/v1/. It requires an active Google Calendar OAuth connection (configured in Settings → Integrations). The student must have completed the Google OAuth flow before calling this endpoint.cURL — export to Google Calendar
The schedule array, in the same format returned by
GET /api/v1/schedule or POST /api/v1/schedule/generate.When
true, the endpoint fetches existing Google Calendar events and skips creating study blocks that overlap with existing events. Defaults to false.Calendar export response
Number of Google Calendar events successfully created.
Number of blocks skipped due to overlaps (only non-zero when
skip_overlaps is true).Schedule Workflow
Check for a saved schedule
Call
GET /api/v1/schedule first. If a saved plan exists and is still current, you can display it immediately without generating a new one.Generate a new schedule
Call
POST /api/v1/schedule/generate with the student’s available hours and preferred time. The AI fetches live assignments automatically if none are supplied.Save the schedule
The generated schedule is automatically persisted to the student’s account. Subsequent calls to
GET /api/v1/schedule will return this new plan.