How many hours is... The college l- day in MBBS.

Searching the Web

NMC MBBS college working hours per day regulations India

Here is the breakdown for the MBBS college day in India, as per NMC (National Medical Commission) regulations:

MBBS College Day: 8 Hours
The standard college working day in MBBS is 8 hours, structured roughly as:
SessionDuration
Morning lectures/didactic teaching~3-4 hours
Practicals / Dissection / Lab work~2-3 hours
Tutorials / Seminars~1 hour
Total~8 hours
Key points:
  • The NMC mandates a minimum of 240 teaching days per year for MBBS.
  • Each teaching day must have a minimum of 8 hours of academic activity.
  • This includes lectures, practicals, clinical postings, tutorials, and seminars.
  • There should be a minimum of 1,400 teaching hours across Phase I (pre-clinical subjects).
For clinical postings in Phase II and III, students additionally spend time in OPD and wards, which can extend the day beyond 8 hours in practical terms.
So the short answer: 8 hours is the official college day for MBBS as per NMC norms.

Create a study schedule for MBBS based on 8-hour college days

Asking for Preferences
Reading File
Running Command

mkdir -p /home/daytona/workspace/mbbs-schedule && ls /home/daytona/workspace/mbbs-schedule/

Writing File

~/mbbs-schedule/create_schedule.py

import openpyxl
from openpyxl.styles import (
    PatternFill, Font, Alignment, Border, Side
)
from openpyxl.utils import get_column_letter

wb = openpyxl.Workbook()

# ── Colour palette ──────────────────────────────────────────────
HEADER_FILL   = PatternFill("solid", fgColor="1F4E79")   # dark navy
SUBHDR_FILL   = PatternFill("solid", fgColor="2E75B6")   # mid-blue
DAY_FILL      = PatternFill("solid", fgColor="D6E4F0")   # light blue (day col)
COLLEGE_FILL  = PatternFill("solid", fgColor="E2EFDA")   # soft green (college hrs)
SELF_FILL     = PatternFill("solid", fgColor="FFF2CC")   # amber  (self-study)
BREAK_FILL    = PatternFill("solid", fgColor="F2F2F2")   # grey   (breaks)
SUNDAY_FILL   = PatternFill("solid", fgColor="FCE4D6")   # peach  (Sunday)
TITLE_FILL    = PatternFill("solid", fgColor="4472C4")   # royal blue (sheet title)
ALT_ROW_FILL  = PatternFill("solid", fgColor="F9FBFF")   # very light (alt rows)

WHITE_FONT    = Font(name="Arial", bold=True, color="FFFFFF", size=11)
BOLD_FONT     = Font(name="Arial", bold=True, size=10)
NORMAL_FONT   = Font(name="Arial", size=10)
SMALL_FONT    = Font(name="Arial", size=9)
TITLE_FONT    = Font(name="Arial", bold=True, color="FFFFFF", size=14)
SUBJ_FONT     = Font(name="Arial", bold=True, size=10, color="1F4E79")

CENTER = Alignment(horizontal="center", vertical="center", wrap_text=True)
LEFT   = Alignment(horizontal="left",   vertical="center", wrap_text=True)

def thin_border():
    s = Side(style="thin", color="B0B0B0")
    return Border(left=s, right=s, top=s, bottom=s)

def thick_border():
    s = Side(style="medium", color="2E75B6")
    return Border(left=s, right=s, top=s, bottom=s)

def cell(ws, row, col, value="", fill=None, font=None, align=CENTER, border=True):
    c = ws.cell(row=row, column=col, value=value)
    if fill:  c.fill  = fill
    if font:  c.font  = font
    else:     c.font  = NORMAL_FONT
    c.alignment = align
    if border: c.border = thin_border()
    return c

def merge_title(ws, row, start_col, end_col, value, fill=TITLE_FILL, font=TITLE_FONT):
    ws.merge_cells(start_row=row, start_column=start_col,
                   end_row=row,   end_column=end_col)
    c = ws.cell(row=row, column=start_col, value=value)
    c.fill = fill; c.font = font; c.alignment = CENTER
    c.border = thick_border()
    return c

# ════════════════════════════════════════════════════════════════
# SHEET 1 – DAILY SCHEDULE TEMPLATE (universal 8-hr day)
# ════════════════════════════════════════════════════════════════
ws1 = wb.active
ws1.title = "Daily Template"

# freeze panes
ws1.freeze_panes = "B4"

# column widths
ws1.column_dimensions["A"].width = 16   # Time
ws1.column_dimensions["B"].width = 28   # Activity
ws1.column_dimensions["C"].width = 22   # Subject / Topic
ws1.column_dimensions["D"].width = 14   # Duration
ws1.column_dimensions["E"].width = 32   # Notes / Tips

# Sheet title
ws1.row_dimensions[1].height = 36
merge_title(ws1, 1, 1, 5, "MBBS DAILY SCHEDULE TEMPLATE  |  8-Hour College Day + Self-Study")

# Sub-title
ws1.row_dimensions[2].height = 20
ws1.merge_cells("A2:E2")
c2 = ws1.cell(row=2, column=1,
    value="College: 8 hrs  |  Self-Study: 4 hrs  |  Total productive day: 12 hrs  |  Sleep & personal: 8 hrs")
c2.fill = SUBHDR_FILL; c2.font = WHITE_FONT; c2.alignment = CENTER

# Column headers
ws1.row_dimensions[3].height = 22
headers = ["Time", "Activity", "Subject / Topic", "Duration", "Notes / Tips"]
for i, h in enumerate(headers, 1):
    cell(ws1, 3, i, h, fill=HEADER_FILL, font=WHITE_FONT)

# Data rows
rows = [
    ("05:00 – 06:00", "Morning Routine", "Wake-up, exercise, freshen up", "60 min", "Light jog or yoga; no phone first 30 min"),
    ("06:00 – 07:30", "Pre-College Self-Study", "Revise yesterday's topics", "90 min", "Use active recall / flashcards"),
    ("07:30 – 08:00", "Breakfast & Commute", "—", "30 min", "Listen to med podcasts during commute"),
    ("08:00 – 10:00", "College – Lectures (Block 1)", "As per timetable", "2 hrs", "Take structured notes; mark doubts"),
    ("10:00 – 10:15", "Short Break", "—", "15 min", "Hydrate; quick doubt clarification"),
    ("10:15 – 12:15", "College – Practicals / Dissection", "Lab / Anatomy / Physiology practical", "2 hrs", "Observe carefully; record observations"),
    ("12:15 – 13:00", "Lunch Break", "—", "45 min", "Rest eyes; short walk if possible"),
    ("13:00 – 14:00", "College – Lectures (Block 2)", "As per timetable", "1 hr", "Afternoon lectures — sit front row to stay alert"),
    ("14:00 – 15:00", "Tutorial / Seminar / Clinical Posting", "Small group teaching or ward rounds", "1 hr", "Ask questions; discuss with peers"),
    ("15:00 – 16:00", "College – Lectures / Viva Prep", "Revision or practical exam prep", "1 hr", "Use this time for quick Q&A sessions"),
    ("16:00 – 16:30", "College ends / Evening Snack", "—", "30 min", "Power snack; decompress briefly"),
    ("16:30 – 18:30", "Self-Study Block 1", "Consolidate today's college topics", "2 hrs", "Re-read notes → summarise → questions"),
    ("18:30 – 19:00", "Break / Physical Activity", "—", "30 min", "Walk, sport, or relaxation"),
    ("19:00 – 19:45", "Dinner", "—", "45 min", "Avoid screens during dinner"),
    ("19:45 – 21:15", "Self-Study Block 2", "New chapter or weak area", "90 min", "Deep reading + diagrams + mnemonics"),
    ("21:15 – 21:30", "Review & Planning", "Plan tomorrow's targets", "15 min", "Write 3 goals for tomorrow in a diary"),
    ("21:30 – 22:00", "Wind Down", "Light reading / relaxation", "30 min", "No heavy studying; let memory consolidate"),
    ("22:00 – 05:00", "Sleep", "—", "7 hrs", "Consistent sleep time is non-negotiable"),
]

for i, (time, act, subj, dur, notes) in enumerate(rows, 4):
    row_num = i
    ws1.row_dimensions[row_num].height = 22
    # alternate row fill
    base_fill = ALT_ROW_FILL if i % 2 == 0 else None
    is_break  = "Break" in act or "Lunch" in act or "Dinner" in act or "Routine" in act or "Commute" in act or "Wind" in act or "Sleep" in act
    is_college = "College" in act
    is_self    = "Self-Study" in act

    row_fill = BREAK_FILL if is_break else (COLLEGE_FILL if is_college else (SELF_FILL if is_self else base_fill))

    cell(ws1, row_num, 1, time,  fill=row_fill, font=BOLD_FONT)
    cell(ws1, row_num, 2, act,   fill=row_fill, font=BOLD_FONT if (is_college or is_self) else NORMAL_FONT)
    cell(ws1, row_num, 3, subj,  fill=row_fill, font=NORMAL_FONT, align=LEFT)
    cell(ws1, row_num, 4, dur,   fill=row_fill, font=NORMAL_FONT)
    cell(ws1, row_num, 5, notes, fill=row_fill, font=SMALL_FONT, align=LEFT)

# Legend
legend_row = len(rows) + 5
ws1.merge_cells(f"A{legend_row}:E{legend_row}")
lc = ws1.cell(row=legend_row, column=1, value="COLOUR LEGEND")
lc.fill = HEADER_FILL; lc.font = WHITE_FONT; lc.alignment = CENTER

legend_items = [
    (COLLEGE_FILL, "Green = College hours (lectures, practicals, tutorials)"),
    (SELF_FILL,    "Amber = Self-study blocks"),
    (BREAK_FILL,   "Grey  = Breaks, meals, sleep, personal time"),
]
for j, (f, label) in enumerate(legend_items, legend_row + 1):
    ws1.merge_cells(f"A{j}:E{j}")
    c = ws1.cell(row=j, column=1, value=label)
    c.fill = f; c.font = BOLD_FONT; c.alignment = LEFT
    c.border = thin_border()

# ════════════════════════════════════════════════════════════════
# SHEET 2 – WEEKLY SCHEDULE (Mon-Sun)  — generic / adaptable
# ════════════════════════════════════════════════════════════════
ws2 = wb.create_sheet("Weekly Planner")
ws2.freeze_panes = "B4"

DAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
SLOTS = [
    "06:00–07:30  Pre-college study",
    "08:00–10:00  Lectures Block 1",
    "10:15–12:15  Practicals / Lab",
    "13:00–14:00  Lectures Block 2",
    "14:00–15:00  Tutorial / Posting",
    "15:00–16:00  Revision / Viva Prep",
    "16:30–18:30  Self-Study Block 1",
    "19:45–21:15  Self-Study Block 2",
]

# title
ws2.row_dimensions[1].height = 36
merge_title(ws2, 1, 1, 9, "MBBS WEEKLY PLANNER  |  Monday – Sunday")

ws2.row_dimensions[2].height = 18
ws2.merge_cells("A2:I2")
c2b = ws2.cell(row=2, column=1,
    value="Fill in your subjects/topics for each slot. College slots (green) follow your institution's timetable.")
c2b.fill = SUBHDR_FILL; c2b.font = WHITE_FONT; c2b.alignment = CENTER

# headers
ws2.row_dimensions[3].height = 22
ws2.column_dimensions["A"].width = 30
for d in range(7):
    ws2.column_dimensions[get_column_letter(d + 2)].width = 18

cell(ws2, 3, 1, "Time Slot / Activity", fill=HEADER_FILL, font=WHITE_FONT)
for d, day in enumerate(DAYS, 2):
    fill = SUNDAY_FILL if day == "Sunday" else SUBHDR_FILL
    font = Font(name="Arial", bold=True, color="FFFFFF" if day != "Sunday" else "7B2C00", size=10)
    cell(ws2, 3, d, day, fill=fill, font=font)

for s_idx, slot in enumerate(SLOTS, 4):
    ws2.row_dimensions[s_idx].height = 30
    is_col = any(kw in slot for kw in ["Lectures", "Practicals", "Tutorial", "Posting", "Revision", "Viva"])
    is_self = "Self-Study" in slot
    row_fill = COLLEGE_FILL if is_col else (SELF_FILL if is_self else None)

    cell(ws2, s_idx, 1, slot, fill=row_fill, font=BOLD_FONT, align=LEFT)
    for d_idx in range(2, 9):
        day_name = DAYS[d_idx - 2]
        f = SUNDAY_FILL if day_name == "Sunday" else (row_fill or ALT_ROW_FILL)
        cell(ws2, s_idx, d_idx, "", fill=f, font=NORMAL_FONT)

# ════════════════════════════════════════════════════════════════
# SHEETS 3-6 – One per MBBS year with subject-specific plans
# ════════════════════════════════════════════════════════════════

