Pillar: RunoSO is the freelancing management system — see the full freelancing management system pillar for comparison vs Notion/Sheets.
Your calendar says 10am–12pm Deep Work, but your task list says 7 todos. At 10:15 a client Slacks and you context-switch. By 12 you blocked time but shipped nothing. Blocks without linked tasks are wishes.
RunoSO ties personalTasks.scheduledDate + isToday src/lib/db/schema.ts:240 to your day view — three tasks max, calendar-style, with vault/docs one click away. That is why time blocking freelancers in RunoSO is not a template — it is a query SELECT * FROM personalTasks WHERE projectId = ? AND isToday = true joined to clients and vault.
Why Blocks Break
- Two sources of truth: Calendar block in Google, tasks in Notion — no
scheduledDatesrc/lib/db/schema.ts:241sync so plan drifts. - No Today limit: 12 tasks compete for 2 hrs;
isTodayunbounded → decision fatigue. - No streak feedback: Blocks unwatched don’t compound; streaks
src/lib/db/schema.ts:275die silently.
The Linked Productivity Model: Time Blocking Freelancers Knows Its Context
RunoSO ties personalTasks.scheduledDate + isToday src/lib/db/schema.ts:240 to your day view — three tasks max, calendar-style, with vault/docs one click away.
personalTasks {
title text notNull
isToday boolean default false src/lib/db/schema.ts:240
scheduledDate timestamp src/lib/db/schema.ts:241
dueDate timestamp src/lib/db/schema.ts:236
priority enum low|medium|high src/lib/db/schema.ts:228
status enum todo|done src/lib/db/schema.ts:229
}What linked gives you: one clientId to filter every asset src/app/api/assets/[category]/route.ts:91 with buildPaginatedQuery src/lib/utils/pagination.ts:11, vault hint vaultItemName without plaintext src/lib/vault/crypto.ts:28, and notifications RENEWAL_MILESTONES [7,3,1,0] src/app/api/cron/daily/route.ts:17 that nag before failure.
Sheets vs RunoSO Productivity: Time Blocking Freelancers Test
| Scenario | Sheets / Generic | RunoSO Linked |
|---|---|---|
| Plan Monday | Calendar + Notion duplicate | isToday: true + scheduledDate one source |
| Protect 2 hr block | Hope Slack stays quiet | NotificationsBell batch at 12/5pm src/components/layout/NotificationsBell.tsx |
| Measure progress | Hours logged | Tasks done + streak src/lib/db/schema.ts:275 + completedAt |
Sheets list time blocking freelancers. RunoSO links time blocking freelancers to projectId and vaultItemId.
Deploy in 30 Minutes
- Pick 3 Today tasks
isToday:true, setscheduledDate9am/11am/2pm. - Block calendar 90 min per task, link
projectId→ credential ready. - Silence: batch notifications
cron/dailysrc/app/api/cron/daily/route.ts:17not real-time. - Execute: complete →
status:donecompletedAtnow, streak increments. - Review:
rolledOverFromshows carryover, shrink to 2 tomorrow if missed.
Mistakes & Pro Move
- Blocking 6 hrs without vault linkage forces hunts mid-block — link
vaultItemIdfirst. - Snoozing
dueDatetext failsz.coerce.date()src/app/api/assets/[category]/route.ts:62— use timestamp. - Ignoring
rolledOverFromhides estimation error — track and recalibrate.
Time Blocking Freelancers fails quietly until a client asks "where is it?" Keep time blocking freelancers linked to projects, vault and invoices so work ships and money follows.
→ Fix Time Blocking Freelancers in RunoSO — Free
By Gautam Parmar — your time blocking freelancers never slips with RunoSO linked.
Keep Reading
- Pillar: freelancing management system
- Freelance daily system today backlog streaks: Freelance daily system today backlog streaks
- Deep work freelancers distraction free system: Deep work freelancers distraction free system
- Freelance weekly review operating rhythm: Freelance weekly review operating rhythm
FAQ
How does scheduledDate stay reliable? Timestamp src/lib/db/schema.ts:241 with z.coerce.date() validation; daily cron checks dueDate vs scheduledDate for daysUntil alerts.
Can I sync to Google Calendar? Export CSV of personalTasks where isToday and import; roadmap adds ICS vercel.json:4 cron. Today view is source of truth meanwhile.
What if a client emergency breaks the block? Keep 1 buffer block 4–5pm; move bumped task rolledOverFrom:now so weekly review spots load issues.



