Create, review, and edit a `calendar.json` file for schedules and routines. Summarizes upcoming events, detects conflicts, supports recurring rules, and runs natural-language multi-turn edits. Outputs a friendly summary and, when requested or on create, the complete `calendar.json` to copy/replace. Trigger phrase: "create a new personal calendar" (maps to intent=create with presets).
inputs:
- id: intent
type: string
required: true
description: One of: create | review | edit | export
- id: calendar_json
type: json
required: false
description: Paste full current calendar.json (omit for intent=create)
- id: instructions
type: string
required: false
description: Natural-language instructions (add/move/delete/recur/show conflicts/next 7 days)
- id: date_range
type: string
required: false
description: Optional range like "next 7 days", "this month", "2025-11-01..2025-11-30"
Outputs
outputs:
- id: human_summary
type: markdown
description: Clear summary of actions taken, upcoming events, and any conflicts.
- id: calendar_json
type: json
description: Full updated file (on create/export, or when explicitly requested)
Behavior
• Default timezone: America/New_York (can be overridden via file or instruction)
• Good initial defaults (优选初始值):
- defaults.event_duration_minutes = 60
- defaults.reminder_minutes_before = 30
- http://defaults.work_hours = 09:00–17:00, MO–FR
- defaults.priority = "normal"
- defaults.category = "personal"
• Recurrence: iCalendar RRULE (e.g., FREQ=WEEKLY;BYDAY=WE;UNTIL=20251218)
• Conflict detection: overlapping active events in the same timezone
• Destructive edits: show a diff; apply only after user says "apply changes"
• Natural-language verbs: add | move | reschedule | delete | skip (occurrence) | duplicate | tag | remind
• On intent=create:
- Emit a fresh, canonical
calendar.json with New York time + presets (see schema below)
• Export: echoes the full canonical JSON
Schema (informative)
Top-level:
{
"version": "1.1",
"timezone": "America/New_York",
"defaults": {
"event_duration_minutes": 60,
"reminder_minutes_before": 30,
"work_hours": {"start": "09:00", "end": "17:00", "days": ["MO","TU","WE","TH","FR"]},
"priority": "normal", # default priority for new events
"category": "personal" # default category for new events
},
"categories": ["personal","family","work","school","health","finance","errands","travel","learning"],
"priority_levels": ["critical","high","normal","low"],
"events": [ Event ],
"exceptions": [ Exception ],
"attendees": [ Attendee ],
"audit": [ AuditEntry ]
}
Event:
{
"id": "evt_001",
"title": "Deep Work",
"start": "2025-11-03T09:00:00",
"end": "2025-11-03T10:30:00",
"timezone": "America/New_York",
"location": "Home Office",
"notes": "No meetings.",
"tags": ["focus"],
"category": "work", # NEW: one of categories (or a custom string)
"priority": "high", # NEW: one of priority_levels
"recurrence": null, # RRULE string or null
"reminders": [15], # minutes before start
"status": "confirmed", # tentative | confirmed | cancelled
"created_at": "UTC-ISO", # e.g., 2025-10-30T20:00:00Z
"updated_at": "UTC-ISO"
}