year_data = {
    "1st Year (Phase I)": {
        "duration": "12 months",
        "subjects": ["Anatomy", "Physiology", "Biochemistry"],
        "exam": "1st Prof MBBS",
        "schedule": [
            # (Day, Morning Self-Study, College Focus, Evening Self-Study 1, Evening Self-Study 2)
            ("Monday",    "Anatomy – Gross (Upper Limb)",     "Lectures + Dissection Hall",         "Anatomy – Revision + Draw diagrams",   "Physiology – CVS basics"),
            ("Tuesday",   "Physiology – Nerve & Muscle",      "Lectures + Physiology Practical",    "Physiology – Revise + MCQs",           "Biochemistry – Carbohydrate metabolism"),
            ("Wednesday", "Biochemistry – Enzymes",           "Lectures + Biochem Practical",       "Biochemistry – Revise + flowcharts",   "Anatomy – Neuro-anatomy intro"),
            ("Thursday",  "Anatomy – Histology",              "Lectures + Dissection Hall",         "Histology slides revision",            "Physiology – Respiratory physiology"),
            ("Friday",    "Physiology – Renal & GIT",        "Lectures + Practicals",              "Physiology MCQs (Across)",             "Biochemistry – Lipid metabolism"),
            ("Saturday",  "Weekly revision – Anatomy",        "Lectures (half day) / Viva practice","Physiology – full chapter test",       "Biochemistry – Previous year Qs"),
            ("Sunday",    "Rest & Light review",              "—  (No college)",                    "Weak topic of the week",               "Plan next week + Flashcard review"),
        ],
        "tips": [
            "Anatomy: Gray's Anatomy for Students + BD Chaurasia. Dissect daily; do NOT skip the hall.",
            "Physiology: Ganong's / Guyton. Understand mechanisms, don't just memorise.",
            "Biochemistry: Harper's / Lippincott. Draw metabolic pathways repeatedly.",
            "Target: 2 chapters per subject per week. Revise every Sunday.",
            "Start MCQ practice (Across / Amit Ashish) from month 3 itself.",
        ],
    },
    "2nd Year (Phase II)": {
        "duration": "12 months",
        "subjects": ["Pathology", "Pharmacology", "Microbiology", "Forensic Medicine (FMT)"],
        "exam": "2nd Prof MBBS",
        "schedule": [
            ("Monday",    "Pathology – General Pathology",    "Lectures + Pathology Practical",     "Pathology – Revise + Diagrams",        "Pharmacology – ANS drugs"),
            ("Tuesday",   "Pharmacology – CNS drugs",         "Lectures + Pharmacology Practical",  "Pharmacology MCQs (Gobind Rai Garg)",  "Microbiology – Bacteriology basics"),
            ("Wednesday", "Microbiology – Immunology",        "Lectures + Micro Practical",         "Micro – Revise + Culture media notes", "Pathology – Inflammation"),
            ("Thursday",  "FMT – Thanatology",                "Lectures + FMT classes",             "FMT – Revise IPC sections",            "Pharmacology – CVS drugs"),
            ("Friday",    "Pathology – Systemic Pathology",   "Lectures + Practicals",              "Pathology MCQs",                       "Microbiology – Virology"),
            ("Saturday",  "Weekly mock test (any 1 subject)", "Lectures (half day)",                "Weak topics revision",                 "FMT + Micro combined MCQs"),
            ("Sunday",    "Rest & consolidation",             "—  (No college)",                    "Pharmacology – drug charts revision",  "Plan week + Spaced repetition"),
        ],
        "tips": [
            "Pathology: Robbins + Harsh Mohan. Focus on morphology & diagrams.",
            "Pharmacology: KD Tripathi + Katzung. Make drug comparison tables.",
            "Microbiology: Ananthanarayan + Jawetz. Mnemonics for organism characteristics.",
            "FMT: Reddy's + Narayan Reddy. Learn IPC sections by heart.",
            "Begin clinical correlation — connect with what you see in OPD.",
        ],
    },
    "3rd Year (Phase III Part 1)": {
        "duration": "12 months",
        "subjects": ["Ophthalmology", "ENT", "Community Medicine (PSM)", "Clinical Postings (Medicine, Surgery, O&G)"],
        "exam": "3rd Prof Part 1 MBBS",
        "schedule": [
            ("Monday",    "Community Medicine – Epidemiology","Lectures + Community Medicine",       "PSM – Statistics & numerics practice", "Ophthalmology – Anatomy of eye"),
            ("Tuesday",   "Ophthalmology – Glaucoma/Retina",  "Ward posting – General Medicine",    "Medicine – Short cases revision",      "ENT – Ear anatomy & diseases"),
            ("Wednesday", "ENT – Nose & Paranasal sinuses",   "Lectures + ENT OPD",                 "ENT MCQs",                             "PSM – Nutrition & national programs"),
            ("Thursday",  "PSM – National Health Programs",   "Ward posting – General Surgery",     "Surgery – short notes",                "Ophthalmology – Squint & Refraction"),
            ("Friday",    "Clinical case writing",            "OBG posting / Ante-natal clinic",    "OBG – Obstetrics revision",            "ENT + Ophthalmology combined MCQs"),
            ("Saturday",  "PSM mock test / data practice",    "Lectures / Skill lab",               "Long case practice (Medicine)",        "Weekly weak-topic revision"),
            ("Sunday",    "Rest",                             "—  (No college)",                    "Ophthalmology or ENT chapter",         "Plan + case study review"),
        ],
        "tips": [
            "PSM: Park's Textbook of PSM. Numbers & statistics are high-yield for exams.",
            "Ophthalmology: Khurana. Always correlate with OPD findings.",
            "ENT: PL Dhingra. Draw diagrams of ear, nose, larynx regularly.",
            "Clinical postings: Write at least 2 long cases per week per specialty.",
            "Start OSCE preparation from this year itself.",
        ],
    },
    "Final Year (Phase III Part 2)": {
        "duration": "12 months",
        "subjects": ["General Medicine", "General Surgery", "Obs & Gynaecology", "Paediatrics", "Orthopaedics", "Radiology", "Anaesthesia", "Dermatology", "Psychiatry"],
        "exam": "Final MBBS (University Exam + Internship)",
        "schedule": [
            ("Monday",    "Medicine – Cardiology cases",      "Ward posting – Medicine",            "Medicine – Harrison's / Davidson",     "Surgery – Applied anatomy revision"),
            ("Tuesday",   "Surgery – GI Surgery",             "Ward posting – Surgery",             "Surgery cases + MCQs",                 "OBG – Antenatal care & complications"),
            ("Wednesday", "OBG – Obstetric emergencies",      "OBG ward / Labour room",             "OBG Revision + Operative notes",       "Paediatrics – Neonatal care"),
            ("Thursday",  "Paediatrics – Growth & Dev.",      "Paediatrics ward posting",           "Paediatrics MCQs (Ghai / Nelson)",     "Medicine – Neurology revision"),
            ("Friday",    "Orthopaedics + Radiology",         "Orthopaedics / Radiology posting",   "X-ray reading practice",               "Dermatology + Psychiatry quick notes"),
            ("Saturday",  "Grand round / Clinical exam prep", "Half-day posting / Skill lab",       "Long case + short case practice",      "Previous year paper solving"),
            ("Sunday",    "Rest & recuperation",              "—  (No college)",                    "Rapid revision – 1 subject",           "Plan + Internship preparation"),
        ],
        "tips": [
            "Medicine: Harrison's + Davidson + Kumar & Clark. Focus on clinical presentations.",
            "Surgery: Bailey & Love + SRB. Master surgical anatomy & operative surgery.",
            "OBG: Dutta Obstetrics + Shaw's Gynaecology. Labour room postings are priceless.",
            "Paediatrics: Ghai / Nelson. Growth charts, vaccines, neonatal emergencies are musts.",
            "Practice at least 2 long cases + 4 short cases daily in the last 3 months.",
            "Attempt previous 5 years' university papers under timed conditions.",
        ],
    },
}

year_fills = {
    "1st Year (Phase I)":              PatternFill("solid", fgColor="4472C4"),
    "2nd Year (Phase II)":             PatternFill("solid", fgColor="70AD47"),
    "3rd Year (Phase III Part 1)":     PatternFill("solid", fgColor="ED7D31"),
    "Final Year (Phase III Part 2)":   PatternFill("solid", fgColor="7030A0"),
}

for year_name, data in year_data.items():
    ws = wb.create_sheet(year_name[:15].rstrip())   # sheet names max 31 chars
    ws.freeze_panes = "B5"

    hfill = year_fills[year_name]

    # Column widths
    ws.column_dimensions["A"].width = 12
    ws.column_dimensions["B"].width = 30
    ws.column_dimensions["C"].width = 32
    ws.column_dimensions["D"].width = 30
    ws.column_dimensions["E"].width = 30

    # Row 1 – title
    ws.row_dimensions[1].height = 36
    ws.merge_cells("A1:E1")
    t = ws.cell(row=1, column=1,
        value=f"MBBS {year_name}  |  Weekly Study Schedule  |  Exam: {data['exam']}")
    t.fill = hfill; t.font = TITLE_FONT; t.alignment = CENTER; t.border = thick_border()

    # Row 2 – subjects
    ws.row_dimensions[2].height = 20
    ws.merge_cells("A2:E2")
    s2 = ws.cell(row=2, column=1,
        value="Subjects: " + "  |  ".join(data["subjects"]) + f"   (Duration: {data['duration']})")
    s2.fill = SUBHDR_FILL; s2.font = WHITE_FONT; s2.alignment = CENTER

    # Row 3 – blank spacer
    ws.row_dimensions[3].height = 6

    # Row 4 – column headers
    ws.row_dimensions[4].height = 22
    col_headers = ["Day", "Pre-College Self-Study\n(06:00–07:30)", "College Focus\n(08:00–16:00)", "Evening Self-Study 1\n(16:30–18:30)", "Evening Self-Study 2\n(19:45–21:15)"]
    for ci, ch in enumerate(col_headers, 1):
        c = ws.cell(row=4, column=ci, value=ch)
        c.fill = hfill; c.font = WHITE_FONT; c.alignment = CENTER; c.border = thin_border()

    # Data rows
    for ri, (day, pre, col_focus, eve1, eve2) in enumerate(data["schedule"], 5):
        ws.row_dimensions[ri].height = 34
        is_sunday = day == "Sunday"
        day_fill  = SUNDAY_FILL if is_sunday else DAY_FILL
        body_fill = SUNDAY_FILL if is_sunday else ALT_ROW_FILL

        cell(ws, ri, 1, day,       fill=day_fill,  font=BOLD_FONT)
        cell(ws, ri, 2, pre,       fill=SELF_FILL if not is_sunday else SUNDAY_FILL,    font=NORMAL_FONT, align=LEFT)
        cell(ws, ri, 3, col_focus, fill=COLLEGE_FILL if not is_sunday else SUNDAY_FILL, font=NORMAL_FONT, align=LEFT)
        cell(ws, ri, 4, eve1,      fill=SELF_FILL if not is_sunday else SUNDAY_FILL,    font=NORMAL_FONT, align=LEFT)
        cell(ws, ri, 5, eve2,      fill=SELF_FILL if not is_sunday else SUNDAY_FILL,    font=NORMAL_FONT, align=LEFT)

    # Tips section
    tip_start = len(data["schedule"]) + 6
    ws.row_dimensions[tip_start].height = 22
    ws.merge_cells(f"A{tip_start}:E{tip_start}")
    tp = ws.cell(row=tip_start, column=1, value=f"STUDY TIPS FOR {year_name.upper()}")
    tp.fill = hfill; tp.font = WHITE_FONT; tp.alignment = CENTER; tp.border = thick_border()

    for ti, tip in enumerate(data["tips"], tip_start + 1):
        ws.row_dimensions[ti].height = 20
        ws.merge_cells(f"A{ti}:E{ti}")
        tc = ws.cell(row=ti, column=1, value=f"✓  {tip}")
        tc.fill = ALT_ROW_FILL if ti % 2 == 0 else PatternFill("solid", fgColor="EBF3FB")
        tc.font = SMALL_FONT; tc.alignment = LEFT; tc.border = thin_border()

# ════════════════════════════════════════════════════════════════
# SHEET 7 – EXAM COUNTDOWN / REVISION STRATEGY
# ════════════════════════════════════════════════════════════════
ws7 = wb.create_sheet("Revision Strategy")
ws7.freeze_panes = "A4"

ws7.column_dimensions["A"].width = 22
ws7.column_dimensions["B"].width = 38
ws7.column_dimensions["C"].width = 38

ws7.row_dimensions[1].height = 36
merge_title(ws7, 1, 1, 3, "MBBS EXAM REVISION STRATEGY  |  Final 3-Month Countdown")

ws7.row_dimensions[2].height = 18
ws7.merge_cells("A2:C2")
r2 = ws7.cell(row=2, column=1, value="Adapt this for each Professional exam. Consistency > Intensity.")
r2.fill = SUBHDR_FILL; r2.font = WHITE_FONT; r2.alignment = CENTER

ws7.row_dimensions[3].height = 22
for ci, ch in enumerate(["Phase", "Focus", "Strategy"], 1):
    cell(ws7, 3, ci, ch, fill=HEADER_FILL, font=WHITE_FONT)

rev_rows = [
    ("3 Months Before", "Complete syllabus coverage",
     "Finish all chapters. No new topics after this. Target: 1st reading complete."),
    ("2 Months Before", "1st revision + MCQ banks",
     "Revise all subjects once. Start MCQ practice (Across, Amit Ashish). 100 MCQs/day."),
    ("6 Weeks Before", "2nd revision + Previous papers",
     "Solve last 5 years' papers. Identify repeated topics. Revise those 3×."),
    ("1 Month Before", "Grand revision + Mock tests",
     "Full subject revision in 2 days each. Attempt 3 full mock tests per week."),
    ("2 Weeks Before", "High-yield rapid revision",
     "Focus on diagrams, tables, mnemonics, important drug doses, IPC sections."),
    ("1 Week Before", "Light revision + confidence",
     "Only previously made notes. No new material. Sleep 7–8 hrs. Avoid panic."),
    ("Exam Day", "Execution",
     "Read question fully. Attempt all. Time management: 1 min per MCQ, 10–12 min per long Q."),
]

for ri, (phase, focus, strat) in enumerate(rev_rows, 4):
    ws7.row_dimensions[ri].height = 40
    cell(ws7, ri, 1, phase,  fill=DAY_FILL,   font=BOLD_FONT)
    cell(ws7, ri, 2, focus,  fill=SELF_FILL,  font=NORMAL_FONT, align=LEFT)
    cell(ws7, ri, 3, strat,  fill=COLLEGE_FILL, font=SMALL_FONT, align=LEFT)

# ── Save ────────────────────────────────────────────────────────
out_path = "/home/daytona/workspace/mbbs-schedule/MBBS_Study_Schedule.xlsx"
wb.save(out_path)
print(f"Saved: {out_path}")
Running Command

python3 /home/daytona/workspace/mbbs-schedule/create_schedule.py

Editing File

~/mbbs-schedule/create_schedule.py

Successfully replaced 1 instance(s) of the string in '/home/daytona/workspace/mbbs-schedule/create_schedule.py'
Running Command

python3 /home/daytona/workspace/mbbs-schedule/create_schedule.py

Running Command

ls -la /home/daytona/workspace/mbbs-schedule/ && stat /home/daytona/workspace/

Your MBBS Study Schedule is ready! Download it here:

MBBS Study Schedule

Spreadsheet · XLSX


What's Inside (7 Sheets)

