Learning objectives generator
Bloom’s verbs, the ABCD format, and a warning for “understand”.
Turn a list of lessons, a start date and your teaching days into a dated course schedule that skips holidays. Get the end date, a session-by-session table, and a calendar file for Google Calendar, Outlook or Apple Calendar.
Free, no sign-up. Nothing you type leaves your browser.
One per line; numbers and bullets are removed. 12 lessons.
One per line: 2026-12-24, or 2026-12-21 to 2027-01-01, then a name if you like.
Thu 7 Jan 2027 18:00–21:00
First session Tue 17 Nov 2026. 12 lessons in 12 sessions.
| # | Date | Time | Lessons |
|---|---|---|---|
| 1 | Tue 17 Nov 2026 | 18:00–21:00 | Setting up: Node.js, VS Code and Git |
| 2 | Thu 19 Nov 2026 | 18:00–21:00 | Variables, types and operators |
| 3 | Tue 24 Nov 2026 | 18:00–21:00 | Conditionals and loops |
| 4 | Thu 26 Nov 2026 | 18:00–21:00 | Functions and scope |
| 5 | Tue 1 Dec 2026 | 18:00–21:00 | Arrays and array methods |
| 6 | Thu 3 Dec 2026 | 18:00–21:00 | Objects and JSON |
| 7 | Tue 8 Dec 2026 | 18:00–21:00 | The DOM: finding and changing elements |
| 8 | Thu 10 Dec 2026 | 18:00–21:00 | Events and forms |
| 9 | Tue 15 Dec 2026 | 18:00–21:00 | Fetch and promises |
| 10 | Thu 17 Dec 2026 | 18:00–21:00 | Async/await and error handling |
| Tue 22 Dec – Thu 31 Dec 2026 | No sessions (4): Winter break | ||
| 11 | Tue 5 Jan 2027 | 18:00–21:00 | Modules and npm |
| 12 | Thu 7 Jan 2027 | 18:00–21:00 | Project day: build a to-do app |
The planner walks forward from the start date one day at a time. Every teaching day that isn’t on your skip list becomes a session and takes the next lesson or lessons from the list. The last session’s date is the end date. Weeks are counted Monday to Sunday from the first session to the last, including weeks without sessions, because a break still adds to how long the course runs.
Dates are worked out as plain calendar days, never as local times, so the change to or from summer time can’t move a session to the wrong day. The calendar file uses the same idea for times: 18:00 stays 18:00.
The example above is the JavaScript module of a part-time web development bootcamp: 12 lessons, one per evening, on Tuesdays and Thursdays from 18:00 to 21:00, starting on Tuesday 17 November 2026, with a winter break from 21 December to 1 January.
| What | Result |
|---|---|
| Sessions 1–10 | 17 November to 17 December, twice a week |
| Skipped by the break | 4 evenings: 22, 24, 29 and 31 December |
| Sessions 11–12 | 5 and 7 January 2027 |
| Length | 8 calendar weeks, 6 of them with sessions |
| Contact time | 12 sessions × 3 hours = 36 hours |
Two things stand out. The break lands just before the last two lessons, so the final project starts after two weeks away: it’s worth adding a short review session at the start of January. And with two lessons per evening, the module would finish on Thursday 3 December, before the break, but each evening would carry twice as much new material.
The same number of hours spread over more sessions is remembered better than the same hours in one block. This spacing effect is one of the most consistent findings in learning research: a review of hundreds of experiments by Cepeda and colleagues (2006) found it again and again, and Dunlosky and colleagues (2013) rated distributed (spaced) practice as one of only two study techniques with high usefulness.
For a course calendar, that means:
Courses rarely run exactly to plan: a topic takes longer, a session is lost to illness, a group needs more practice. One rule of thumb is a buffer session for every five or six taught ones; it’s a starting point, not a research finding, so adjust it after the first run. Add a line such as “Review and catch-up” to the lesson list and it gets a date like any other lesson.
If you haven’t settled the lessons yet, the course outline builder helps you plan parts and lessons with timings first, and the course workload calculator checks that the reading and exercises around each session fit into a learner’s week.
Paste the lessons in teaching order, choose the start date and the days you teach, and say how many lessons fit in one session. The planner gives every lesson a date, skips the dates you list, and shows the last session and the number of weeks.
Download the .ics file. In Google Calendar, use Settings, then Import & export; Outlook and Apple Calendar can import the file too. Import it into a calendar of its own, so you can share it with the group or remove it in one go if the plan changes.
Download the CSV and open it in Excel, Numbers or Google Sheets: one row per session with the date, weekday, times and lessons. Or copy the Markdown table into a syllabus, a wiki page or an Obsidian note.
Yes. Put one date per line (2026-12-24) or a range (2026-12-21 to 2027-01-01), with a name after it if you like. Teaching days that fall on those dates get no session, the remaining lessons move on to the next teaching days, and the table shows what was skipped.
None: the times are “floating”, so a session at 18:00 shows at 18:00 in whichever time zone the calendar is in. That is what you want for a group in one place. If people join from other time zones, say which time zone you mean in the course details.
No. The planner runs in your browser; your lessons and dates are not sent to a server or saved.
Chalkenso is where courses are designed and improved: instructors note what happened on the exact passage, learners say where they got stuck, and AI drafts the next version for you to approve.