You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add calendar management tools for reading events, creating/updating/deleting events, checking availability, and generating meeting summaries via Google Calendar and Outlook/MS Graph.
Motivation
Productivity workflows revolve around scheduling. The agent has no capability to interact with calendar systems — it cannot read upcoming events, create new meetings, check attendee availability, update existing events, or generate meeting summaries. This is a fundamental gap for any agent designed to assist with professional workflows. Users cannot ask the agent to "find a 30-minute slot tomorrow" or "summarize my afternoon meetings."
Proposed Solution
Create a calendar skill that provides:
Read events: Fetch calendar events with filtering (date range, calendar, attendee, keyword)
Create events: Schedule new meetings with title, time, attendees, location, description
Check availability: Find free time slots, conflict detection
Meeting summaries: Generate summaries of past events from calendar descriptions and attached notes
Multi-provider support: Google Calendar API, Outlook/MS Graph API
Timezone awareness: Proper handling of timezone conversions
Alternatives Considered
Shell-based calendar tools (khal, calcurse): limited to local calendars, no cloud sync.
Single-provider only (Google Calendar): excludes enterprise/Outlook users.
Email-based scheduling: fragile, no structured data access.
OpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
Run /opsx:propose to generate a full proposal with specs and tasks
Iterate on the design before any code is written
Follow the task-driven implementation workflow
Additional Context
This should integrate with the email gap (#779) for scheduling workflows — e.g., creating a calendar event and sending calendar invites via email simultaneously.
src/tools/index.js — Tools are registered here with TOOL_PERMISSIONS and TOOL_CLASSIFICATIONS. Calendar tools would need network:outbound permission and likely classifications for scheduling/productivity agents.
src/tools/date.js — Existing date tool provides date awareness; calendar tools would extend this with event-level operations.
src/config/config.js / src/config/loader.js — Calendar API credentials (OAuth tokens, API keys) would need secure storage.
src/config/schemas/providers.js — Calendar provider configuration schemas (Google Calendar, MS Graph) would follow existing patterns.
src/tools/web.js — Existing web tool uses network:outbound; calendar tools would follow the same permission model.
src/agent/deepAgents.js — Agent orchestration; calendar tools would be registered alongside existing tools.
src/scheduler/cron.js / src/scheduler/scheduler.js — Existing scheduler infrastructure; calendar tools could leverage or integrate with this for recurring event detection.
Dependency note — Google Calendar API requires googleapis npm package. MS Graph requires @microsoft/microsoft-graph-client. OAuth flows add complexity — consider starting with API key and adding OAuth later.
Integration point — Cross-references feat: add email integration (read, send, manage) #779 (email integration). Calendar invites should be sent via email tools. Shared auth abstraction between email and calendar tools is recommended.
Summary
Add calendar management tools for reading events, creating/updating/deleting events, checking availability, and generating meeting summaries via Google Calendar and Outlook/MS Graph.
Motivation
Productivity workflows revolve around scheduling. The agent has no capability to interact with calendar systems — it cannot read upcoming events, create new meetings, check attendee availability, update existing events, or generate meeting summaries. This is a fundamental gap for any agent designed to assist with professional workflows. Users cannot ask the agent to "find a 30-minute slot tomorrow" or "summarize my afternoon meetings."
Proposed Solution
Create a
calendarskill that provides:Alternatives Considered
OpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
/opsx:proposeto generate a full proposal with specs and tasksAdditional Context
This should integrate with the email gap (#779) for scheduling workflows — e.g., creating a calendar event and sending calendar invites via email simultaneously.
Audit Findings (for Issue #781)