SheetContents
Daily TemplateUniversal hour-by-hour plan for any MBBS day
Weekly PlannerBlank Mon-Sun grid to fill in your own subjects
1st Year (Phase I)Anatomy, Physiology, Biochemistry weekly plan
2nd Year (Phase II)Pathology, Pharmacology, Microbiology, FMT
3rd Year (Phase III Part 1)Ophthalmology, ENT, PSM, Clinical postings
Final Year (Phase III Part 2)Medicine, Surgery, OBG, Paediatrics, all rotations
Revision Strategy3-month exam countdown plan

The Core Daily Structure (8-hr College Day)

TimeBlockHours
06:00 – 07:30Pre-college self-study1.5 hrs
08:00 – 16:00College (lectures + practicals + tutorials)8 hrs
16:30 – 18:30Evening self-study Block 12 hrs
19:45 – 21:15Evening self-study Block 21.5 hrs
22:00 – 05:00Sleep7 hrs
Total study~13 hrs

Key principles baked into the schedule:
  • Sunday is a consolidation + rest day, not a zero day
  • Each year's sheet includes recommended textbooks and year-specific study tips
  • Colour coding: green = college time, amber = self-study, grey = breaks/sleep, peach = Sunday
  • The revision strategy sheet uses a countdown framework from 3 months before exams down to exam day

Like I said, I will be starting my first year MA, BS with a good flow, not very tough, like 13 hours to 14 hours study sessions every day. Just make it... Uh. Session with one hour. Study session before college. And after college, two hours. Well, I can start in this way that I don't put too much pressure on myself and start, and we will slightly increase the time in the second year, third year, fourth year.

Writing File

~/mbbs-schedule/create_schedule_v2.py

import openpyxl
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
from openpyxl.utils import get_column_letter
import shutil

wb = openpyxl.Workbook()

# ── Colours ──────────────────────────────────────────────────────
NAVY        = PatternFill("solid", fgColor="1F4E79")
MID_BLUE    = PatternFill("solid", fgColor="2E75B6")
COLLEGE_F   = PatternFill("solid", fgColor="D9EAD3")   # green  – college
SELF_F      = PatternFill("solid", fgColor="FFF2CC")   # amber  – self-study
BREAK_F     = PatternFill("solid", fgColor="F2F2F2")   # grey   – break/sleep
SUNDAY_F    = PatternFill("solid", fgColor="FCE4D6")   # peach  – Sunday
ALT_F       = PatternFill("solid", fgColor="F4F9FF")   # light blue alt row

Y1_HDR  = PatternFill("solid", fgColor="4472C4")   # blue
Y2_HDR  = PatternFill("solid", fgColor="70AD47")   # green
Y3_HDR  = PatternFill("solid", fgColor="ED7D31")   # orange
Y4_HDR  = PatternFill("solid", fgColor="7030A0")   # purple

WHITE_B = Font(name="Arial", bold=True, color="FFFFFF", size=11)
WHITE_T = Font(name="Arial", bold=True, color="FFFFFF", size=14)
BOLD    = Font(name="Arial", bold=True, size=10)
NORM    = Font(name="Arial", size=10)
SM      = Font(name="Arial", size=9)

C = Alignment(horizontal="center", vertical="center", wrap_text=True)
L = Alignment(horizontal="left",   vertical="center", wrap_text=True)

def tb(): s=Side(style="thin",color="B0B0B0"); return Border(left=s,right=s,top=s,bottom=s)
def mb(): s=Side(style="medium",color="2E75B6"); return Border(left=s,right=s,top=s,bottom=s)

def c(ws, r, col, val="", fill=None, font=None, align=C):
    x = ws.cell(row=r, column=col, value=val)
    if fill: x.fill = fill
    x.font = font or NORM
    x.alignment = align
    x.border = tb()
    return x

def title_row(ws, r, sc, ec, val, fill, font=WHITE_T):
    ws.merge_cells(start_row=r,start_column=sc,end_row=r,end_column=ec)
    x = ws.cell(row=r, column=sc, value=val)
    x.fill=fill; x.font=font; x.alignment=C; x.border=mb()
    return x

def sub_row(ws, r, sc, ec, val):
    ws.merge_cells(start_row=r,start_column=sc,end_row=r,end_column=ec)
    x = ws.cell(row=r, column=sc, value=val)
    x.fill=MID_BLUE; x.font=WHITE_B; x.alignment=C; x.border=tb()
    return x

# ════════════════════════════════════════════════════════════════
# Progressive self-study model
# ════════════════════════════════════════════════════════════════
# Year → (pre_label, pre_time, post_label, post_time, total_self, note)
progression = {
    "1st Year": ("Pre-College Study",  "07:00–08:00  (1 hr)",
                 "Post-College Study", "16:30–18:30  (2 hrs)",
                 "3 hrs / day",
                 "Start light. Build the habit, not the hours."),
    "2nd Year": ("Pre-College Study",  "06:45–08:00  (1.5 hrs)",
                 "Post-College Study", "16:30–19:30  (3 hrs)",
                 "4.5 hrs / day",
                 "Habit is set. Add 30 min pre + 1 hr post versus Year 1."),
    "3rd Year": ("Pre-College Study",  "06:30–08:00  (1.5 hrs)",
                 "Post-College Study", "16:30–20:30  (4 hrs)",
                 "5.5 hrs / day",
                 "Clinical postings demand sharper preparation."),
    "Final Year":("Pre-College Study", "06:00–08:00  (2 hrs)",
                 "Post-College Study", "16:30–21:30  (5 hrs)",
                 "7 hrs / day",
                 "Peak intensity. Long cases, past papers, mock tests daily."),
}

# ════════════════════════════════════════════════════════════════
# SHEET 1 – OVERVIEW / PROGRESSION TABLE
# ════════════════════════════════════════════════════════════════
ws0 = wb.active
ws0.title = "Overview"
ws0.freeze_panes = "A4"

for col, w in zip("ABCDEF", [18, 28, 28, 18, 20, 38]):
    ws0.column_dimensions[col].width = w

ws0.row_dimensions[1].height = 40
title_row(ws0, 1, 1, 6, "MBBS PROGRESSIVE STUDY PLAN  |  Gradual Build-Up Across 4.5 Years", NAVY)

ws0.row_dimensions[2].height = 20
sub_row(ws0, 2, 1, 6,
    "Year 1: Habit-building  →  Year 2: Consolidation  →  Year 3: Clinical depth  →  Final: Peak performance")

ws0.row_dimensions[3].height = 22
for ci, hdr in enumerate(["Year","Pre-College","Post-College","Self-Study/Day","College Hours","Total Day"], 1):
    c(ws0, 3, ci, hdr, fill=NAVY, font=WHITE_B)

fills = [Y1_HDR, Y2_HDR, Y3_HDR, Y4_HDR]
pre_times  = ["1 hr",   "1.5 hrs", "1.5 hrs", "2 hrs"]
post_times = ["2 hrs",  "3 hrs",   "4 hrs",   "5 hrs"]
self_tot   = ["3 hrs",  "4.5 hrs", "5.5 hrs", "7 hrs"]
notes      = ["Start easy, build routine",
               "Add 1.5 hrs vs Year 1",
               "Clinical pressure rises",
               "Max effort for finals"]

for ri, (yr, pre, post, st, note, f) in enumerate(
        zip(["1st Year","2nd Year","3rd Year","Final Year"],
            pre_times, post_times, self_tot, notes, fills), 4):
    ws0.row_dimensions[ri].height = 26
    day_f = ALT_F if ri % 2 == 0 else None
    c(ws0, ri, 1, yr,      fill=f,      font=Font(name="Arial",bold=True,color="FFFFFF",size=10))
    c(ws0, ri, 2, pre,     fill=SELF_F, font=BOLD)
    c(ws0, ri, 3, post,    fill=SELF_F, font=BOLD)
    c(ws0, ri, 4, st,      fill=ALT_F,  font=BOLD)
    c(ws0, ri, 5, "8 hrs", fill=COLLEGE_F, font=BOLD)
    c(ws0, ri, 6, note,    fill=day_f,  font=NORM, align=L)

# key principles
ws0.row_dimensions[9].height = 10
ws0.row_dimensions[10].height = 22
title_row(ws0, 10, 1, 6, "GOLDEN RULES OF THIS PLAN", NAVY, WHITE_B)

principles = [
    "1.  Consistency beats intensity — 3 focused hours every day > 10 hours once a week.",
    "2.  Pre-college hour = REVISION only. Review yesterday's notes, not new material.",
    "3.  Post-college block = NEW learning first (1 hr), then revision of today's college topics (1 hr).",
    "4.  No all-nighters in Year 1. Your brain consolidates memory during sleep.",
    "5.  Every Sunday = review week's topics + plan next week. Never a zero day.",
    "6.  Increase study time only when the current schedule feels comfortable for 3+ weeks.",
    "7.  MCQ practice starts from Month 3 of Year 1 — not after finishing the syllabus.",
]
for pi, p in enumerate(principles, 11):
    ws0.row_dimensions[pi].height = 22
    ws0.merge_cells(f"A{pi}:F{pi}")
    x = ws0.cell(row=pi, column=1, value=p)
    x.fill = ALT_F if pi%2==0 else PatternFill("solid", fgColor="EBF3FB")
    x.font = NORM; x.alignment = L; x.border = tb()

# ════════════════════════════════════════════════════════════════
# Helper: build one year's daily schedule sheet
# ════════════════════════════════════════════════════════════════
def make_year_sheet(name, hdr_fill, daily_rows, subject_plan, tips,
                    pre_label, pre_time, post_label, post_time, self_total):

    ws = wb.create_sheet(name)
    ws.freeze_panes = "B5"

    for col, w in zip("ABCDE", [12, 32, 30, 30, 34]):
        ws.column_dimensions[col].width = w

    # Title
    ws.row_dimensions[1].height = 38
    title_row(ws, 1, 1, 5,
        f"MBBS {name}  |  Daily Schedule  |  Self-Study: {self_total}  |  College: 8 hrs",
        hdr_fill)

    # Sub-header with times
    ws.row_dimensions[2].height = 20
    sub_row(ws, 2, 1, 5,
        f"{pre_label}: {pre_time}   |   College: 08:00–16:00 (8 hrs)   |   {post_label}: {post_time}")

    # Spacer
    ws.row_dimensions[3].height = 8

    # Column headers
    ws.row_dimensions[4].height = 24
    for ci, hdr in enumerate(["Time","Activity","Details / Subject","Days","Notes"], 1):
        c(ws, 4, ci, hdr, fill=hdr_fill, font=WHITE_B)

    # Daily rows
    for ri, row in enumerate(daily_rows, 5):
        ws.row_dimensions[ri].height = 30
        time_val, act, detail, days, notes_val = row
        is_col  = "College" in act
        is_self = "Study" in act or "Revision" in act
        is_brk  = not is_col and not is_self
        row_f = COLLEGE_F if is_col else (SELF_F if is_self else BREAK_F)
        c(ws, ri, 1, time_val,   fill=row_f, font=BOLD)
        c(ws, ri, 2, act,        fill=row_f, font=BOLD if (is_col or is_self) else NORM)
        c(ws, ri, 3, detail,     fill=row_f, font=NORM, align=L)
        c(ws, ri, 4, days,       fill=row_f, font=NORM)
        c(ws, ri, 5, notes_val,  fill=row_f, font=SM,   align=L)

    last_daily = len(daily_rows) + 5

    # Subject weekly plan sub-section
    sp_start = last_daily + 1
    ws.row_dimensions[sp_start].height = 24
    title_row(ws, sp_start, 1, 5, f"WEEKLY SUBJECT ROTATION — {name}", hdr_fill, WHITE_B)

    ws.row_dimensions[sp_start+1].height = 22
    for ci, hdr in enumerate(["Day","Pre-College (Revise)","College Focus","Post-Study Block 1","Post-Study Block 2"], 1):
        c(ws, sp_start+1, ci, hdr, fill=hdr_fill, font=WHITE_B)

    for ri, row in enumerate(subject_plan, sp_start+2):
        ws.row_dimensions[ri].height = 32
        day_name = row[0]
        is_sun = day_name == "Sunday"
        df = SUNDAY_F if is_sun else ALT_F
        sf = SUNDAY_F if is_sun else SELF_F
        cf = SUNDAY_F if is_sun else COLLEGE_F
        c(ws, ri, 1, row[0], fill=df, font=BOLD)
        c(ws, ri, 2, row[1], fill=sf, font=NORM, align=L)
        c(ws, ri, 3, row[2], fill=cf, font=NORM, align=L)
        c(ws, ri, 4, row[3], fill=sf, font=NORM, align=L)
        c(ws, ri, 5, row[4], fill=sf, font=NORM, align=L)

    # Tips
    tip_start = sp_start + 2 + len(subject_plan) + 1
    ws.row_dimensions[tip_start].height = 24
    title_row(ws, tip_start, 1, 5, f"STUDY TIPS — {name}", hdr_fill, WHITE_B)
    for ti, tip in enumerate(tips, tip_start+1):
        ws.row_dimensions[ti].height = 20
        ws.merge_cells(f"A{ti}:E{ti}")
        x = ws.cell(row=ti, column=1, value=f"✓  {tip}")
        x.fill = ALT_F if ti%2==0 else PatternFill("solid",fgColor="EBF3FB")
        x.font = SM; x.alignment = L; x.border = tb()

