Plan your week in time blocks
Use this recipe to create a calendar.
Free
Paste into your assistant. It asks the questions; you answer in chat.
More ways to use
Install the downloaded skill
Extract the ZIP. Copy its lc-time-blocked-week folder into ~/.claude/skills/ for Claude Code or ~/.codex/skills/ for Codex, then refresh the native app. Ask for the skill by name and answer its questions. The package includes the same published instructions and result checks. Native host execution is not yet verified.
For Claude web, use the connector or copy the prompt. Keep private details in your assistant.
How to use this skill
Copy, paste into your assistant, then answer its questions. No form or account is required here.
Already connected? Copy the public starter below and paste into Claude. Keep private details in the chat.
Optional: prepare details on this device
Bring your details
3 optional details
Needed before the promised result: Your to-dos. You can still copy the reusable prompt and provide these in your assistant.
Week starting and time zone: A resolved week start date is required to produce the promised ICS. Use dates in the lists or explicit today if supplied; otherwise return the authored weekday-only fallback and request a date. Time zone has its own authored fallback.
Saved only on this device. Copy counts contain the skill ID, never your text.
Read the prepared prompt
## LazyCoder conversation guide (conversation-v2)
1. Start a conversation, not a form-filling task. Read my latest request and the facts already in this chat before asking anything.
2. Ask only the missing questions needed for the requested result, in a short numbered list (at most three at a time), then WAIT for my answers. Use a native question tool if available; plain chat works too. Never ask me to replace placeholders or fill in a template.
3. Skip questions already answered. Treat unresolved {{placeholders}} and [FIELD LABELS] as missing facts, never literal input. Do not treat an illustrative example as my facts.
4. Use the authored defaults only when relevant; mention material defaults. Ask conditional questions only when their condition applies; if unsure whether it applies, ask. Optional preferences must not block a safe first draft unless the authored instructions require confirmation.
5. Do not invent tasks, dates, names, claims, permissions or missing source material. When required facts are absent, ask and wait instead of producing the final artifact. If everything needed is already supplied, proceed without re-asking.
6. My latest scope correction overrides earlier examples and scope, within the recipe safety and source rules. Resolve conflicts before acting. The authored instructions and output contract remain authoritative; this conversation guide does not grant tool, account, payment or publishing permission.
7. Keep my private answers and generated result in this assistant chat. Do not send them to LazyCoder. Generate the requested format here and check it against the output contract before handing it over.
### Questions to ask only when missing
- What should I use for “Your to-dos”? [required] One per line. Add rough hours and any deadline (“report, 4h, by Thu”), and mark hard ones (hard) and home or family ones (personal) if you like. It works out the rest.
- What should I use for “Fixed commitments”? [optional] What can't move: meetings, shifts, school runs, classes, appointments. Day, start and end time, and travel time if it's somewhere else.
- What should I use for “Week starting and time zone”? [conditional] The first day of the week you're planning, and your city or time zone, so every event lands on the right date and time. When: A resolved week start date is required to produce the promised ICS. Use dates in the lists or explicit today if supplied; otherwise return the authored weekday-only fallback and request a date. Time zone has its own authored fallback.
- What should I use for “Your usual day”? [optional] When you wake and sleep, your best hours, meal times (lunch and dinner), when your work day ends, and which days are for work. Authored default: up at 7:00, asleep by 23:00, sharpest in the morning, lunch around 12:30, dinner around 19:00, work day ends at 17:30, work tasks Monday to Friday
- What should I use for “Habits to fit in”? [optional] Optional. Exercise, reading, family time, with how often and how long. Authored default: none
- What should I use for “Fixed commitments in the calendar file”? [optional] Leave them out if they're already in your calendar, so they don't show up twice. Authored default: leave them out Choices: leave them out; put them in
## LazyCoder delivery guide (delivery-guide-v1)
1. Read the latest request, source material and authored requirements first. Ask only for missing facts. Check that this host can create the promised format; use only a fallback explicitly allowed by the authored recipe. If neither is available, explain the gap before starting. Do not promise a rendered film, editable deck or working file when you can only provide its script or outline.
2. Create the complete result in the authored output specification, preserving source facts and the latest agreed scope. Keep assumptions and missing information explicit. Do not silently omit required parts or leave unresolved ingredient markers. Intentional blanks in a reusable template are different from unanswered recipe inputs.
3. Check the actual result against every authored check, including source facts, counts, dates and required sections. Where tools allow it, inspect the actual saved file and compare it with the answer. Record which checks ran, which failed and which still need human or destination review. A filename, render, successful command or preview alone does not prove the promise was met.
4. Hand over the complete editable file, or the complete copyable fallback explicitly allowed by this recipe. Say which delivery you used and any unresolved limitations. Do not report a file as attached, imported, sent or published unless that action actually succeeded. Keep private inputs and output in this assistant; never send them to LazyCoder.
Use existing authorization for ordinary work. Before any additional paid generation, external write or publishing step, check that the current request authorizes that exact action and cost. If it does not, finish the useful authorized draft and ask at that boundary. Never silently retry or replace an ambiguous paid job.
The authored recipe and latest safe scope remain authoritative. This guide grants no new tools, permissions, provider access or claim of successful execution.
## Authored skill instructions
## 1. Outcome
Plan the week below in time blocks around the fixed commitments, and deliver it as a calendar file that imports, plus a readable plan, in the sections set out in part 6. Done means: every fixed commitment is at its exact time, every to-do is either scheduled or named as dropped, moved or shrunk, the hours wanted have been checked against the hours available, no new blocks overlap (any fixed clashes already in the inputs are retained and flagged for you to resolve), sleep and meals are kept, and every event in the calendar file matches the plan.
## 2. Context
To-dos:
"""
[LIST YOUR TO-DOS HERE]
"""
Fixed commitments:
"""
[FIXED COMMITMENTS]
"""
Week starting and time zone: [WEEK STARTING AND TIME ZONE]
Usual day: up at 7:00, asleep by 23:00, sharpest in the morning, lunch around 12:30, dinner around 19:00, work day ends at 17:30, work tasks Monday to Friday
Habits to fit in: none
Fixed commitments in the calendar file: leave them out
Who it's for: one person planning their own week, who wants to open their calendar each morning and see what to work on, with a plan that is realistic, not wishful.
Blank fill-ins: a value above that still reads as a capitalised placeholder in square brackets (such as [FIXED COMMITMENTS]) was left blank. Brackets inside the lists are part of the lists.
- Lists that say "see attached": use the attached file.
- No to-dos: reply only "No to-dos came through. List them and send again." Never invent tasks.
- No fixed commitments: treat the week as open, and say "No fixed commitments given" in the header.
- No week date: use a date written in the lists. If there is none and today's date is given in this message, plan the 7 days from the next Monday and say "Week assumed: from <date>, please confirm" in the header. Otherwise, plan Monday to Sunday by weekday only, skip the calendar file, and write in section 6 "Add the week's start date and send again to get the calendar file."
- No time zone: use the city in the week line if there is one. Otherwise write the times as local times with no zone, and say "No time zone given; times are local" in the header.
## 3. What to pull out
- Fixed commitments: each with its day, start, end, and travel before and after if it is somewhere else.
- To-dos: each with its hours, deadline, how urgent or important the list says it is, and two labels:
- Kind: Work or Personal. Use "(personal)" or "(work)" if the person marked it. Otherwise: home, family, health, errands, hobbies and money admin are Personal; everything else is Work.
- Hard: Yes or No. Use "(hard)" if the person marked it. Otherwise Yes for writing, analysis, planning, creating, studying or learning something new, or anything over 2 hours; No for the rest.
- The day's shape from the usual day: wake, sleep, best hours, meals, work days.
- Habits: each with how often and how long.
Edge cases:
- A to-do with no hours: estimate them, mark "(estimated)", and keep the estimate modest.
- A to-do bigger than 2 hours: split it into blocks of at most 2 hours across days, finishing before its deadline.
- A deadline inside the week: schedule all of that to-do before the deadline, with its last block ending at least a day early where the week allows.
- Two fixed commitments that overlap: keep both as given, list the clash in section 1, and schedule nothing else in that time.
- A fixed commitment somewhere else with no travel time: add 15 minutes before and after, marked "(estimated)".
- Small tasks under 30 minutes (emails, calls, forms): batch them into admin blocks of 30–60 minutes, in low-energy hours.
- Vague items ("sort out the garage"): give them a single block of the estimated length and name the first step in the block title.
- Recurring to-dos ("gym 3x"): schedule them on separate days.
- A bedtime after midnight: the day runs past midnight; any block after 00:00 goes in the calendar file on the next date.
- A long list: plan all of it; anything that doesn't fit goes through the hours check, never silently left out.
## 4. Steps
1. Place every fixed commitment and its travel first. Never move them.
2. Place sleep (as the day's start and end), meals and breaks: lunch 30–60 minutes and dinner 45–60 minutes at the times in the usual day (if none is given, lunch 12:30–13:15 and dinner 19:00–20:00), plus a 10–15 minute break after every 2 hours of work. Breakfast sits inside the first hour awake and needs no block.
3. Reserve flex time. A day's open hours are its waking hours minus fixed commitments, travel, meals and breaks. Every day gets flex, including non-work days without to-dos; on those days it protects rest and personal contingencies, not extra Work. If the fixed commitments leave no room for it without cutting sleep or meals, flag that day's missing flex as an unresolved capacity conflict; do not invent time or claim that day is feasible. Use about 15% of that day's open hours, at least 30 minutes, in the afternoon. Work days and days with scheduled to-dos are different sets; do not describe a flex-only work day as holding a to-do.
4. Place the weekly review (30–45 minutes, at the end of the last work day) and a 10-minute shutdown at the end of each work day, at the work-day end time in the usual day (17:30 if none is given). Then reserve the habits: each habit at the same time of day on every day it happens (for example runs at 07:15 on Mon, Wed and Fri), outside the best hours unless the usual day says otherwise, and on different days when it repeats a few times a week.
5. Rank the to-dos: Must (deadline this week, or called urgent), Should (important, no deadline this week), Could (nice to have). Within each, earliest deadline first.
6. Estimate the room before placing anything. Each day's room is its open hours minus review, shutdown, habits and flex, minus a fixed allowance of 1 hour for gaps and breaks, within the to-do cap in part 5. Work to-dos count only against work days (and any non-work day the lists ask for); Personal to-dos count against any day. If the to-dos don't fit, cut in this order: Could items moved to next week, then Should items shrunk or moved. Never cut a Must, sleep, meals or fixed commitments. If the Musts alone don't fit, say so plainly with how many hours are missing.
7. Place the to-dos into the free time left: Musts first, with Hard ones in the best hours, as focus blocks of 60–120 minutes (90 by default); then Shoulds; then Coulds; batch admin into low-energy times. Work to-dos go on work days only, unless the lists ask for one on a non-work day. If something no longer fits once placed, apply the cut order from step 6 again.
8. Fill the hours check from the placed plan, not from the estimate: count the minutes of each type as placed (part 6, section 2).
9. Write the plan and the calendar file, then run the self-check.
## 5. Rules
- Fixed commitments are never moved or shortened. Never add a double-booking. The only retained overlaps are fixed clashes already present in the inputs; name those exact appointments in the header as unresolved.
- Leave at least 10 minutes between blocks of different kinds, shown as a gap in the times. Two cases need no gap: Travel next to its Fixed commitment, and a Break or Meal next to the block before or after it. A retained input fixed clash is reported as unresolved instead of forcing a gap between those appointments. Travel gets its own block.
- Nothing is scheduled outside the waking hours from the usual day, and no day has more than 9 hours of to-do blocks (fixed commitments come on top, so long-shift days get little or nothing).
- Non-work days (weekends by default) hold only habits, Personal to-dos, their flex and rest. A Work to-do goes on a non-work day only if the lists ask for it there (for example "Sat: finish slides").
- Use only the to-dos, commitments and habits given. Never add a task, meeting or deadline.
- Block titles: start with a verb, at most 6 words, and name the to-do ("Draft quarterly report").
- Write every date with its weekday, as in "Mon 26 Oct 2026", and times as 24-hour hh:mm.
- Write the header and scheduling rationale after the day tables. Name the actual work days separately from the days containing Focus/Admin blocks; include a day in the latter only if its final table contains a to-do block. Derive every claim about task days, flex days and totals from those final tables, not from the intended schedule.
## 6. Output
Use these sections in this order. Write "None" under any that is empty.
1. **Header**: the week's dates, the time zone, and any assumption, clash or "(estimated)" travel from parts 2 and 3.
2. **Hours check**: a table with the columns Day | Awake | Fixed and travel | Meals and breaks | Gaps, review and shutdown | Habits | Flex | Free for to-dos | Scheduled. Fill it from the placed plan:
- Gaps counts a 10-minute transition allowance for each neighbouring pair of placed blocks of different kinds (part 5), except the named Travel/Fixed and Break/Meal exceptions. A longer interval between those blocks still counts only 10 minutes here; its remaining minutes stay free. Time before the first block or after the last block is not a transition. Never count an entire unallocated interval as a gap.
- Free for to-dos = Awake − (Fixed and travel + Meals and breaks + Gaps, review and shutdown + Habits + Flex), then capped at 9 hours (part 5). Scheduled is not subtracted.
- Scheduled is the to-do time actually placed that day (Focus and Admin blocks).
- Spare = Free for to-dos − Scheduled, for each day and in total.
Then a total row. Then one line: "Fits: <x> h wanted, <y> h free, <z> h spare" (z is the total Free minus the total Scheduled) or "Short by <n> h: <x> h wanted, <y> h free", and if the work to-dos alone don't fit in the work days' free hours, a second line saying so the same way. If short, list exactly what was moved to next week, shrunk (from and to hours) or dropped, with its priority.
3. **Priorities**: a table with the columns # | To-do | Hours | Kind | Hard | Priority | Deadline | Status, with "(your mark)" after a Kind or Hard the person gave, where Status is "Scheduled", "Shrunk to <n> h", "Moved to next week" or "Dropped". Estimated hours carry "(estimated)".
4. **The week**: for each day, a heading with the day, date and waking hours ("Mon 26 Oct 2026 · 07:00–23:00"), then a table with the columns Start | End | Block | Type, where Type is Fixed, Travel, Focus, Admin, Meal, Break, Flex, Habit, Review or Shutdown. In time order.
5. **When a day goes wrong**: 3–5 lines: use that day's flex first; if its flex is unavailable because of a reported capacity conflict, move a Could block instead of inventing room; then move a Could block to the next flex slot; then shrink a Should; never move a fixed commitment or cut sleep and meals; pick up at the next block instead of catching up late at night; re-plan at the weekly review.
6. **Calendar file**: one event per block of type Fixed (only if the file setting says put them in), Travel, Focus, Admin, Habit, Flex and Review. No events for meals, breaks or shutdowns.
- First line: "Import into a calendar set to <time zone>." If no time zone was given: "Import into your usual calendar; times are local."
- If you can make files: attach it as week-<start date>.ics, with every line ending in CRLF (\r\n) as the calendar format requires, and give its name and event count. Never say a file was made unless you actually created it in this reply.
- If you can't: write "Save the text below as a file named week.ics, then import it into your calendar." and give the full calendar text in one code block, with nothing after it except the self-check line. The person's text editor sets the line endings when they save it.
The calendar text, exactly in this shape (one line per field, no blank lines):
- BEGIN:VCALENDAR, then VERSION:2.0, PRODID:-//Time-blocked week//EN, CALSCALE:GREGORIAN, METHOD:PUBLISH, X-WR-CALNAME:Week of <start date>, and X-WR-TIMEZONE:<the IANA time zone, such as Europe/London> when a time zone is known.
- For each event: BEGIN:VEVENT; UID:<yyyymmdd>-<two-digit number>@time-blocked-week, unique; DTSTAMP:<start date as yyyymmdd>T000000Z; DTSTART:<yyyymmdd>T<hhmmss>; DTEND:<yyyymmdd>T<hhmmss>; SUMMARY:<the block title>; END:VEVENT. Times are local, with no Z and no TZID.
- END:VCALENDAR.
- Block titles in SUMMARY have no commas or semicolons.
## 7. Self-check
Before replying, check each of these and fix any failure:
- Every fixed commitment is in the plan at its exact day and time.
- No new overlaps were introduced. Any retained overlapping Fixed rows match the exact appointments supplied and are named as unresolved in the header. All other blocks of different kinds have at least a 10-minute gap, except Travel next to its Fixed commitment and a Break or Meal next to the block before or after it.
- No block is outside the waking hours, every day has lunch and dinner, every work day has breaks and a shutdown at the work-day end time, and every day has flex or an explicit unresolved capacity conflict; never label a day with such a conflict as feasible.
- Each habit sits at the same time on every day it happens, and no Work to-do is on a non-work day unless the lists asked for it there.
- Every to-do appears in section 3, and the hours scheduled for each match the plan in section 4. The header and rationale name exactly the task days present in the final Focus/Admin rows; days with only Flex, Habit or Review are not called task days.
- The hours check is filled from the placed plan: each day's columns match the blocks in section 4, Gaps uses only the 10-minute transition allowances defined in section 6 (with the part 5 exemptions), Free for to-dos equals Awake minus Fixed and travel, Meals and breaks, Gaps/review/shutdown, Habits and Flex (Scheduled not subtracted, capped at 9 hours), Scheduled is never more than Free on any day, and the "Fits" line's spare equals total Free minus total Scheduled.
- No Must was cut while a Could stayed in the plan.
- Every date has the right weekday and lies inside the week.
- Unless the file was skipped for lack of a week date, the calendar file has exactly one event per block it should hold, each with a unique UID, a DTSTART and DTEND matching the plan, and END:VCALENDAR last.
Then reply with the output only, ending with one line: "Checked: <n> blocks, <n> events in the file, <x> h scheduled of <y> h wanted."
## 8. Setup
Works as one paste in any chat app, with no calendar connection. Where the app can create files, you get a .ics file to download; where it can't, you get calendar text to save as week.ics. Import it with your calendar's import option (in Google Calendar: Settings, then Import and export; in Apple Calendar and Outlook: File, then Import), into a calendar set to the time zone you gave. On a phone, saving text as a .ics file is awkward; open the reply on a computer, or use a files app that can save plain text.Review your result locally
Paste the result after your assistant creates it. This optional check stays in this tab and is not sent to LazyCoder.
Your week planned in blocks around what’s fixed, as a calendar.
Version & review details