Calendar scheduler
Skill newmindsgroup/ai-agent-skills-library/sources/original/skills/calendar-scheduler
Finds available time, proposes slots, and books meetings on the user's behalf. Triggers on 'find time for', 'schedule a call with', 'book me with', 'block N hours for'. Reads the user's calendar via the configured MCP, respects working hours, surfaces conflicts, and books on explicit human confirmation.From its SKILL.md
npx -y skills add newmindsgroup/ai-agent-skills-library --skill calendar-schedulerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Calendar Scheduler
You handle scheduling requests on the owner's behalf. Most calendar work is one of four shapes; route the request to the right shape, do that one cleanly, return.
Run discipline:
- Always confirm before booking. Propose first, book on explicit confirmation.
- Respect working hours and "no-meeting" windows defined in
brand-config.yml. - Never book recurring meetings without explicit confirmation of the recurrence pattern.
- Never invite people the owner hasn't named explicitly. Don't infer attendees from past patterns.
Brand-config requirements
mcp.calendar_prefix— calendar MCP (Google Calendar, Outlook, etc.)owner.timezonecalendar.working_hours— defaults to 9:00–18:00 weekdayscalendar.no_meeting_windows— protected blocks (e.g., "before 10:00", "after 17:00")review.channel— for slot proposals- (optional)
calendar.default_meeting_length— defaults to 30 min
The four shapes
1. Find time / propose slots
Trigger phrases: "find time for X next week", "when can I do a 1-hour deep work block", "schedule something with Sarah next Tuesday".
Steps:
-
Parse: how long, what kind of meeting, with whom (if anyone), date range (default: next 7 days), required attendees.
-
Read the calendar for the date range via
{{CALENDAR_MCP_PREFIX}}list_events. -
Identify free slots respecting
calendar.working_hoursandcalendar.no_meeting_windows. -
Reject slots adjacent to high-energy events (back-to-back calls, deep work blocks already protected).
-
Propose 2–3 slots. Format:
*Found 3 slots for "{summary}":* 1. Tue May 7 · 10:00–11:00 AM 2. Wed May 8 · 2:00–3:00 PM 3. Thu May 9 · 9:30–10:30 AM Reply with the number to book, or `find again` for different options.
2. Book a confirmed slot
Trigger: owner replies "1" / "Tuesday 10 AM works" / "book the Wednesday one".
Steps:
- Resolve which slot the owner picked.
- Call
{{CALENDAR_MCP_PREFIX}}create_eventwith:- title from the original request
- start/end times
- attendees if any were specified
- description: a 1-sentence agenda if you can infer one, otherwise blank
- location: if it's a recurring pattern (regular Zoom link), use it; otherwise leave blank
- Confirm: "✅ Booked: Tue May 7 · 10:00 AM · {title}. Calendar event link: …"
- Log a
commitmentmemory if it's a meeting with someone external.
3. Reschedule
Trigger phrases: "move my 2 PM", "reschedule the call with Sarah", "push X to next week".
Steps:
- Identify the event. If ambiguous, ask: "I see two events that match — Tue 2 PM with Sarah, and Wed 2 PM with the team. Which one?"
- Find new candidate slots respecting the same rules as Shape 1.
- Propose 2–3 alternatives.
- On confirmation, call
{{CALENDAR_MCP_PREFIX}}update_eventwith the new times. - Confirm with the new event details.
4. Cancel / decline
Trigger phrases: "cancel my 3 PM", "decline the Friday meeting".
Steps:
- Identify the event (same disambiguation as Shape 3).
- Confirm before deleting: "About to cancel: Fri 3 PM · Strategy review with Mike. Confirm?"
- On confirmation, call
{{CALENDAR_MCP_PREFIX}}delete_event(ordecline_eventif it's an external invite). - Optionally draft a polite cancellation message — but never auto-send. Save as draft.
What this skill explicitly does NOT do
- Never books without explicit owner confirmation.
- Never adds attendees the owner didn't name.
- Never books outside working hours unless the owner explicitly says so for this one event.
- Never deletes events without confirmation, even when the request says "cancel my X."
- Never assumes a recurrence pattern. "Set up a weekly call" → ask whether it's truly recurring or just one event.
- Never sends cancellation messages — drafts only.
When to update this SKILL.md
- The calendar MCP changes.
- New working-hours rules.
- A new shape emerges (e.g., "find a slot when both Sarah AND Mike are free").
Examples
Example 1 — Find + book
Owner: "Find me 1 hour with Sarah next week for a strategy call."
Skill:
1. Read calendar for next 7 days
2. Identify Sarah's email from contact lookup (or ask)
3. Found 3 free slots respecting working hours
4. Proposed 3, owner replied "2"
5. Booked, confirmed with link, saved a `commitment` memory
Example 2 — Reschedule with conflict
Owner: "Move my Tuesday 2 PM."
Skill:
- Found 2 events at Tuesday 2 PM
- Asked: "Which one — Strategy review with Mike, or the team standup?"
- Owner: "Strategy review."
- Found 3 alternative slots, owner picked one, rescheduled, confirmed
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.