# ════════════════════════════════════════════════════════════════
# YEAR 1  — 1 hr pre  +  2 hrs post  =  3 hrs self-study
# ════════════════════════════════════════════════════════════════
y1_daily = [
    ("05:30–06:00", "Wake-up & Morning Routine", "Freshen up, light stretch, breakfast prep", "Mon–Sun", "No phone for first 20 min"),
    ("06:00–07:00", "Pre-College Revision (1 hr)", "Revise yesterday's Anatomy / Physiology / Biochem notes", "Mon–Sat", "Active recall only — close book, write what you remember"),
    ("07:00–08:00", "Breakfast & Commute", "Eat well; light review or podcast", "Mon–Sat", "Don't skip breakfast — long college day ahead"),
    ("08:00–10:00", "College – Lectures Block 1", "Anatomy / Physiology / Biochemistry as per timetable", "Mon–Sat", "Take neat notes; circle doubts in red"),
    ("10:00–10:15", "Short Break", "Hydrate, stretch", "Mon–Sat", ""),
    ("10:15–12:15", "College – Practicals / Dissection", "Anatomy dissection OR Physiology/Biochem practical", "Mon–Sat", "Observe carefully; sketch what you see"),
    ("12:15–13:00", "Lunch Break", "Eat & rest", "Mon–Sat", "Short walk if possible; rest eyes"),
    ("13:00–15:00", "College – Lectures Block 2", "Continued lectures + tutorial / seminar", "Mon–Sat", "Afternoon drowsiness is real — sit in front"),
    ("15:00–16:00", "College – Tutorial / Viva Prep", "Small group session or question hour", "Mon–Sat", "Ask at least 1 doubt per session"),
    ("16:00–16:30", "College Ends / Snack Break", "Light snack, decompress", "Mon–Sat", "Don't open books yet — short mental break"),
    ("16:30–17:30", "Post-College Study Block 1 (1 hr)", "Consolidate TODAY's college topics", "Mon–Fri", "Re-read notes → summarise in your own words"),
    ("17:30–18:30", "Post-College Study Block 2 (1 hr)", "Read ONE new topic / chapter section", "Mon–Fri", "Keep it to 1 topic max — don't overload"),
    ("18:30–19:15", "Break / Physical Activity", "Walk, sport, family time", "Mon–Sun", "This is NOT optional — your brain needs it"),
    ("19:15–20:00", "Dinner & Wind Down", "Eat, relax, light conversation", "Mon–Sun", "No heavy study post-dinner in Year 1"),
    ("20:00–21:00", "Light Review (Optional on weekdays)", "Quick flashcard review or diagrams", "Mon–Fri", "Only if you have energy. Skip if tired."),
    ("21:00–22:00", "Personal time + Planning", "Plan tomorrow's pre-study topic; journaling", "Mon–Sun", "Write 2 goals for tomorrow — nothing more"),
    ("22:00–05:30", "Sleep", "7.5 hrs sleep", "Mon–Sun", "Non-negotiable. Memory consolidation happens here."),
]

# Saturday is half-day college, Sunday no college
y1_daily_sat = [
    ("16:00–16:30", "Snack Break", "", "Saturday", ""),
    ("16:30–18:30", "Saturday Extra Study (2 hrs)", "Use this to catch up on the week's weak topics", "Saturday", "No new topics — only revision"),
]

y1_daily[10] = ("16:30–17:30", "Post-College Study Block 1 (1 hr)", "Consolidate TODAY's college topics", "Mon–Sat", "Re-read notes → summarise in your own words")
y1_daily[11] = ("17:30–18:30", "Post-College Study Block 2 (1 hr)", "Read ONE new topic / chapter section", "Mon–Sat", "Keep to 1 topic — don't overload. Sat: use for weekly catch-up")

y1_subjects = [
    ("Monday",    "Anatomy – review yesterday",        "Lectures + Dissection (Anatomy)",        "Anatomy notes consolidation",          "Physiology – new topic (e.g. cell physiology)"),
    ("Tuesday",   "Physiology – review yesterday",     "Lectures + Physiology Practical",        "Physiology consolidation",             "Biochemistry – new topic (e.g. carbohydrates)"),
    ("Wednesday", "Biochemistry – review yesterday",   "Lectures + Biochemistry Practical",      "Biochemistry consolidation",           "Anatomy – Histology reading"),
    ("Thursday",  "Anatomy – Histology review",        "Lectures + Dissection (Anatomy)",        "Anatomy drawings + diagrams",          "Physiology – new topic (e.g. nerve physiology)"),
    ("Friday",    "Physiology – review yesterday",     "Lectures + Practicals",                  "Physiology MCQs (5–10 Qs)",            "Biochemistry – metabolic pathway reading"),
    ("Saturday",  "Weak topic of the week (revise)",   "Half-day lectures",                      "Catch-up: any missed topic this week", "Draw 2 diagrams from memory (Anatomy/Biochem)"),
    ("Sunday",    "Rest – no pre-study needed",        "NO COLLEGE",                             "Light review: skim week's notes (1 hr)","Plan next week's pre-study topics"),
]

y1_tips = [
    "Pre-college 1 hour = REVISION only. Look at yesterday's notes, test yourself, close the book.",
    "Post-college 2 hours: first hour = today's topics, second hour = one new section. Never more.",
    "Anatomy: Focus on understanding structures. BD Chaurasia Vol 1 to start. Dissection hall is your lab.",
    "Physiology: Understand how things work. Ganong or Guyton. Draw diagrams of mechanisms.",
    "Biochemistry: Harper's / Lippincott. Draw metabolic pathways — don't just read them.",
    "Do NOT study after 9 PM in Year 1. Sleep is when memory forms. Protect it.",
    "Start 5-10 MCQs per subject per week from Month 3. Not before.",
    "If you miss a day, don't try to double up the next day. Just continue normally.",
]

make_year_sheet(
    "1st Year", Y1_HDR, y1_daily, y1_subjects, y1_tips,
    "Pre-College Revision", "07:00–08:00  (1 hr)",
    "Post-College Study", "16:30–18:30  (2 hrs)",
    "3 hrs / day"
)

# ════════════════════════════════════════════════════════════════
# YEAR 2  — 1.5 hrs pre  +  3 hrs post  =  4.5 hrs self-study
# ════════════════════════════════════════════════════════════════
y2_daily = [
    ("05:30–06:00", "Wake-up & Morning Routine",       "Freshen up, stretch, breakfast prep",    "Mon–Sun", "Consistent wake time is key"),
    ("06:00–07:30", "Pre-College Revision (1.5 hrs)",  "Revise Path / Pharma / Micro / FMT notes","Mon–Sat","Active recall + flashcards; 30 min per subject rotation"),
    ("07:30–08:00", "Breakfast & Commute",             "Eat well; light review",                 "Mon–Sat", ""),
    ("08:00–10:00", "College – Lectures Block 1",      "As per timetable (Pathology / Pharmacology / Micro / FMT)", "Mon–Sat", "Note mnemonics; mark high-yield topics"),
    ("10:00–10:15", "Short Break",                     "Hydrate",                                "Mon–Sat", ""),
    ("10:15–12:15", "College – Practicals",            "Pathology slides / Pharma / Micro Lab",  "Mon–Sat", "Study slides carefully; draw what you see"),
    ("12:15–13:00", "Lunch Break",                     "Rest",                                   "Mon–Sat", ""),
    ("13:00–15:00", "College – Lectures Block 2",      "Continued lectures",                     "Mon–Sat", ""),
    ("15:00–16:00", "College – Tutorial / Seminar",    "Group teaching or viva practice",        "Mon–Sat", "Attempt answers before checking"),
    ("16:00–16:30", "College Ends / Snack",            "Brief break",                            "Mon–Sat", ""),
    ("16:30–17:30", "Post-Study Block 1 (1 hr)",       "Consolidate TODAY's college topics",     "Mon–Sat", "Re-read + summarise"),
    ("17:30–18:30", "Post-Study Block 2 (1 hr)",       "New chapter section",                    "Mon–Sat", "One topic at a time"),
    ("18:30–19:00", "Break / Exercise",                "Physical activity",                      "Mon–Sun", "Do not skip"),
    ("19:00–19:45", "Dinner",                          "Eat, relax",                             "Mon–Sun", ""),
    ("19:45–21:15", "Post-Study Block 3 (1.5 hrs)",    "MCQ practice OR weak topic revision",    "Mon–Fri", "20 MCQs/day from Month 2 onward"),
    ("21:15–21:45", "Planning & Wind Down",            "Review tomorrow's plan",                 "Mon–Sun", ""),
    ("22:00–05:30", "Sleep",                           "7.5 hrs",                                "Mon–Sun", "Non-negotiable"),
]

y2_subjects = [
    ("Monday",    "Pathology – review yesterday",      "Lectures + Pathology Practical",         "Pathology consolidation + diagrams",   "Pharmacology – new drug class"),
    ("Tuesday",   "Pharmacology – review yesterday",   "Lectures + Pharmacology Practical",      "Pharma MCQs (20 Qs)",                  "Microbiology – new topic"),
    ("Wednesday", "Microbiology – review yesterday",   "Lectures + Micro Practical",             "Micro consolidation",                  "Pathology – new systemic topic"),
    ("Thursday",  "FMT – review yesterday",            "Lectures + FMT classes",                 "FMT consolidation + IPC sections",     "Pharmacology – drug comparison tables"),
    ("Friday",    "Pathology – systemic review",       "Lectures + Practicals",                  "Pathology MCQs",                       "Microbiology – virology reading"),
    ("Saturday",  "Weak topic of the week",            "Half-day lectures",                      "Pharma + Micro combined MCQs (30 Qs)", "FMT previous year questions"),
    ("Sunday",    "Rest – no alarm",                   "NO COLLEGE",                             "Light review: week's summary notes",   "Plan next week; update flashcards"),
]

y2_tips = [
    "You've built the habit in Year 1. Now add 30 min pre + 1 hr post vs Year 1.",
    "Pathology: Robbins (Big) + Harsh Mohan. Understand pathogenesis — don't memorise blindly.",
    "Pharmacology: KD Tripathi. Make drug comparison tables. These save you in exams.",
    "Microbiology: Ananthanarayan. Use mnemonics for organism features and culture media.",
    "FMT: Reddy's. IPC sections (299–326) must be memorised. High-yield in exams.",
    "20 MCQs per day per subject from Month 2. Use Across or Amit Ashish.",
    "Start correlating with OPD cases — ask your seniors about real patient cases.",
    "Saturday catch-up block is important — don't skip it for social activities during exam months.",
]

make_year_sheet(
    "2nd Year", Y2_HDR, y2_daily, y2_subjects, y2_tips,
    "Pre-College Revision", "06:00–07:30  (1.5 hrs)",
    "Post-College Study", "16:30–21:15  (3 hrs in 3 blocks)",
    "4.5 hrs / day"
)

# ════════════════════════════════════════════════════════════════
# YEAR 3  — 1.5 hrs pre  +  4 hrs post  =  5.5 hrs self-study
# ════════════════════════════════════════════════════════════════
y3_daily = [
    ("05:15–05:45", "Wake-up & Morning Routine",        "Freshen up, stretch",                   "Mon–Sun", ""),
    ("05:45–07:15", "Pre-College Study (1.5 hrs)",      "PSM data/stats OR Ophthalmology/ENT chapter", "Mon–Sat","New reading + revise previous day"),
    ("07:15–08:00", "Breakfast & Commute",              "",                                      "Mon–Sat", ""),
    ("08:00–16:00", "College – Lectures + Postings",    "PSM / Ophthalmology / ENT + Ward posting (Medicine / Surgery / OBG)", "Mon–Sat","Write clinical case notes during postings"),
    ("16:00–16:30", "College Ends / Snack",             "",                                      "Mon–Sat", ""),
    ("16:30–17:30", "Post-Study Block 1 (1 hr)",        "Consolidate today's clinical posting notes", "Mon–Sat","Write 1 case summary per posting"),
    ("17:30–18:30", "Post-Study Block 2 (1 hr)",        "PSM chapter / Ophthalmology / ENT new topic","Mon–Sat","Rotate subjects daily"),
    ("18:30–19:00", "Break / Exercise",                 "Walk or sport",                         "Mon–Sun", ""),
    ("19:00–19:45", "Dinner",                           "",                                      "Mon–Sun", ""),
    ("19:45–21:00", "Post-Study Block 3 (1.25 hrs)",    "MCQ practice — PSM numerics + Ophth/ENT","Mon–Fri","30–40 MCQs per day"),
    ("21:00–21:45", "Post-Study Block 4 (45 min)",      "Long/short case reading (Medicine/Surgery)","Mon–Fri","Clinically oriented reading"),
    ("21:45–22:15", "Planning + Wind Down",             "Prep tomorrow's pre-study",             "Mon–Sun", ""),
    ("22:30–05:15", "Sleep",                            "6.75 hrs",                              "Mon–Sun", "Try not to go below 6.5 hrs"),
]

y3_subjects = [
    ("Monday",    "PSM – Epidemiology concepts",         "Medicine ward posting + Lectures",      "Medicine short case reading",          "PSM numerics practice (10 Qs)"),
    ("Tuesday",   "Ophthalmology – yesterday's chapter", "ENT OPD + Lectures",                   "ENT consolidation",                    "Ophthalmology MCQs (20 Qs)"),
    ("Wednesday", "ENT – yesterday's chapter",           "Surgery ward posting + Lectures",       "Surgery case notes",                   "PSM national programs revision"),
    ("Thursday",  "PSM – National Health Programs",      "OBG ward / antenatal clinic",           "OBG obstetric notes",                  "ENT diagrams + MCQs (20 Qs)"),
    ("Friday",    "Medicine – clinical revision",        "Ophthalmology OPD + Lectures",          "Ophthalmology + ENT combined MCQs",    "PSM previous year data questions"),
    ("Saturday",  "Weak topic of the week",              "Half-day + Skill lab",                  "Mock test (1 subject)",                "Long case writing practice"),
    ("Sunday",    "Rest – sleep in if needed",           "NO COLLEGE",                            "Light revision: 1 chapter any subject","Plan week + OSCE prep 30 min"),
]

y3_tips = [
    "PSM: Park's textbook. Numbers and statistics are extremely high-yield. Practice calculations weekly.",
    "Ophthalmology: Khurana. Always relate what you read to what you see in OPD.",
    "ENT: PL Dhingra. Draw the ear, nose and larynx from memory every week.",
    "Clinical postings: Write at least 2 case summaries per week per specialty. Quality over quantity.",
    "Start OSCE preparation now — clinical skills are tested from 3rd year onward.",
    "Medicine: Kumar & Clark for clinical correlations. Don't neglect it even though it's not your exam subject yet.",
    "40 MCQs per day minimum. Track your accuracy by subject in a notebook.",
]

make_year_sheet(
    "3rd Year", Y3_HDR, y3_daily, y3_subjects, y3_tips,
    "Pre-College Study", "05:45–07:15  (1.5 hrs)",
    "Post-College Study", "16:30–21:45  (4 hrs in 4 blocks)",
    "5.5 hrs / day"
)

