The calendar app for developers

Every meeting, every note, every follow-up — in one place. When you bring in an agent, MCP lets it read and write that same workspace so the context stays where you already work.

auth-refactor.md

Session hardening — decisions

@mentioned in Tech review · Thu 2pm
# Decisions
- Keep session cookies signed, server-side
- Drop token storage from mobile client
# Snippet — new session guard
// middleware/auth.ts
export async function requireSession(req) {
  const session = await verifyCookie(req);
  if (!session) throw new Unauthorized();
  return session;
}
# Todo
Write ADR for cookie rotation
Deploy canary to staging
Review PR #428
Wednesday
Apr 16
All-Day
9am
10am
11am
12pm
1pm
2pm
3pm
4pm
5pm
Focus — auth refactor
Standup
Design review
Focus — PR review
1:1 — EM
Code review pairing

Every calendar
organized together

Your work calendar and your personal calendar stop fighting for your attention. nocal merges every account you connect into one unified day, color-coded by source.

No more checking two apps to answer "am I free Thursday?"

Mon · 10:00 AM
Daily standup
Fri · 10:00 AM
Sprint planning
Mon · 2:00 PM
PR triage
Wed · 11:00 AM
RFC review — auth
Thu · 9:30 AM
Staging deploy
Wed · 3:00 PM
On-call retro
Fri · 1:00 PM
Bug bash
Mon · 10:00 AM
Daily standup
Fri · 10:00 AM
Sprint planning
Mon · 2:00 PM
PR triage
Wed · 11:00 AM
RFC review — auth
Thu · 9:30 AM
Staging deploy
Wed · 3:00 PM
On-call retro
Fri · 1:00 PM
Bug bash
Tue · 2:00 PM
Incident postmortem
Tue · 4:00 PM
Partner API review
Thu · 11:00 AM
K8s upgrade window
Mon · 3:00 PM
Design systems sync
Wed · 1:00 PM
Load test dry run
Fri · 9:00 AM
Training — Postgres
Thu · 12:30 PM
OSS office hours
Tue · 2:00 PM
Incident postmortem
Tue · 4:00 PM
Partner API review
Thu · 11:00 AM
K8s upgrade window
Mon · 3:00 PM
Design systems sync
Wed · 1:00 PM
Load test dry run
Fri · 9:00 AM
Training — Postgres
Thu · 12:30 PM
OSS office hours
Wed · 6:30 PM
Gym Session
Tue · 8:00 AM
Run
Sun · 10:00 AM
Brunch w/ J
Fri · 8:00 PM
Dinner w/ Sam
Thu · 6:00 PM
Yoga
Mon · 5:00 PM
Haircut
Wed · 7:30 PM
Book club
Wed · 6:30 PM
Gym Session
Tue · 8:00 AM
Run
Sun · 10:00 AM
Brunch w/ J
Fri · 8:00 PM
Dinner w/ Sam
Thu · 6:00 PM
Yoga
Mon · 5:00 PM
Haircut
Wed · 7:30 PM
Book club
Thu · 7:00 PM
Family Dinner
Sat · 11:00 AM
Weekend Trip
Mon · 5:30 PM
School pickup
Sat · 2:00 PM
Soccer practice
Tue · 4:00 PM
Parent-teacher
Sun · 3:00 PM
Birthday party
Fri · 6:00 PM
Piano recital
Thu · 7:00 PM
Family Dinner
Sat · 11:00 AM
Weekend Trip
Mon · 5:30 PM
School pickup
Sat · 2:00 PM
Soccer practice
Tue · 4:00 PM
Parent-teacher
Sun · 3:00 PM
Birthday party
Fri · 6:00 PM
Piano recital
8am
9am
10am
11am
12pm
1pm
2pm
3pm
4pm
5pm
6pm
Tue
9:00Team standup
10:30RFC — rate limits
12:30Focus — ship auth PR
3:00Release checklist
Wed
10:00Platform all-hands
12:00Focus — DB migration
2:30Pair — bug #8492
Thu
10:30On-call handoff
12:00Deep work — API
4:00Staff eng sync

One workspace
for humans and agents

Calendar, notes, and tasks stay where they are. When an agent helps—recaps, deadlines pulled into a plan, task lists—those edits land in the same files, so you catch them the next time you open nocal, like any other change in your workspace.

Built-in MCP lets Cursor, Claude, and ChatGPT search context and patch notes instead of losing work in chat. A short blurb in AGENTS.md or .cursorrules is usually enough to wire them in. How MCP works and how to set it up →

Meetings and notes,
woven into one thread

Your calendar and your notes aren't two apps bolted together—they're the same surface. Open a meeting and you're already in the doc; embed a live calendar block in a note and it stays in sync. Context crosses the boundary in both directions.

Link people, other notes, and events with @ mentions; use checklists that feed your task list; write in Markdown that stays readable when the invite moves. The thread stays continuous—nothing gets stranded in a silo.

RFC-014-oauth-hardening.mdUpdated just now

# RFC-014: OAuth callback hardening

Tech review — OAuthTue · 2:00 PM
## Prep
- Threat model: open redirects
- PKCE for mobile clients?
## Notes
- Agreed: rotate signing keys quarterly
- Follow-up: patch notes_search scope in staging
## Follow-ups
Open PR for middleware diff
Update ADR-009 with decision

Tasks surface
themselves

Checkboxes inside any note bubble up to a single Recent Tasks view in your sidebar — across every note, every week. Nothing hides at the bottom of a doc you forgot.

When you finish it, it drops off. What's left is real.

Recent Tasks
  • Fix flaky auth middleware testRFC-014 OAuth hardening
  • Open PR — cookie rotation ADRADR-009 session tokens
  • Reply on #platform re: migration 014Tech review — OAuth
  • Block focus for staging cutoverv3.2 release note
  • Update runbook after canaryOn-call handoff
  • Draft changelog for API deprecationsSprint retro

Build rich, interactive notes
for you and your agents

Type / to place calendars, tasks, tables, embeds, and more right beside your writing—live blocks in the same page instead of screenshots or a trail of tabs.

Keep threads connected across your workspace, jump to any note, event, or space in a keystroke, and use hotkeys for layouts and checklists so you stay in flow.

Ship checklist — PRs, migrations, rollback.
Before merge:
/code
Commands
EventEmbed a calendar event
TodoCheckable task list
Note mention@ another note
Code blockFenced code w/ highlighting
TableMarkdown table