[FEATURE] First-class Calendar in Claude Code: drop one-off events with attached prompts/sessions (not just a Routines read-out)

Resolved 💬 1 comment Opened May 23, 2026 by afram123 Closed Jun 23, 2026

Preflight

  • [x] I have searched existing requests and this hasn't been requested (related but distinct from #59625, #49857, #49096, #48322, #51110, #60005, #47518)
  • [x] This is a single feature request

---

Problem Statement

Claude Code's scheduling story today has two shapes:

  1. Routines — cron-based recurring automation. Great for "every Monday at 9 run the weekly report."
  2. One-shot scheduled tasks (/schedule, ScheduleWakeup, scheduled-tasks MCP) — fire-and-forget timed actions, but invisible after creation and addressed by ID, not by date.

Neither is a calendar. Neither lets me plan my week by dropping events on a timeline.

My actual workaround today: I put "wake-up tasks" for future Claude Code sessions into Google Calendar as plain reminders ("Tue 3pm: competitor research session"), then when the notification fires I manually open Claude Code and start the session with the prompt I had in mind. The planning surface is Google Calendar; Claude Code is just where the work happens. I want to collapse that into one app.

The Routines feature has a Calendar tab — it's almost there — but it's a read-out of recurring cron jobs, not a place I can drop a single event saying "this Thursday at 14:00, start a session about X with this prompt I'm typing now."

---

Proposed Solution

A first-class Calendar in Claude Code (extending the existing Routines Calendar tab, or as a sibling tab — whichever fits the IA) where I can author events, not just view runs.

Core: drop one-off events on the timeline

Click any time slot → modal: "What happens at this time?" with options:

  • Start a session — with a prompt I type now, optional skill/agent/project context, optional model. At fire time, the desktop app opens a new session with that prompt ready (or auto-runs, if I opted in at creation).
  • Run a one-shot task — existing /schedule-style fire-and-forget action, but now visible on the calendar.
  • Just a reminder — notification only, no Claude action.

The event renders on the Calendar with its title, color-coded by type. I can drag to reschedule, click to edit the prompt, delete inline.

Plus: the things that make it a real planning surface (lower priority, additive)

  • Mixed view — routines (cron) and one-off events render on the same timeline, color-coded by source. Today they live in disconnected surfaces.
  • External calendar overlay — read-only events from connected Google Calendar / iCloud (#49857) MCP connectors, so I can plan Claude work around real meetings.
  • Project filter — picker scopes the view to one project's events + routines + (mapped) external events.

Why this is the right shape

This is not "another scheduler." It's exposing primitives Claude Code already has — one-shot tasks, routines, sessions — on the timeline surface that everyone already plans on. Calendar becomes the daily home base, and the existing scheduling primitives become its event types.

---

Alternative Solutions

  • Use Google Calendar as the planning surface (my current workaround) — works but the prompt I had in mind has to be re-typed when the reminder fires, the calendar event can't directly trigger a Claude session, and the planning lives in another app.
  • Use Routines for one-offs — wrong shape: writing a cron expression for a single date is awkward, and Routines are framed as "automation," not "things I plan to do once."
  • Use /schedule for one-offs — works as a timer but is invisible after creation; no way to see "what's on my schedule next Thursday" as a calendar view.
  • External .ics subscription to routines — pulls Claude's data out into another app; defeats the goal of Claude being the planning home.

---

Priority

High — Significant impact on productivity

Feature Category

Interactive mode (TUI) — specifically the desktop/web Calendar surface

---

Use Case Example

Sunday evening, planning the week, entirely inside Claude Desktop:

  1. Open the Calendar tab.
  2. Click Monday 09:00 → "Start a session" → prompt: "Pull last week's metrics from the data MCP and write the weekly summary." Project: Project A. Model: opus. → Save.
  3. Click Tuesday 15:00 → "Start a session" → prompt: "Competitor research: pull pricing pages and summarize positioning shifts." → Save.
  4. Click Thursday 10:00 → "Run a one-shot task" → "Trigger the SEO audit routine once with these flags." → Save.
  5. The week now shows: my routines (cron, already running), my new one-off sessions (Mon, Tue, Thu), and — if I've enabled overlay — my Google Calendar meetings beside them.
  6. Monday 09:00: desktop notification fires, Claude Desktop opens the session with the prompt ready. I review and hit enter.

Today, steps 2–4 don't exist; I either jam everything into Google Calendar (workaround) or shape every one-off as a single-fire cron Routine (wrong shape). Step 6 happens through Google Calendar notifications, with me manually opening Claude Code and re-typing the prompt.

---

Additional Context

Building on existing primitives — nothing here is from scratch:

  • The Calendar tab UI already exists (area:routines; #59625, #49096).
  • One-shot scheduled tasks already exist (/schedule, ScheduleWakeup, scheduled-tasks MCP).
  • Session start with a prepared prompt already exists (CLI flags, agent SDK).
  • Push notifications when a scheduled session starts are already requested (#60005).
  • The mechanism for "fire a Claude action at a specific timestamp" is shipped; this issue is about giving those timestamps a visual home on a calendar surface so they can be authored, edited, and planned against — instead of being invisible post-creation.

Why this is strategically high-leverage:

Calendar is the surface every operator, consultant, and builder plans on, daily. Right now Claude Code competes for "where you work" but loses "where you plan" to Google Calendar / Apple Calendar / Notion / etc. Making Calendar a first-class object — with the existing scheduled-action primitives as event types — turns Claude Desktop into the place planning and execution happen together. That's the underlying pitch for Cowork and Routines; calendar is the missing surface.

Related issues:

  • #59625 — Calendar as default Routines tab (signals demand for the calendar view)
  • #49857 — iCloud Calendar connector (would feed the overlay)
  • #49096 — multi-value cron rendering in Calendar view (Calendar surface is actively maintained)
  • #48322 — shared org routines (team calendar is the obvious follow-on)
  • #51110 — UTC vs local timezone (overlay must use user's local TZ)
  • #60005 — push notification when scheduled session starts (the notification surface this feeds)
  • #47518 — visibility into scheduled wakeups (the "I can't see what's scheduled" pain this resolves)

🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