# ════════════════════════════════════════════════════════════════
# FINAL YEAR  — 2 hrs pre  +  5 hrs post  =  7 hrs self-study
# ════════════════════════════════════════════════════════════════
fy_daily = [
    ("05:00–05:30", "Wake-up & Morning Routine",         "Freshen up",                            "Mon–Sun", ""),
    ("05:30–07:30", "Pre-College Study (2 hrs)",         "Medicine / Surgery / OBG / Paeds rotation — new chapter", "Mon–Sat","2 hrs focused reading. Alternate subjects daily."),
    ("07:30–08:00", "Breakfast & Commute",               "",                                      "Mon–Sat", ""),
    ("08:00–16:00", "College – Lectures + Ward Postings","Medicine / Surgery / OBG / Paeds / Ortho / Radio / Derm / Psych", "Mon–Sat","Write long case + short case notes every day"),
    ("16:00–16:30", "College Ends / Snack",              "",                                      "Mon–Sat", ""),
    ("16:30–17:30", "Post-Study Block 1 (1 hr)",         "Consolidate today's posting + revise cases", "Mon–Sat","Harrison's / Bailey's for case correlations"),
    ("17:30–18:30", "Post-Study Block 2 (1 hr)",         "New chapter in current posting subject", "Mon–Sat","Focus on the specialty you're posted in"),
    ("18:30–19:00", "Break / Exercise",                  "",                                      "Mon–Sun", "Non-negotiable even in final year"),
    ("19:00–19:45", "Dinner",                            "",                                      "Mon–Sun", ""),
    ("19:45–21:00", "Post-Study Block 3 (1.25 hrs)",     "MCQ bank + Previous year papers",       "Mon–Fri", "50+ MCQs per day. Timed."),
    ("21:00–22:00", "Post-Study Block 4 (1 hr)",         "Long case / short case practice — present aloud","Mon–Fri","Present to yourself or a friend. Viva practice."),
    ("22:00–22:45", "Post-Study Block 5 (45 min)",       "Rapid notes / high-yield tables / drug doses","Mon–Fri","Last 3 months: only high-yield material here"),
    ("22:45–23:00", "Planning + Wind Down",              "Prep tomorrow",                         "Mon–Sun", ""),
    ("23:00–05:00", "Sleep",                             "6 hrs minimum",                         "Mon–Sun", "Do NOT go below 6 hrs in exam period"),
]

fy_subjects = [
    ("Monday",    "Medicine – Cardiology/Respiratory",   "Medicine ward + Lectures",              "Harrison's / Davidson consolidation",  "Medicine MCQs (50 Qs)"),
    ("Tuesday",   "Surgery – GI / Breast / Thyroid",     "Surgery ward + OT observation",         "Bailey & Love consolidation",          "Surgery MCQs + operative notes"),
    ("Wednesday", "OBG – Obstetric complications",       "Labour room / OBG ward",                "Dutta / Shaw consolidation",           "OBG MCQs + past papers"),
    ("Thursday",  "Paediatrics – Neonatal / Vaccines",   "Paediatrics ward",                      "Ghai / Nelson consolidation",          "Paeds MCQs + growth chart practice"),
    ("Friday",    "Ortho + Radiology + Derm + Psych",    "Short posting rotations",               "X-ray reading + Derm clinical photos", "Combined MCQs all subjects"),
    ("Saturday",  "Weak subject of the week",            "Half-day posting / Skill lab / Mock",   "Full mock test (2 hrs timed)",         "Review mock errors — log them"),
    ("Sunday",    "Rest – but no zero day",              "NO COLLEGE",                            "Rapid revision: 1 full subject (4 hrs)","Plan week + update error log"),
]

fy_tips = [
    "2 hours pre-college is your READING time — tackle new chapters fresh in the morning.",
    "Post-college 5 hours: case consolidation → new reading → MCQs → long case practice → high-yield tables.",
    "Medicine: Harrison's for understanding + Davidson for exam-oriented reading.",
    "Surgery: Bailey & Love + SRB Surgical Oncology. Master clinical presentations + operative steps.",
    "OBG: Dutta Obstetrics + Shaw's Gynaecology. Labour room exposure is irreplaceable.",
    "Paediatrics: Ghai essential. Vaccines schedule, neonatal emergencies, growth charts — memorise these.",
    "Last 3 months before finals: 50+ MCQs/day + 2 long cases + 4 short cases + 2 previous year papers/week.",
    "Maintain your error log: every wrong MCQ goes in, with the correct concept. Review it every Sunday.",
    "Attempt 5 previous university papers under timed conditions before the exam.",
]

make_year_sheet(
    "Final Year", Y4_HDR, fy_daily, fy_subjects, fy_tips,
    "Pre-College Study", "05:30–07:30  (2 hrs)",
    "Post-College Study", "16:30–22:45  (5 hrs in 5 blocks)",
    "7 hrs / day"
)

# ════════════════════════════════════════════════════════════════
# Save
# ════════════════════════════════════════════════════════════════
import io
buf = io.BytesIO()
wb.save(buf)
buf.seek(0)
out_path = "/home/daytona/workspace/mbbs-schedule/MBBS_Progressive_Schedule.xlsx"
with open(out_path, "wb") as f:
    f.write(buf.read())
print(f"Saved: {out_path}")
Running Command

python3 /home/daytona/workspace/mbbs-schedule/create_schedule_v2.py

Your progressive MBBS schedule is ready:

MBBS Progressive Schedule

Spreadsheet · XLSX


The Progressive Build - at a glance

YearWakePre-CollegeCollegePost-CollegeSleepSelf-Study
1st Year05:3007:00–08:00 (1 hr)8 hrs16:30–18:30 (2 hrs)22:003 hrs
2nd Year05:3006:00–07:30 (1.5 hrs)8 hrs16:30–21:15 (3 hrs)22:004.5 hrs
3rd Year05:1505:45–07:15 (1.5 hrs)8 hrs16:30–21:45 (4 hrs)22:305.5 hrs
Final Year05:0005:30–07:30 (2 hrs)8 hrs16:30–22:45 (5 hrs)23:007 hrs

What the Excel contains (6 sheets)

  • Overview - the full 4-year progression + 7 golden rules
  • 1st Year - hour-by-hour daily plan + weekly subject rotation + tips
  • 2nd Year - same structure, stepped up
  • 3rd Year - clinical posting integrated
  • Final Year - peak intensity, 5 post-college blocks
  • Each year sheet has colour coding: green = college, amber = self-study, grey = breaks, peach = Sunday

The logic behind Year 1 being light

Your pre-college 1 hour is revision only - not new learning. Your post-college 2 hours: first hour consolidates today's college topics, second hour reads just one new section. That's it. No guilt about stopping at 2 hours. The goal in Year 1 is to make studying a daily automatic habit - the hours scale up naturally in Year 2 once that habit is locked in.

Can you give me a detailed draft? Study session schedule of first year M.P.A. is of-- All the three books. Uh, from which author I will be understanding the topics. Another for... Visuals or deep learning, any theories like... In anatomy, there is, uh, two books. One is B.D. Chorasia, another is Gray's Anatomy. Both are a very good combination for the anatomy. Like this, you can create a detailed draft of... The first MBBS. Mm, all the combination books I will be studying with the help of you, obviously. And also the revision session. On the weekdays, but if there is any two or three weekdays, if you try. Don't put load because I will also be... Having some personal time, like half an hour walking, yoga exercises on the morning. 30 to 40 minutes. And after the college, maybe 30 to 40 minutes of gym, three or four days a week. Like this, I also have one hour, one or one to two hour... A personal time. I do some browsing in the internet for some side hustles.

Asking for Preferences
Writing File

~/mbbs-schedule/create_y1_detailed.py

create_y1_detailed.pyPython
1
2
3
4
5
6

Structuring content...

This can take a few minutes — feel free to come back later.

Can you give me a detailed draft? Study session schedule of the first year M.P.A. is of-- All the three books. Uh, from which author I will be understanding the topics. Another for... Visuals or deep learning, any theories like... In anatomy, there are, uh, two books. One is B.D. Chorasia, another is Gray's Anatomy. Both are a very good combination for the anatomy. Like this, you can create a detailed draft of... The first MBBS. Mm, all the combination books I will be studying with the help of you, obviously. And also the revision session. On the weekdays, but if there are any two or three weekdays, if you try. Don't put load because I will also be...

Writing File

~/mbbs-schedule/create_y1_detailed.py

import openpyxl
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
from openpyxl.utils import get_column_letter
import io

wb = openpyxl.Workbook()

# ── Palette ──────────────────────────────────────────────────────
def fill(h): return PatternFill("solid", fgColor=h)

NAVY      = fill("1F4E79")
ROYAL     = fill("2E75B6")
COLLEGE_F = fill("D9EAD3")   # green  - college
SELF_F    = fill("FFF2CC")   # amber  - self-study
BREAK_F   = fill("F2F2F2")   # grey   - breaks
YOGA_F    = fill("E2F0D9")   # mint   - yoga/walk
GYM_F     = fill("FCE4D6")   # peach  - gym
PERS_F    = fill("EAD1DC")   # rose   - personal
SLEEP_F   = fill("D9D2E9")   # lavender - sleep
ALT_F     = fill("F4F9FF")
WHITE_F   = fill("FFFFFF")
ANAT_F    = fill("DEEAF1")   # light blue  - anatomy
PHYS_F    = fill("E2EFDA")   # light green - physiology
BIOC_F    = fill("FFF9DB")   # pale amber  - biochemistry
SUN_F     = fill("FCE4D6")
BOKA_F    = fill("D6E4F0")   # Book A
BOKB_F    = fill("E2F0CB")   # Book B
BOKC_F    = fill("FCF4D6")   # Book C

def fnt(bold=False, sz=10, col="000000", italic=False):
    return Font(name="Arial", bold=bold, size=sz, color=col, italic=italic)

WT  = fnt(bold=True,  sz=14, col="FFFFFF")
WB  = fnt(bold=True,  sz=11, col="FFFFFF")
WSM = fnt(bold=True,  sz=10, col="FFFFFF")
B   = fnt(bold=True,  sz=10)
N   = fnt(sz=10)
S   = fnt(sz=9)
SI  = fnt(sz=9, italic=True)
T   = fnt(sz=8)

CC = Alignment(horizontal="center", vertical="center", wrap_text=True)
LC = Alignment(horizontal="left",   vertical="center", wrap_text=True)
LT = Alignment(horizontal="left",   vertical="top",    wrap_text=True)

def tb(): v=Side(style="thin",color="AAAAAA"); return Border(left=v,right=v,top=v,bottom=v)
def mb(): v=Side(style="medium",color="1F4E79"); return Border(left=v,right=v,top=v,bottom=v)

def cel(ws, r, c, val="", bg=None, font=None, align=CC, thick=False):
    x = ws.cell(row=r, column=c, value=val)
    if bg: x.fill = bg
    x.font = font or N
    x.alignment = align
    x.border = mb() if thick else tb()
    return x

def mrow(ws, r, c1, c2, val, bg, fo=None, thick=True):
    ws.merge_cells(start_row=r, start_column=c1, end_row=r, end_column=c2)
    x = ws.cell(row=r, column=c1, value=val)
    x.fill=bg; x.font=fo or WT; x.alignment=CC
    x.border=mb() if thick else tb()
    return x

def cw(ws, d):
    for k,v in d.items(): ws.column_dimensions[k].width=v

def rh(ws, d):
    for k,v in d.items(): ws.row_dimensions[k].height=v


# ╔══════════════════════════════════════════════════════════════╗
# SHEET 1 — BOOK COMBINATIONS
# ╚══════════════════════════════════════════════════════════════╝
ws1 = wb.active
ws1.title = "Book Combinations"
ws1.freeze_panes = "A4"

cw(ws1, {"A":5,"B":20,"C":26,"D":26,"E":24,"F":32,"G":30})
rh(ws1, {1:42, 2:20, 3:8})

mrow(ws1,1,1,7,"1ST YEAR MBBS — BOOK COMBINATIONS  |  Anatomy · Physiology · Biochemistry",NAVY)
mrow(ws1,2,1,7,"Book A = Understanding (read first)   |   Book B = Visual / Deep Learning   |   Book C = MCQ & Exam Revision",ROYAL,WB)

rh(ws1,{4:26})
hdrs=["#","Subject","Book A — Understanding\n(Primary Reading)","Book B — Visual / Deep Learning","Book C — MCQ & Exam Revision","How to Use All Three Together","When to Use Each Book"]
for ci,h in enumerate(hdrs,1):
    cel(ws1,4,ci,h,bg=NAVY,font=WSM)

