Calendar Events Skill
Workflow
- Parse intent — determine the action: create, view, update, or cancel
- Extract details — title, date/time (ISO 8601), duration (minutes), location (optional)
- Clarify ambiguity — if date or time is missing or ambiguous, ask the user before proceeding
- Call the API — use the matching endpoint (see below)
- Confirm result — respond with the event summary including exact date/time and any relevant details
API Endpoints
Create an event
POST /api/calendar/events
{
"title": "Dentist appointment",
"start": "2026-04-10T14:00:00Z",
"duration": 60,
"location": "123 Main St"
}
View today's events
GET /api/calendar/events/today
View this week's events
GET /api/calendar/events/week
Update an event
PUT /api/calendar/events/{id}
{
"start": "2026-04-10T15:00:00Z"
}
Cancel an event
DELETE /api/calendar/events/{id}
Example
User: "Schedule a dentist appointment for Thursday at 2pm"
Steps:
- Parse intent: create
- Extract: title=
Dentist appointment, start=2026-04-10T14:00:00Z, duration=60 POST /api/calendar/eventswith extracted details- Respond: "Done — Dentist appointment is set for Thursday, April 10 at 2:00 PM (1 hour)."
Error Handling
- Conflicting event: Check
GET /api/calendar/eventsfor overlaps and warn the user before creating - Past date: Reject and ask for a future date
- Missing time: Ask "What time works for you?" rather than guessing
Response Style
Always confirm the exact date and time. Use relative references when helpful ("in 2 hours", "tomorrow at 3pm").