Give me 5 different type of DYI practice for PTSD for a 55 years old lady. Lot of anxiety and depression
| Consideration | Recommendation |
|---|---|
| Hormonal changes (peri/post-menopause) | Can amplify PTSD anxiety - discuss with a doctor |
| Sleep disruption | Practices #1, #2, and #5 work well before bed |
| Social isolation (common with PTSD) | Consider a trauma-informed support group alongside these |
| Physical limitations | All 5 practices above are low/no-impact |
These practices are self-help tools, not replacements for professional therapy. If symptoms are severe or worsening, a trauma-trained therapist (especially one offering EMDR or CPT - Cognitive Processing Therapy) can provide structured, evidence-based care. The SAMHSA National Helpline (1-800-662-4357) is free, confidential, and available 24/7.
Create a printable daily practice schedule she can follow
mkdir -p /home/daytona/workspace/ptsd-schedule && ls /home/daytona/workspace/ptsβ¦
~/ptsd-schedule/create_schedule.py
from reportlab.lib.pagesizes import letter
from reportlab.lib import colors
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, HRFlowable
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus import KeepTogether
OUTPUT = "/home/daytona/workspace/ptsd-schedule/PTSD_Daily_Practice_Schedule.pdf"
# --- Color Palette (soft, calming) ---
LAVENDER = colors.HexColor("#C3B1E1")
SOFT_PURPLE = colors.HexColor("#7B5EA7")
PALE_BLUE = colors.HexColor("#D6EAF8")
TEAL = colors.HexColor("#4A9D9C")
MINT = colors.HexColor("#D5F5E3")
PEACH = colors.HexColor("#FDEBD0")
ROSE = colors.HexColor("#FADBD8")
GOLD = colors.HexColor("#F9E79F")
LIGHT_GREY = colors.HexColor("#F5F5F5")
MID_GREY = colors.HexColor("#BDBDBD")
DARK_TEXT = colors.HexColor("#2C2C54")
WHITE = colors.white
doc = SimpleDocTemplate(
OUTPUT,
pagesize=letter,
rightMargin=0.6*inch,
leftMargin=0.6*inch,
topMargin=0.55*inch,
bottomMargin=0.55*inch,
)
styles = getSampleStyleSheet()
# Custom styles
title_style = ParagraphStyle(
"Title", parent=styles["Title"],
fontName="Helvetica-Bold", fontSize=22,
textColor=SOFT_PURPLE, alignment=TA_CENTER, spaceAfter=2
)
subtitle_style = ParagraphStyle(
"Subtitle", parent=styles["Normal"],
fontName="Helvetica", fontSize=11,
textColor=TEAL, alignment=TA_CENTER, spaceAfter=4
)
tagline_style = ParagraphStyle(
"Tagline", parent=styles["Normal"],
fontName="Helvetica-Oblique", fontSize=9,
textColor=colors.HexColor("#888888"), alignment=TA_CENTER, spaceAfter=6
)
section_header_style = ParagraphStyle(
"SectionHeader", parent=styles["Normal"],
fontName="Helvetica-Bold", fontSize=11,
textColor=WHITE, alignment=TA_CENTER
)
cell_title_style = ParagraphStyle(
"CellTitle", parent=styles["Normal"],
fontName="Helvetica-Bold", fontSize=9,
textColor=DARK_TEXT, spaceAfter=1
)
cell_body_style = ParagraphStyle(
"CellBody", parent=styles["Normal"],
fontName="Helvetica", fontSize=8,
textColor=colors.HexColor("#444444"), leading=11
)
cell_tip_style = ParagraphStyle(
"CellTip", parent=styles["Normal"],
fontName="Helvetica-Oblique", fontSize=7.5,
textColor=TEAL
)
affirmation_style = ParagraphStyle(
"Affirmation", parent=styles["Normal"],
fontName="Helvetica-BoldOblique", fontSize=10,
textColor=SOFT_PURPLE, alignment=TA_CENTER
)
footer_style = ParagraphStyle(
"Footer", parent=styles["Normal"],
fontName="Helvetica", fontSize=7.5,
textColor=colors.HexColor("#999999"), alignment=TA_CENTER
)
reminder_title_style = ParagraphStyle(
"ReminderTitle", parent=styles["Normal"],
fontName="Helvetica-Bold", fontSize=9,
textColor=DARK_TEXT
)
reminder_body_style = ParagraphStyle(
"ReminderBody", parent=styles["Normal"],
fontName="Helvetica", fontSize=8,
textColor=colors.HexColor("#555555"), leading=12
)
# ---- Helper to make a time-block cell ----
def make_block(time, emoji, practice, steps, tip, bg_color):
time_p = Paragraph(f"<b>{time}</b>", ParagraphStyle("t", parent=cell_body_style, textColor=TEAL, fontSize=7.5))
title_p = Paragraph(f"{emoji} {practice}", cell_title_style)
steps_p = Paragraph(steps, cell_body_style)
tip_p = Paragraph(f"<i>Tip: {tip}</i>", cell_tip_style)
return [time_p, title_p, steps_p, tip_p]
# ---- Schedule data ----
morning_blocks = [
make_block(
"7:00 β 7:10 AM", "π¬οΈ", "Box Breathing",
"Sit upright in bed or a chair.<br/>"
"Inhale 4 counts β Hold 4 β Exhale 4 β Hold 4.<br/>"
"Repeat 8β10 cycles. Eyes closed.",
"Place one hand on your chest, one on your belly. Feel the breath.",
PALE_BLUE
),
make_block(
"7:10 β 7:20 AM", "π‘", "Safe Place Visualization",
"After breathing, keep eyes closed.<br/>"
"Picture your safe place in full sensory detail.<br/>"
"What do you see, hear, feel on your skin?<br/>"
"Stay 5β8 minutes. Gently open eyes.",
"Keep a small photo or object that reminds you of your safe place nearby.",
MINT
),
]
midmorning_blocks = [
make_block(
"9:00 β 9:30 AM", "πΆ", "Bilateral Stimulation Walk",
"Walk at a gentle pace outdoors (or indoors).<br/>"
"Notice the LEFTβRIGHT rhythm of your steps.<br/>"
"Let a mild worry surface β don't push it away.<br/>"
"Focus on rhythm + one thing you observe every 30 sec.",
"Wear comfortable shoes. Bring water. No phone calls during the walk.",
PEACH
),
]
afternoon_blocks = [
make_block(
"1:00 β 1:20 PM", "π", "Expressive Journaling",
"Pick ONE prompt (rotate daily):<br/>"
"<b>Mon/Thu:</b> 'What am I feeling in my body right now?'<br/>"
"<b>Tue/Fri:</b> 'One small thing I can control today is...'<br/>"
"<b>Wed/Sat:</b> 'A moment I felt safe or at peace was...'<br/>"
"Write freely 10β12 min. End with 3 'okay' things.",
"No grammar rules. Don't re-read what you wrote right away.",
GOLD
),
]
evening_blocks = [
make_block(
"5:00 β 5:10 PM", "π€", "5-4-3-2-1 Grounding",
"If anxiety rises β pause wherever you are.<br/>"
"Name: 5 things you see β’ 4 you feel β’ 3 you hear<br/>"
"2 you smell β’ 1 you taste.<br/>"
"Breathe between each sense. Go slowly.",
"Keep this list on a card in your purse for anxious moments.",
ROSE
),
]
bedtime_blocks = [
make_block(
"9:00 β 9:20 PM", "π§", "Body Scan & PMR",
"Lie down comfortably. Dim the lights.<br/>"
"Tense each muscle group 5 sec β release β notice.<br/>"
"Toes β calves β thighs β belly β chest β<br/>"
"shoulders β hands β face. Slow, deliberate.",
"Play soft instrumental music or silence. No screens after this.",
LAVENDER
),
]
def block_to_table_data(blocks, bg_color):
"""Convert a list of block content lists into a 2-col table."""
rows = []
for b in blocks:
rows.append([b[0], ""]) # time row spanning
rows.append([b[1], ""]) # title
rows.append([b[2], ""]) # steps
rows.append([b[3], ""]) # tip
return rows
def make_section_table(label, label_color, blocks):
"""Make a labeled section with all blocks in it as a clean table."""
data = []
# Section header spanning full width
header = Paragraph(label, section_header_style)
data.append([header, ""])
for b in blocks:
# time, title, steps, tip all in first col; second col empty (for checkbox)
time_title = Table(
[[b[0]], [b[1]], [b[2]], [b[3]]],
colWidths=[5.5*inch]
)
time_title.setStyle(TableStyle([
("LEFTPADDING", (0,0), (-1,-1), 0),
("RIGHTPADDING", (0,0), (-1,-1), 0),
("TOPPADDING", (0,0), (-1,-1), 1),
("BOTTOMPADDING",(0,0), (-1,-1), 1),
]))
checkbox_col = Paragraph("β Done", ParagraphStyle(
"cb", parent=cell_body_style, fontSize=8, textColor=MID_GREY, alignment=TA_CENTER
))
data.append([time_title, checkbox_col])
col_widths = [5.6*inch, 1.0*inch]
t = Table(data, colWidths=col_widths, repeatRows=1)
style = TableStyle([
# Header row
("BACKGROUND", (0,0), (-1,0), label_color),
("SPAN", (0,0), (-1,0)),
("TOPPADDING", (0,0), (-1,0), 6),
("BOTTOMPADDING",(0,0), (-1,0), 6),
# Content rows
("BACKGROUND", (0,1), (-1,-1), LIGHT_GREY),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_GREY]),
("TOPPADDING", (0,1), (-1,-1), 6),
("BOTTOMPADDING",(0,1), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 10),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("VALIGN", (0,0), (-1,-1), "TOP"),
("GRID", (0,0), (-1,-1), 0.3, MID_GREY),
("ROUNDEDCORNERS", [4]),
])
t.setStyle(style)
return t
# ---- Reminders box ----
def make_reminders_box():
reminders = [
("π Medications / Supplements:", "Take as prescribed by your doctor. Note any side effects in your journal."),
("π₯€ Hydration:", "Aim for 6β8 glasses of water. Anxiety increases with dehydration."),
("π½οΈ Nutrition:", "Eat regular, balanced meals. Avoid excess caffeine after noon."),
("π΅ Screen limit:", "No news or social media first thing in the morning or before bed."),
("π Support contact:", "Keep one trusted person's number visible. It's okay to reach out."),
]
data = []
for title, body in reminders:
data.append([
Paragraph(title, reminder_title_style),
Paragraph(body, reminder_body_style)
])
t = Table(data, colWidths=[2.0*inch, 4.5*inch])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#F0EBF8")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
("GRID", (0,0), (-1,-1), 0.3, LAVENDER),
]))
return t
# ---- Weekly tracker ----
def make_weekly_tracker():
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
practices = [
"π¬οΈ Box Breathing",
"π‘ Safe Place Visual.",
"πΆ Bilateral Walk",
"π Journaling",
"π€ 5-4-3-2-1 Ground.",
"π§ Body Scan / PMR",
]
header_row = [Paragraph("<b>Practice</b>", ParagraphStyle(
"wh", parent=cell_body_style, fontSize=8, textColor=DARK_TEXT
))]
for d in days:
header_row.append(Paragraph(f"<b>{d}</b>", ParagraphStyle(
"wh2", parent=cell_body_style, fontSize=8, textColor=DARK_TEXT, alignment=TA_CENTER
)))
data = [header_row]
for p in practices:
row = [Paragraph(p, cell_body_style)]
for _ in days:
row.append(Paragraph("β", ParagraphStyle(
"wc", parent=cell_body_style, fontSize=10, alignment=TA_CENTER, textColor=TEAL
)))
data.append(row)
col_widths = [2.0*inch] + [0.76*inch]*7
t = Table(data, colWidths=col_widths)
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), SOFT_PURPLE),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("BACKGROUND", (0,1), (-1,-1), WHITE),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, colors.HexColor("#F5F0FB")]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
("ALIGN", (1,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
("GRID", (0,0), (-1,-1), 0.3, MID_GREY),
]))
return t
# ---- Assemble document ----
story = []
# Title block
story.append(Paragraph("My Daily Healing Practice", title_style))
story.append(Paragraph("A gentle self-care schedule for PTSD, anxiety & depression", subtitle_style))
story.append(Paragraph("Print β’ Place on your fridge β’ Check off each day β¨", tagline_style))
story.append(HRFlowable(width="100%", thickness=1.5, color=LAVENDER, spaceAfter=8))
# Morning
story.append(make_section_table("π
MORNING ROUTINE", TEAL, morning_blocks + midmorning_blocks))
story.append(Spacer(1, 8))
# Afternoon
story.append(make_section_table("βοΈ AFTERNOON", colors.HexColor("#C9A84C"), afternoon_blocks))
story.append(Spacer(1, 8))
# Evening
story.append(make_section_table("π EARLY EVENING", colors.HexColor("#C0635A"), evening_blocks))
story.append(Spacer(1, 8))
# Bedtime
story.append(make_section_table("π BEDTIME", SOFT_PURPLE, bedtime_blocks))
story.append(Spacer(1, 10))
# Affirmation
story.append(HRFlowable(width="100%", thickness=0.8, color=LAVENDER, spaceBefore=4, spaceAfter=6))
story.append(Paragraph(
"\"Every gentle step I take today is an act of courage. I am healing at my own pace.\"",
affirmation_style
))
story.append(HRFlowable(width="100%", thickness=0.8, color=LAVENDER, spaceBefore=6, spaceAfter=8))
# Daily reminders
story.append(Paragraph("π Daily Reminders", ParagraphStyle(
"remHdr", parent=cell_title_style, fontSize=10, spaceAfter=4
)))
story.append(make_reminders_box())
story.append(Spacer(1, 10))
# Weekly tracker
story.append(Paragraph("π
Weekly Practice Tracker", ParagraphStyle(
"trkHdr", parent=cell_title_style, fontSize=10, spaceAfter=4
)))
story.append(make_weekly_tracker())
story.append(Spacer(1, 10))
# Emergency note
emergency_data = [[
Paragraph("π¨ If you feel overwhelmed or unsafe:", ParagraphStyle(
"em", parent=cell_title_style, fontSize=8.5, textColor=colors.HexColor("#C0392B")
)),
Paragraph(
"Stop the practice β’ Use 5-4-3-2-1 grounding β’ Call a trusted person β’ "
"Crisis line: <b>988</b> (Suicide & Crisis Lifeline) β’ "
"SAMHSA Helpline: <b>1-800-662-4357</b> (free, 24/7)",
ParagraphStyle("em2", parent=cell_body_style, fontSize=8, textColor=colors.HexColor("#555555"))
)
]]
emergency_table = Table(emergency_data, colWidths=[2.3*inch, 4.3*inch])
emergency_table.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), colors.HexColor("#FDEDEC")),
("GRID", (0,0), (-1,-1), 0.5, colors.HexColor("#F1948A")),
("TOPPADDING", (0,0), (-1,-1), 7),
("BOTTOMPADDING",(0,0), (-1,-1), 7),
("LEFTPADDING", (0,0), (-1,-1), 8),
("VALIGN", (0,0), (-1,-1), "TOP"),
]))
story.append(emergency_table)
story.append(Spacer(1, 8))
# Footer
story.append(Paragraph(
"This schedule is a self-help companion, not a substitute for professional therapy. "
"Please work with a trauma-trained therapist for ongoing care.",
footer_style
))
doc.build(story)
print("PDF created successfully:", OUTPUT)
cd /home/daytona/workspace/ptsd-schedule && python create_schedule.py
PTSD Daily Practice Schedule
PDF Document Β· PDF
| Section | Content |
|---|---|
| Morning (7:00 - 9:30 AM) | Box Breathing + Safe Place Visualization + Bilateral Walk |
| Afternoon (1:00 PM) | Expressive Journaling with rotating daily prompts (Mon-Sat) |
| Early Evening (5:00 PM) | 5-4-3-2-1 Grounding technique |
| Bedtime (9:00 PM) | Body Scan & Progressive Muscle Relaxation |
| Daily Reminders | Hydration, nutrition, medication, screen limits, support contact |
| Weekly Tracker | 7-day checkbox grid for all 6 practices |
| Emergency Box | Crisis line 988 + SAMHSA helpline clearly displayed |