books=[
    ("1","ANATOMY\nGross / Regional",
     "BD Chaurasia's Human Anatomy\nVol 1, 2, 3\nAuthor: B.D. Chaurasia\n\nWhy: Indian exam-oriented, concise clinical notes, easy language. Perfect daily reader.",
     "Gray's Anatomy for Students\nAuthors: Richard Drake, Wayne Vogl, Adam Mitchell\n\nWhy: World-class colour diagrams, cross-sectional anatomy, clinical correlation boxes. Makes BDC come alive visually.",
     "Across — Anatomy\n(Vivek Jain)\nOR Amit Ashish Anatomy MCQs\n\nWhy: Previous Prof exam questions, subject-wise MCQ banks, rapid revision tables.",
     "Step 1 — Read BDC chapter (understand the region).\nStep 2 — Open Gray's same chapter: study diagrams, cross-sections, clinical boxes.\nStep 3 — Sketch the region from memory.\nStep 4 — 10 MCQs from Across (from Month 3).",
     "BDC: Daily — pre-college revision + post-college new reading.\nGray's: Tuesday & Thursday visual sessions.\nAcross: Every Saturday from Month 3."),

    ("2","ANATOMY\nHistology",
     "Inderbir Singh's Textbook of Human Histology\nAuthor: Inderbir Singh\n\nWhy: Gold standard for histology in India. Systematic, exam-focused, precise.",
     "diFiore's Atlas of Histology\nWith Functional Correlations\nAuthor: Victor P. Eroschenko\n\nWhy: Actual microscopy photos + labelled diagrams. Bridges the gap between reading and seeing slides.",
     "Across — Histology section\nOR Mudit Khanna Histology MCQs\n\nWhy: Slide identification MCQs are high-yield in practicals and viva.",
     "Step 1 — Read Inderbir Singh chapter (understand the tissue).\nStep 2 — Open diFiore's Atlas for the same tissue: identify structures in photos.\nStep 3 — Draw the slide diagram from memory + label.\nStep 4 — MCQs from Across.",
     "Inderbir: Pre-practical reading (morning).\ndiFiore's: During and after practical class.\nMCQs: Saturdays."),

    ("3","ANATOMY\nEmbryology",
     "Langman's Medical Embryology\nAuthor: T.W. Sadler\n\nWhy: Concise, exam-oriented, clear sequence of development. Best first read for embryology.",
     "The Developing Human\nClinically Oriented Embryology\nAuthors: Moore, Persaud, Torchia\n\nWhy: Detailed clinical correlations, congenital anomaly explanations, superb illustrations.",
     "Across — Embryology section\n+ Previous Prof exam questions\n\nWhy: Embryology is frequently asked in short notes and MCQs.",
     "Step 1 — Langman's chapter (quick clear understanding).\nStep 2 — Moore's same chapter (detailed diagrams + clinical notes).\nStep 3 — Write out the developmental sequence from memory.\nStep 4 — Past exam short note questions.",
     "Langman's: First reading.\nMoore's: Second reading + visual deep-dive.\nPast Qs: Before practical/unit exams."),

    ("4","PHYSIOLOGY",
     "Textbook of Medical Physiology\nGuyton & Hall\nAuthors: Arthur C. Guyton, John E. Hall\n\nWhy: The gold standard. Explains mechanisms clearly. Builds strong conceptual foundation. Read this first.",
     "Ganong's Review of Medical Physiology\nAuthors: Barrett, Barman, Brooks, Yuan\n\nWhy: Concise, exam-style summaries, excellent clinical correlation boxes, review questions at end of each chapter.",
     "Across — Physiology\n(Vivek Jain)\nOR Physiology by Soumen Manna\n\nWhy: Subject-wise MCQ banks with explanations. High-yield for Prof exams.",
     "Step 1 — Read Guyton & Hall section (understand the mechanism deeply).\nStep 2 — Read Ganong's same topic (summarised + clinical points added).\nStep 3 — Draw the graph/curve/flowchart from memory.\nStep 4 — 10 MCQs (from Month 3 onward).",
     "Guyton: New topic reading (Mon/Wed/Fri post-college Block 2).\nGanong: Revision + clinical correlation (Tue/Thu evenings).\nAcross: Saturdays from Month 3."),

    ("5","BIOCHEMISTRY",
     "Harper's Illustrated Biochemistry\nAuthors: Murray, Rodwell, Bender, Botham, Kennelly, Weil\n\nWhy: Deep mechanistic understanding of every pathway and reaction. The definitive biochemistry text.",
     "Lippincott's Illustrated Reviews: Biochemistry\nAuthor: Denise Ferrier\n\nWhy: Stunning colour metabolic pathway diagrams, clinical correlation boxes, integrated review questions. Makes Harper's visual.",
     "Across — Biochemistry\n(Vivek Jain)\nOR Mudit Khanna Biochemistry\n\nWhy: Pathway-based and clinical MCQs matching Prof exam style.",
     "Step 1 — Harper's chapter (understand the chemistry + mechanism).\nStep 2 — Lippincott's same chapter (colour pathway + clinical boxes).\nStep 3 — Draw the full metabolic pathway from memory (no peeking).\nStep 4 — 10 MCQs.",
     "Harper's: New topic reading (Tue/Thu post-college Block 2).\nLippincott's: Same evening or next morning — visual reinforcement.\nPathway drawing: Every Sunday.\nAcross: Saturdays from Month 3."),
]

bfills=[ANAT_F,ANAT_F,ANAT_F,PHYS_F,BIOC_F]
for ri,(row,bf) in enumerate(zip(books,bfills),5):
    rh(ws1,{ri:95})
    cel(ws1,ri,1,row[0],bg=bf,font=B)
    cel(ws1,ri,2,row[1],bg=bf,font=B,align=LT)
    cel(ws1,ri,3,row[2],bg=BOKA_F,font=S,align=LT)
    cel(ws1,ri,4,row[3],bg=BOKB_F,font=S,align=LT)
    cel(ws1,ri,5,row[4],bg=BOKC_F,font=S,align=LT)
    cel(ws1,ri,6,row[5],bg=ALT_F, font=S,align=LT)
    cel(ws1,ri,7,row[6],bg=WHITE_F,font=S,align=LT)

lr=11
rh(ws1,{lr:20})
mrow(ws1,lr,1,7,"COLOUR LEGEND",NAVY,WSM)
for li,(lf,lbl) in enumerate([(BOKA_F,"Blue = Book A (Understanding / Primary reading)"),(BOKB_F,"Green = Book B (Visual / Deep Learning)"),(BOKC_F,"Amber = Book C (MCQ / Exam Revision)")],lr+1):
    rh(ws1,{li:16})
    ws1.merge_cells(f"A{li}:G{li}")
    x=ws1.cell(row=li,column=1,value=lbl)
    x.fill=lf; x.font=B; x.alignment=LC; x.border=tb()


# ╔══════════════════════════════════════════════════════════════╗
# SHEET 2 — DAILY SCHEDULE (GYM vs NON-GYM day templates)
# ╚══════════════════════════════════════════════════════════════╝
ws2 = wb.create_sheet("Daily Schedule")
ws2.freeze_panes = "A5"

cw(ws2,{"A":17,"B":26,"C":28,"D":28,"E":28})
rh(ws2,{1:42,2:22,3:8})

mrow(ws2,1,1,5,"1ST YEAR MBBS — DAILY SCHEDULE  |  GYM DAYS (Mon · Wed · Fri)  vs  NON-GYM DAYS (Tue · Thu · Sat)",NAVY)
mrow(ws2,2,1,5,"Yoga/walk every morning (30–40 min)  ·  Gym 3×/week  ·  1 hr personal/side-hustle time every night after study",ROYAL,WB)

rh(ws2,{4:26})
for ci,h in enumerate(["Time","Activity","Details","GYM Day (Mon·Wed·Fri)","NON-GYM Day (Tue·Thu·Sat)"],1):
    cel(ws2,4,ci,h,bg=NAVY,font=WSM)

rows=[
    ("05:30","Wake Up","Drink a glass of water. No phone for the first 10 minutes.","Same","Same"),
    ("05:35 – 06:15","Yoga / Walk\n(30–40 min)","Yoga: Sun salutations + stretching + 5 min breathwork.\nOR brisk walk outdoors.\nThis is YOUR time — no books, no studying.","Yoga + lighter stretch\n(save energy for evening gym)","Full 40 min walk or yoga session"),
    ("06:15 – 06:30","Freshen Up\n& Breakfast Prep","Quick shower, get ready, prepare or eat breakfast.","Same","Same"),
    ("06:30 – 07:30","PRE-COLLEGE STUDY\n(1 hour — Revision Only)","ACTIVE RECALL only — no new topics.\nClose notes → write everything you remember from yesterday.\nCheck and correct. 20 min per subject (rotate Anatomy/Physio/Biochem daily).","Revise yesterday's Anatomy chapter\n(BDC — close book, recall, then check)","Revise yesterday's Physiology or Biochemistry\n(Guyton or Harper's — same recall method)"),
    ("07:30 – 08:00","Breakfast + Commute","Eat a proper breakfast. During commute: light audio or just rest your mind.","Same","Same"),
    ("08:00 – 10:00","COLLEGE\nLectures Block 1","Anatomy / Physiology / Biochemistry as per timetable.\nTake structured notes. Mark doubts with a red circle.\nDo NOT try to understand everything in real time — note it and revisit later.","Same","Same"),
    ("10:00 – 10:15","Short Break","Hydrate. Quick stretch. Try to clarify 1 doubt with a classmate or faculty.","Same","Same"),
    ("10:15 – 12:15","COLLEGE\nPracticals / Dissection","Anatomy dissection OR Physiology / Biochemistry practical.\nObserve carefully. Sketch what you see. Record all results.","Same","Same"),
    ("12:15 – 13:00","Lunch Break","Eat well. Rest your eyes. Short walk in campus if possible. No screens.","Same","Same"),
    ("13:00 – 15:00","COLLEGE\nLectures Block 2","Continued lectures + tutorial or seminar.\nAsk at least 1 question per session — it keeps you engaged.","Same","Same"),
    ("15:00 – 16:00","COLLEGE\nTutorial / Viva Prep","Small group teaching or doubt-clearing session with faculty.\nAttempt answers before the faculty explains.","Same","Same"),
    ("16:00 – 16:30","College Ends\nSnack + Travel","Light snack. Decompress. Travel home.\nDo NOT open books during this time — your brain needs the gap.","Head to gym right after snack","Head home, rest briefly"),
    ("16:30 – 17:30","GYM\n(Gym days only)","45–60 min gym session.\nWeights, cardio, or functional training.\nThis is your physical reset — protect this time completely.","GYM — 45 to 60 min workout","FREE — rest, or light catch-up if a topic is incomplete"),
    ("17:30 – 18:30","POST-COLLEGE STUDY\nBlock 1  (1 hour)","Consolidate TODAY's college topics.\nRe-read your lecture notes. Summarise each topic in 5 lines.\nThis locks in what you learned at college.","Quick shower first (15 min) then study 45 min\n— consolidate today's Anatomy lecture","Full 1 hour — consolidate today's topics\n(Physiology or Biochemistry lecture notes)"),
    ("18:30 – 19:30","POST-COLLEGE STUDY\nBlock 2  (1 hour)","Read ONE new section from Book A (BDC / Guyton / Harper's).\nJust one section. Stop when the hour ends — do not overrun.","New Anatomy section from BDC\n(1 chapter sub-section only)","New Physiology section from Guyton\nOR new Biochemistry section from Harper's"),
    ("19:30 – 19:45","Short Break","Stretch, step outside, have water. Screen-free if possible.","Same","Same"),
    ("19:45 – 20:30","Dinner","Eat properly. Relax. Talk to family or friends. No books.","Same","Same"),
    ("20:30 – 21:30","Book B Visual Session\n(~1 hour, see note)","Open Book B for TODAY's topic.\nGray's (Anatomy) / Ganong (Physiology) / Lippincott's (Biochemistry).\nStudy the diagrams. Then draw 1 key diagram from memory.","OPTIONAL on gym days.\nOnly do if you have energy.\nIf tired, skip without guilt — you've already done 2 hrs study.","FULL 1 hour — this is your deep visual session.\nDraw, label, re-draw. No shortcuts."),
    ("21:30 – 22:30","PERSONAL TIME\n(Side hustle / browsing)","1 hour fully yours — internet, side hustle research,\nsocial media, entertainment, anything non-medical.\nThis is protected time. Do not let study guilt eat into it.","Same — fully protected","Same — fully protected"),
    ("22:30 – 23:00","Wind Down + Planning","Write tomorrow's 2 study targets (which topic to revise pre-college).\nLight journaling, stretching, or just relax.\nNo heavy mental activity.","Same","Same"),
    ("23:00 – 05:30","SLEEP\n(6.5 hours)","Consistent bedtime every night.\nAvoid screens 15 min before sleeping. No studying in bed.\nMemory consolidation happens here — this is not optional.","Same","Same"),
]

def rfill(act):
    a=act.lower()
    if "wake" in a or "freshen" in a or "breakfast" in a or "commute" in a: return BREAK_F
    if "yoga" in a or "walk" in a: return YOGA_F
    if "pre-college" in a: return SELF_F
    if "college\n" in a or "college e" in a or "short break" in a or "lunch" in a or "dinner" in a: return COLLEGE_F if "college\n" in a else BREAK_F
    if "gym" in a: return GYM_F
    if "post-college" in a or "block" in a: return SELF_F
    if "book b" in a: return BOKB_F
    if "personal" in a: return PERS_F
    if "wind" in a: return BREAK_F
    if "sleep" in a: return SLEEP_F
    return ALT_F

for ri,row in enumerate(rows,5):
    rh(ws2,{ri:46})
    time_,act,detail,gd,ngd=row
    rf=rfill(act)
    isbold=any(k in act for k in ["PRE-COLLEGE","POST-COLLEGE","GYM","PERSONAL","SLEEP","COLLEGE\n","Book B"])
    cel(ws2,ri,1,time_,bg=rf,font=B)
    cel(ws2,ri,2,act,bg=rf,font=B if isbold else N)
    cel(ws2,ri,3,detail,bg=rf,font=S,align=LT)
    gmf=GYM_F if "GYM" in act else rf
    ngmf=COLLEGE_F if "GYM" in act else rf
    cel(ws2,ri,4,gd,bg=gmf,font=S,align=LT)
    cel(ws2,ri,5,ngd,bg=ngmf,font=S,align=LT)

# legend
lg2=len(rows)+6
rh(ws2,{lg2:20})
mrow(ws2,lg2,1,5,"COLOUR LEGEND",NAVY,WSM)
for li,(lf,lbl) in enumerate([(COLLEGE_F,"Green = College hours"),(SELF_F,"Amber = Self-study (pre + post college)"),(YOGA_F,"Mint = Yoga / Morning walk"),(GYM_F,"Peach = Gym (Mon·Wed·Fri) / optional rest"),(BOKB_F,"Teal = Book B visual session"),(PERS_F,"Rose = Personal time / side hustle"),(SLEEP_F,"Lavender = Sleep"),(BREAK_F,"Grey = Breaks, meals, commute")],lg2+1):
    rh(ws2,{li:16})
    ws2.merge_cells(f"A{li}:E{li}")
    x=ws2.cell(row=li,column=1,value=lbl)
    x.fill=lf; x.font=S; x.alignment=LC; x.border=tb()


# ╔══════════════════════════════════════════════════════════════╗
# SHEET 3 — WEEKLY SUBJECT ROTATION (Mon–Sun)
# ╚══════════════════════════════════════════════════════════════╝
ws3=wb.create_sheet("Weekly Subject Plan")
ws3.freeze_panes="B5"

cw(ws3,{"A":14,"B":30,"C":30,"D":30,"E":32})
rh(ws3,{1:42,2:22,3:8,4:26})

mrow(ws3,1,1,5,"1ST YEAR MBBS — WEEKLY SUBJECT ROTATION  |  Which Book · Which Topic · Each Day",NAVY)
mrow(ws3,2,1,5,"Pre-college = Revision of yesterday (Book A recall)   |   Post-Block 1 = Today's consolidation   |   Post-Block 2 = New reading (Book A)   |   Book B = Visual deep-dive (evening)",ROYAL,WB)

for ci,h in enumerate(["Day","Pre-College  (1 hr)\nRevision — Book A recall","Post-Block 1  (1 hr)\nConsolidate today's lecture","Post-Block 2  (1 hr)\nNew reading — Book A","Book B Session  (~1 hr)\nVisual / Deep Learning"],1):
    cel(ws3,4,ci,h,bg=NAVY,font=WSM)

wkplan=[
    ("MONDAY\n(Gym day)",
     "ANATOMY — BDC\nRevise last Friday's dissection + lecture notes.\nClose book → name 5 structures from the region studied.\nOpen BDC to check what you missed.",
     "ANATOMY — BDC\nConsolidate today's lecture.\nDraw the dissected region from memory + label structures.\nMark the 3 most important clinical points.",
     "ANATOMY — BDC\nStart next chapter sub-section (e.g. Upper limb — forearm muscles).\nRead 10–15 pages only. Stop at the hour mark.",
     "ANATOMY — Gray's\nOpen Gray's for the exact chapter you read in BDC.\nStudy the colour diagrams + cross-sections + clinical boxes.\n[Optional if tired from gym — do Tuesday morning instead]"),

    ("TUESDAY\n(No gym)",
     "PHYSIOLOGY — Guyton\nRevise Monday's Physiology lecture.\nClose book → explain the mechanism in your own words in writing.\nThen check with Guyton.",
     "PHYSIOLOGY — Guyton\nConsolidate today's Physiology lecture.\nDraw the graph or physiological curve discussed today.\nSummarise mechanism in 5 lines.",
     "PHYSIOLOGY — Guyton\nNew section (e.g. Nerve-muscle physiology / CVS intro).\nRead 1 sub-chapter only — 10–15 pages max.",
     "PHYSIOLOGY — Ganong\nOpen Ganong for the same topic you read in Guyton.\nGanong's summary paragraphs + clinical correlation boxes.\nAttempt 3–5 end-of-chapter review questions."),

    ("WEDNESDAY\n(Gym day)",
     "BIOCHEMISTRY — Harper's\nRevise Tuesday's Biochemistry lecture.\nClose book → redraw the metabolic pathway from memory.\nCheck against Harper's + Lippincott's diagram.",
     "BIOCHEMISTRY — Harper's\nConsolidate today's Biochemistry lecture.\nWrite the key enzyme, substrate, product, and inhibitor for today's pathway.\n5-line summary.",
     "BIOCHEMISTRY — Harper's\nNew section (e.g. Glycolysis / Carbohydrate metabolism).\nRead the mechanism. Note the key enzymes.",
     "BIOCHEMISTRY — Lippincott's\nOpen Lippincott's for today's Harper's chapter.\nStudy the colour pathway diagram. Label it.\nDraw it from memory.\n[Optional on gym day — do Thursday morning if tired]"),

    ("THURSDAY\n(No gym)",
     "ANATOMY — Histology\nRevise Wednesday's Anatomy lecture notes (quick — 20 min).\nThen open Inderbir Singh: re-read 1 histology topic.\nDraw the tissue type from memory.",
     "ANATOMY — BDC\nConsolidate today's Anatomy lecture notes.\nLabel 1 full anatomy diagram from memory.\nWrite 3 clinical correlations from today's lecture.",
     "HISTOLOGY — Inderbir Singh\nRead next histology chapter (e.g. Epithelium → Connective Tissue).\nNote distinguishing features of each tissue type.",
     "HISTOLOGY — diFiore's Atlas\nOpen diFiore's Atlas for today's Inderbir Singh chapter.\nMatch the diagram to the microscopy photo.\nIdentify + label all structures in the slide."),

    ("FRIDAY\n(Gym day)",
     "PHYSIOLOGY — Ganong\nRevise Thursday's Physiology lecture using Ganong.\nAnswer 3–5 Ganong review questions for that chapter.\nNote any answers you got wrong.",
     "PHYSIOLOGY — Ganong\nConsolidate today's lecture.\nGanong clinical correlation box for today's topic — summarise it.\nDraw the curve / diagram for today.",
     "BIOCHEMISTRY — Lippincott's\nNew section (e.g. TCA cycle / Lipid metabolism intro).\nFocus on the colour pathway diagram.\nNote clinical correlations.",
     "ANATOMY — Gray's\nPick the Gray's chapter for this week's hardest Anatomy topic.\nRe-read clinical boxes + cross-sectional diagrams.\n[Optional if tired from gym]"),

    ("SATURDAY\n(Half-day college\nNo gym)",
     "WEAK TOPIC OF THE WEEK\nOn Friday night, write down the 1 topic that felt hardest.\nSaturday pre-college: Re-read it from Book A.\nFocus on understanding, not memorising.",
     "WEEKLY CATCH-UP\nAny chapter or topic NOT finished Mon–Fri.\nPriority: complete whatever you started but couldn't finish.",
     "MCQ SESSION\n(From Month 3 only — not before)\n10 MCQs Anatomy + 10 Physiology + 10 Biochemistry.\nAll from Across / Amit Ashish.\nLog wrong answers in Error Notebook.",
     "DRAWING + DIAGRAM SESSION\nDraw from memory (no looking):\n1× Anatomy region (BDC)\n1× Metabolic pathway (Lippincott's style)\n1× Physiological curve or graph"),

    ("SUNDAY\n(Full rest day)",
     "NO PRE-STUDY — sleep in.\nLet your brain consolidate the entire week.\nThis is biology, not laziness.",
     "OPTIONAL LIGHT REVIEW  (45 min max)\nSkim this week's summary notes only.\nAll 3 subjects — 15 min each.\nNo new content. No new chapters.",
     "WEEK PLANNING  (20 min)\nWrite Mon–Fri pre-study topics for next week.\nUpdate your Error Notebook.\nNote which Book B sessions you skipped and reschedule.",
     "FULL PERSONAL TIME\nSide hustle, internet browsing, family, entertainment.\nThis is your reward for a consistent week.\nNo guilt."),
]

dayfills=[ANAT_F,PHYS_F,BIOC_F,ANAT_F,PHYS_F,ALT_F,SUN_F]
for ri,(row,df) in enumerate(zip(wkplan,dayfills),5):
    rh(ws3,{ri:88})
    isgym="Gym" in row[0]
    issun="Sunday" in row[0]
    df2=SUN_F if issun else df
    cel(ws3,ri,1,row[0],bg=GYM_F if isgym else df2,font=B)
    cel(ws3,ri,2,row[1],bg=SELF_F if not issun else SUN_F,font=S,align=LT)
    cel(ws3,ri,3,row[2],bg=COLLEGE_F if not issun else SUN_F,font=S,align=LT)
    cel(ws3,ri,4,row[3],bg=SELF_F if not issun else SUN_F,font=S,align=LT)
    cel(ws3,ri,5,row[4],bg=BOKB_F if not issun else SUN_F,font=S,align=LT)


# ╔══════════════════════════════════════════════════════════════╗
# SHEET 4 — REVISION STRATEGY (light, no overload)
# ╚══════════════════════════════════════════════════════════════╝
ws4=wb.create_sheet("Revision Strategy")
ws4.freeze_panes="A4"
cw(ws4,{"A":22,"B":18,"C":36,"D":14,"E":30})
rh(ws4,{1:42,2:22,3:8,4:26})

mrow(ws4,1,1,5,"1ST YEAR MBBS — REVISION STRATEGY  |  Light Load · Revision on 2–3 Weekdays Only",NAVY)
mrow(ws4,2,1,5,"Revision is NOT a separate heavy session — it is embedded as the 1-hour pre-college morning slot every day.",ROYAL,WB)

for ci,h in enumerate(["Revision Type","When (Days)","How to Do It","Duration","Books Used"],1):
    cel(ws4,4,ci,h,bg=NAVY,font=WSM)

revrows=[
    ("Daily Active Recall\n(Every morning)",
     "Mon – Sat\n06:30–07:30",
     "Close your notes completely.\nOn a blank page, write everything you remember from yesterday's topic.\nThen open BDC / Guyton / Harper's and check.\nMark what you forgot — that is what needs more repetition.",
     "1 hour\n(20 min per subject\nor full hour on 1 subject)",
     "Your own notes\n+\nBDC / Guyton / Harper's\n(to verify only)"),

    ("Same-Day Consolidation\n(Every evening — Post Block 1)",
     "Mon – Sat\n17:30–18:30\n(or 17:45 on gym days)",
     "Re-read today's college lecture notes.\nMark the 3 most important points in each topic.\nSummarise in 5 lines in a small notebook.\nThis stops the forgetting curve before it starts.",
     "1 hour",
     "Your lecture notes\n+\nBDC / Guyton / Harper's\n(for any unclear point)"),

    ("Book B Visual Session\n(Deep reinforcement\n— Tue, Thu, non-gym days)",
     "Tue & Thu evenings\n(full 1 hr: 20:30–21:30)\nMon/Wed/Fri optional",
     "Open Book B for today's topic.\nGray's for Anatomy, Ganong for Physiology, Lippincott's for Biochemistry.\nStudy the diagrams carefully.\nThen close the book and draw the diagram from memory.\nCheck and correct.\nThis is your deep learning session — no rushing.",
     "~1 hour\n(full on Tue/Thu,\noptional on gym days)",
     "Gray's Anatomy for Students\nGanong's Review\nLippincott's Biochemistry"),

    ("Weekly Weak Topic Revision\n(Saturday only — light)",
     "Saturday\nPost-Block 1\n17:30–18:30",
     "On Friday night, write the single topic that felt hardest this week.\nSaturday: Open Book A for that topic only. Re-read it.\nThen open Book B — study the diagram for it.\nDo 5–10 MCQs on it (from Month 3 onward).\nThis is the ONLY heavy revision day — kept to Saturdays.",
     "1 hour max\n(Saturday only)",
     "Relevant Book A (BDC / Guyton / Harper's)\n+\nRelevant Book B (Gray's / Ganong / Lippincott's)\n+\nAcross (MCQs from Month 3)"),

    ("MCQ Practice\n(From Month 3 — Saturdays only)",
     "Saturdays\n(Post-Block 2)\nFrom Month 3 onward",
     "10 MCQs Anatomy + 10 Physiology + 10 Biochemistry = 30 total.\nFinish all 30 before checking any answers.\nLog every wrong answer in an Error Notebook with the correct concept.\nReview error notebook every Sunday (15 min only).",
     "1 hour max\n(Saturday only\nuntil Month 6,\nthen increase to\n2× per week)",
     "Across (Vivek Jain)\nOR Amit Ashish\nAll 3 subjects"),

    ("Sunday Light Review\n(Optional — never forced)",
     "Sunday afternoon\n(no fixed time, 45 min max)",
     "Skim this week's summary notebook only.\nNo new content. No new chapters.\nJust a light pass over your own written summaries.\nIf you're tired or need real rest — skip it completely. No guilt.",
     "45 min max\n(skip if tired)",
     "Your own summary notebook\n(not the textbooks)"),

    ("End-of-Month Grand Revision\n(Last Saturday of each month)",
     "Last Saturday\nof each month\n(3–4 hours total)",
     "Pick 1 chapter from each subject from the month just finished.\nRevise from scratch using only your notes and summary notebook.\nDraw all key diagrams from memory.\nDo 15 MCQs per subject (from Month 3).\nThis is your monthly checkpoint — are you retaining what you studied?",
     "3–4 hours\n(last Saturday\nof month only)",
     "Your own notes + summary notebook\n+\nAll 3 Book A's\n+\nAll 3 Book B's\n+\nAcross (Month 3 onward)"),
]

revfills=[SELF_F,COLLEGE_F,BOKB_F,GYM_F,BIOC_F,SUN_F,PERS_F]
for ri,(row,rf) in enumerate(zip(revrows,revfills),5):
    rh(ws4,{ri:72})
    cel(ws4,ri,1,row[0],bg=rf,font=B,align=LT)
    cel(ws4,ri,2,row[1],bg=ALT_F,font=B,align=LT)
    cel(ws4,ri,3,row[2],bg=WHITE_F,font=S,align=LT)
    cel(ws4,ri,4,row[3],bg=ALT_F,font=S,align=LT)
    cel(ws4,ri,5,row[4],bg=rf,font=S,align=LT)


# ╔══════════════════════════════════════════════════════════════╗
# SHEET 5 — PERSONAL TIME & WELLNESS
# ╚══════════════════════════════════════════════════════════════╝
ws5=wb.create_sheet("Wellness & Personal Time")
ws5.freeze_panes="A4"
cw(ws5,{"A":22,"B":18,"C":20,"D":36,"E":32})
rh(ws5,{1:42,2:22,3:8,4:26})

mrow(ws5,1,1,5,"1ST YEAR MBBS — WELLNESS & PERSONAL TIME PLAN  |  Gym · Yoga · Side Hustle · Sleep",NAVY)
mrow(ws5,2,1,5,"Your wellbeing is not separate from your study plan — it IS your study plan.",ROYAL,WB)

for ci,h in enumerate(["Block","Days","Time","What to Do","Why It Matters"],1):
    cel(ws5,4,ci,h,bg=NAVY,font=WSM)

wellness=[
    ("Morning Yoga / Walk","Every day\n(Mon–Sun)","05:35–06:15\n(30–40 min)",
     "Yoga: 5 Sun salutations + full body stretch + 5 min breathwork.\nOR Brisk walk outdoors — no phone for first 10 min.\nAlternate yoga and walk on different days if you prefer.\nNo books, no audio, no studying during this time.",
     "Reduces cortisol and exam anxiety.\nImproves focus for the pre-college study hour that follows.\nA physical morning routine creates mental consistency.\nYou will study better every day that you do this."),

    ("Gym Workout","Mon · Wed · Fri","16:30–17:30\n(after college snack)",
     "45–60 min gym session.\nCompound lifts (squat, deadlift, bench, rows) OR functional training OR cardio.\nDo not exceed 60 min — diminishing returns beyond that.\nPost-gym: 15 min shower + change, then go directly to study.",
     "Physical exercise improves long-term memory consolidation and neuroplasticity.\nAlternate-day gym gives muscles recovery time.\nMon/Wed/Fri keeps the gym out of your heavier study days (Tue/Thu).\nGym is your physical reset valve — it makes the 2-hour study block after it more productive."),

    ("Post-Gym Buffer","Mon · Wed · Fri","17:30–17:45\n(right after gym)",
     "Quick shower. Change clothes.\nLight protein snack — banana + peanut butter, boiled eggs, or protein shake.\nThen open Post-Block 1 study directly.",
     "Protein within 30–45 min of gym is optimal for recovery.\nA clean physical transition from gym to study prevents mental drifting.\nThe 15-min buffer means you lose nothing from the study blocks."),

    ("Personal Time\n/ Side Hustle","Every day\n(Mon–Sun)","21:30–22:30\n(1 hour, after study)",
     "Fully yours — internet browsing, side hustle research, social media, reading for fun, entertainment.\nThis hour is PROTECTED.\nDo not let study guilt creep into it.\nYou have already done 2–3 hours of focused study by this point.\nUse this time to explore income streams, skill-building, or just relax.",
     "Sustainable study habits over 4.5 years require guilt-free downtime.\nKnowing you have a fixed protected personal hour makes the study blocks before it more focused.\nSide hustle exploration now plants seeds for financial independence during internship and beyond."),

    ("Sunday Full Rest","Sunday","No alarm\n(wake naturally)",
     "No alarm. Sleep in.\nOptional light review in the afternoon (45 min max — your own notes only).\nFull personal time for the rest of the day.\nWalk (not gym). Family time. Entertainment. Side hustle deep work.\nNo college prep, no new chapters.",
     "MBBS is a 4.5-year marathon.\nBurnout in Year 1 has ended many strong students' momentum.\nOne genuine rest day per week is not laziness — it is recovery.\nYour brain literally clears metabolic waste and consolidates memory during low-activity periods."),

    ("Sleep","Every night\n(Mon–Sun)","23:00–05:30\n(6.5 hours min)",
     "Same bedtime every night — including weekends.\nAvoid bright screens for 15 min before sleeping.\nNo studying in bed.\nIf you cannot sleep, do light breathing exercises — do not open books.",
     "Sleep is when long-term memory forms.\nAnatomy diagrams, metabolic pathways, and physiology mechanisms consolidate during deep sleep.\nConsistent sleep timing regulates your circadian rhythm, which directly affects how alert you feel during morning yoga and pre-college study.\nThis is not optional."),
]

wfills=[YOGA_F,GYM_F,GYM_F,PERS_F,SUN_F,SLEEP_F]
for ri,(row,wf) in enumerate(zip(wellness,wfills),5):
    rh(ws5,{ri:80})
    cel(ws5,ri,1,row[0],bg=wf,font=B,align=LT)
    cel(ws5,ri,2,row[1],bg=ALT_F,font=B,align=LC)
    cel(ws5,ri,3,row[2],bg=ALT_F,font=B,align=LC)
    cel(ws5,ri,4,row[3],bg=WHITE_F,font=S,align=LT)
    cel(ws5,ri,5,row[4],bg=wf,font=S,align=LT)


# ╔══════════════════════════════════════════════════════════════╗
# Save
# ╚══════════════════════════════════════════════════════════════╝
buf=io.BytesIO()
wb.save(buf)
buf.seek(0)
out="/home/daytona/workspace/mbbs-schedule/MBBS_Year1_DetailedPlan.xlsx"
with open(out,"wb") as f:
    f.write(buf.read())
print(f"Saved: {out}")
Running Command

python3 /home/daytona/workspace/mbbs-schedule/create_y1_detailed.py

Here's your detailed Year 1 plan:

MBBS Year1 DetailedPlan

Spreadsheet · XLSX


What's inside (5 sheets)

Sheet 1 — Book Combinations

Every subject has all 3 books mapped with author names, why each book, and exactly how to use them together:
SubjectBook A (Understanding)Book B (Visual/Deep)Book C (MCQ/Exam)
Anatomy - GrossBD Chaurasia (B.D. Chaurasia)Gray's Anatomy for Students (Drake, Vogl, Mitchell)Across / Amit Ashish
Anatomy - HistologyInderbir Singh's HistologydiFiore's Atlas of Histology (Eroschenko)Across Histology MCQs
Anatomy - EmbryologyLangman's Medical Embryology (Sadler)The Developing Human (Moore, Persaud, Torchia)Across + Past Qs
PhysiologyGuyton & Hall (Guyton, Hall)Ganong's Review (Barrett, Barman et al.)Across / Soumen Manna
BiochemistryHarper's Illustrated (Murray, Rodwell et al.)Lippincott's Illustrated Reviews (Ferrier)Across / Mudit Khanna

Sheet 2 — Daily Schedule

Hour-by-hour plan with two side-by-side columns - GYM day (Mon/Wed/Fri) vs NON-GYM day (Tue/Thu/Sat). Every time block is covered including yoga, gym buffer, personal time, and sleep.

Sheet 3 — Weekly Subject Plan

Which book, which topic, for each slot every day of the week. Monday = Anatomy (BDC + Gray's), Tuesday = Physiology (Guyton + Ganong), Wednesday = Biochemistry (Harper's + Lippincott's), and so on.

Sheet 4 — Revision Strategy

Revision is not a separate burden - it is the pre-college 1 hour every morning. Book B sessions only on Tue/Thu (full 1 hr) and optional on gym days. MCQs only from Month 3 onward, Saturdays only.

Sheet 5 — Wellness & Personal Time

Gym logic, yoga, post-gym buffer (protein + shower), protected personal time 21:30–22:30, and the Sunday rest philosophy - all documented with the reasoning behind each block.

The key principle built in: Revision only falls heavily on Saturday (the weak topic catch-up day). Tuesday and Thursday evenings have the Book B visual sessions. Monday, Wednesday, Friday are lighter post-college because of gym. You will never feel like you're cramming because the daily 1-hour pre-college recall handles most of the revision automatically.

Give me some examples of MCQ or any kind of questions of, like, examples of anatomy. Any topic, just give me some questions of previous year. To just see how the questions are made.

Here are real-style 1st Prof MBBS Anatomy questions — the kind that appear in university exams and MCQ banks like Across.

MCQs — Anatomy (1st Year MBBS Style)


🦴 Upper Limb

Q1. The "anatomical snuffbox" is bounded laterally by:
  • A) Extensor pollicis brevis and abductor pollicis longus
  • B) Extensor pollicis longus only
  • C) Flexor pollicis longus
  • D) Extensor carpi radialis brevis
✅ Answer: A The lateral boundary is formed by tendons of EPB and APL; the medial boundary is EPL. The floor contains the scaphoid and radial artery.

Q2. Injury to the radial nerve in the spiral groove of the humerus causes:
  • A) Wrist drop
  • B) Claw hand
  • C) Ape hand
  • D) Policeman's tip deformity
✅ Answer: A Radial nerve in the spiral groove = wrist drop. Claw hand = ulnar nerve. Ape hand = median nerve. Policeman's tip = Erb's palsy (C5,C6).

Q3. The carpal tunnel contains all of the following EXCEPT:
  • A) Flexor digitorum superficialis
  • B) Flexor digitorum profundus
  • C) Flexor pollicis longus
  • D) Ulnar nerve
✅ Answer: D The ulnar nerve passes through Guyon's canal, NOT the carpal tunnel. The median nerve passes through the carpal tunnel.

🧠 Neuroanatomy

Q4. The internal capsule separates:
  • A) Caudate nucleus and thalamus
  • B) Lentiform nucleus from caudate nucleus and thalamus
  • C) Putamen from globus pallidus
  • D) Thalamus from hypothalamus
✅ Answer: B The internal capsule is a white matter structure with the lentiform nucleus laterally and the caudate nucleus + thalamus medially.

Q5. Which of the following is NOT a branch of the facial nerve (CN VII)?
  • A) Greater petrosal nerve
  • B) Chorda tympani
  • C) Nerve to stapedius
  • D) Lingual nerve (main trunk)
✅ Answer: D The lingual nerve is a branch of the mandibular nerve (CN V3). It is only JOINED by chorda tympani (from CN VII) in the infratemporal fossa.

🫀 Thorax

Q6. The right coronary artery is the dominant artery in approximately what percentage of people?
  • A) 30%
  • B) 50%
  • C) 70%
  • D) 90%
✅ Answer: C Right dominance in ~70%, left dominance in ~15%, co-dominance in ~15%. High-yield for clinical anatomy.

Q7. The surface marking of the apex of the heart is:
  • A) 2nd intercostal space, right sternal border
  • B) 5th intercostal space, midclavicular line (left)
  • C) 4th intercostal space, left sternal border
  • D) 3rd intercostal space, midaxillary line
✅ Answer: B The apex beat (point of maximum impulse) is at the 5th ICS, just medial to or at the left midclavicular line.

🦵 Lower Limb

Q8. The femoral triangle contains all EXCEPT:
  • A) Femoral artery
  • B) Femoral nerve
  • C) Femoral vein
  • D) Obturator nerve
✅ Answer: D The femoral triangle contains (lateral to medial): Nerve, Artery, Vein, Empty space, Lymphatics — mnemonic "NAVEL". The obturator nerve does NOT pass through it.

Q9. "Foot drop" is caused by injury to which nerve?
  • A) Tibial nerve
  • B) Common peroneal (fibular) nerve
  • C) Femoral nerve
  • D) Sural nerve
✅ Answer: B Common peroneal nerve winds around the neck of the fibula — very vulnerable here. Supplies dorsiflexors of foot. Injury = foot drop.

🔬 Histology

Q10. Simple squamous epithelium lines all of the following EXCEPT:
  • A) Bowman's capsule (parietal layer)
  • B) Alveoli of lungs
  • C) Urinary bladder
  • D) Endothelium of blood vessels
✅ Answer: C The urinary bladder is lined by transitional epithelium (urothelium), which can stretch. All other options are simple squamous.

🧬 Embryology

Q11. The notochord induces the formation of:
  • A) Neural tube
  • B) Somites
  • C) Lateral plate mesoderm
  • D) Trophoblast
✅ Answer: A The notochord induces the overlying ectoderm to thicken and form the neural plate → neural tube. This is the key event of primary neurulation.

Short Notes — the other type of exam question

Besides MCQs, your 1st Prof written exam will ask short notes like:
QuestionExpected answer length
"Write a short note on the carpal tunnel"5–8 lines + 1 diagram
"Describe the boundaries and contents of the femoral triangle"8–10 lines + diagram
"Enumerate the branches of the brachial plexus"Table / list format
"Describe the blood supply of the heart"8–10 lines + diagram
"Write a note on dermatomes of the upper limb"6–8 lines + diagram

What you notice about how these questions are made

  1. "All EXCEPT" questions are very common - you need to know every item in a list, not just one
  2. Clinical correlation is always there - nerve injury → what deformity, artery → what it supplies
  3. Mnemonics help enormously - NAVEL for femoral triangle, remembering that ulnar = Guyon's canal
  4. Diagrams are non-negotiable in written exams - anatomy is a visual subject
  5. Bilateral knowledge - if they ask about one side, know the other side too
Want me to generate a full 30-question mock MCQ paper on a specific topic (e.g. upper limb, thorax, neuro) with answer key and explanations?

Create a short-notes question bank for 1st Prof written exam prep

Give me the answer of the question, like example, write a short note on the carpel tunnel. Just give me a, hmm... Short notes, answer of the question, which is like just a exam-based question in MBBS first year. Okay.

Here is a model short note answer — exactly how you would write it in a 1st Prof MBBS exam.

Short Note: Carpal Tunnel

(Expected in exam: 5–8 lines + 1 labelled diagram | Marks: 5)

Definition: The carpal tunnel is an osseofibrous tunnel located at the wrist, through which important structures pass from the forearm to the hand.

Boundaries:
WallFormed by
Floor & sidesCarpal bones (arranged in a concave arch)
RoofFlexor retinaculum (transverse carpal ligament)

Contents: (9 structures — high yield)
Tendons (8):
  • 4 tendons of Flexor Digitorum Superficialis (FDS)
  • 4 tendons of Flexor Digitorum Profundus (FDP)
  • 1 tendon of Flexor Pollicis Longus (FPL)
Nerve (1):
  • Median nerve — the most clinically important structure
Memory tip: "4 FDS + 4 FDP + 1 FPL + 1 Median nerve = 10 structures total"
What does NOT pass through it:
  • Ulnar nerve and ulnar artery → pass through Guyon's canal
  • Palmaris longus tendon → runs superficial to the flexor retinaculum

Clinical Significance — Carpal Tunnel Syndrome:
Compression of the median nerve inside the carpal tunnel causes Carpal Tunnel Syndrome (CTS).
Symptoms:
  • Pain and tingling in the lateral 3½ fingers (thumb, index, middle, lateral half of ring finger)
  • Worsens at night
  • Weakness of thenar muscles (opposition of thumb affected)
  • Ape hand deformity in chronic cases (thenar wasting)
Positive tests:
  • Tinel's sign — tapping over the carpal tunnel reproduces tingling
  • Phalen's test — sustained wrist flexion for 60 seconds reproduces symptoms
Treatment: Splinting (conservative) or surgical decompression (division of flexor retinaculum)

Diagram:
        WRIST (Cross-section view)

    ┌─────────────────────────────┐
    │   Flexor Retinaculum (Roof) │
    ├──────────────────────────── ┤
    │  FDS ×4    FDP ×4           │
    │       FPL                   │
    │    [MEDIAN NERVE]  ←        │
    └──────────────────────────── ┘
       Carpal bones (Floor + sides)
(In your exam, draw a proper cross-section of the wrist, label the flexor retinaculum, carpal bones, all tendons, and the median nerve)

Key points to always include in any short note:
  1. Definition (1 line)
  2. Boundaries (small table or list)
  3. Contents (labelled list)
  4. Clinical relevance (always — this gets you extra marks)
  5. Diagram (even a rough one = marks)

Want me to write model answers for more short notes? Here are some high-frequency ones I can do next:
TopicSubject
Femoral triangleAnatomy
Brachial plexusAnatomy
Blood supply of heartAnatomy
Neuromuscular junctionPhysiology
Resting membrane potentialPhysiology
GlycolysisBiochemistry
TCA cycleBiochemistry
Just say which one — or say "do all of them" and I'll build a complete short-note answer booklet as a downloadable document.
This is a shared conversation. Sign in to Orris to start your own chat.