with one click
officecalendar-management
// Manage calendar events, check conflicts, handle scheduling from emails. Use when adding events or coordinating meetings to ensure proper timezone handling and conflict detection.
// Manage calendar events, check conflicts, handle scheduling from emails. Use when adding events or coordinating meetings to ensure proper timezone handling and conflict detection.
Manage contacts, companies, deals, and relationships. Use when adding contacts, logging interactions, or working with CRM data to prevent duplicates and maintain data quality.
Handle email tasks (checking inbox, drafting replies, managing threads, adding events to calendar). Use when working with emails to prevent common mistakes like broken threading or missing recipients.
Set up your personal productivity style and preferences. Use when you first install office or want to customize your workflow patterns.
| name | office:calendar-management |
| description | Manage calendar events, check conflicts, handle scheduling from emails. Use when adding events or coordinating meetings to ensure proper timezone handling and conflict detection. |
Use this skill when:
Load preferences from ~/.claude/office-admin-config.json:
{
"personal": {
"timezone": "America/Chicago",
"workingHours": {
"start": "09:30",
"end": "16:30",
"lunchStart": "12:00",
"lunchEnd": "13:30"
}
},
"calendar": {
"defaultDuration": 30,
"bufferMinutes": 15,
"schedulingLink": "https://user.cal.com/schedule",
"autoAddFromEmail": true,
"eventNaming": {
"includeLocation": true,
"includeAttendees": false
}
}
}
Look for in the email:
Handle conversational dates:
BEFORE creating the event:
# Get user's calendar for that date
mcp__pd__google_calendar-list-events(
instruction="Get all events for [date], between [start_time - bufferMinutes] and [end_time + bufferMinutes]"
)
Look for:
Tell the user:
If free:
You're free at [time] on [date].
If conflict exists:
That conflicts with:
- [event name] from [start] to [end]
Your schedule that day:
9:30am - 10:30am: Team standup
10:30am - 12:00pm: FREE
12:00pm - 1:30pm: Lunch
1:30pm - 3:00pm: [Proposed event would go here]
3:00pm - 4:00pm: Client call
If user confirms or no conflict exists:
mcp__pd__google_calendar-create-event(
instruction="Create event with:
- Title: [descriptive title with location if includeLocation=true]
- Date: [YYYY-MM-DD]
- Start time: [HH:MM] [timezone]
- End time: [HH:MM] [timezone]
- Location: [physical address or link]
- Description: [context about who invited, what it's about]
- Attendees: [email addresses]
"
)
Title format examples:
includeLocation: true: "Lunch with Mike at Soho House"includeLocation: false: "Lunch with Mike"includeAttendees: true: "Meeting with Mike, Sarah, John"Timezone: Always use user's timezone from config unless explicitly scheduling with someone in another timezone.
Provide:
For events pending confirmation:
Create with "HOLD:" prefix
Title: "HOLD: Call with Jean (pending confirmation)"
Add note in description
Description: "(pending confirmation) Call with Jean Labuschagne about consulting opportunity"
Update when confirmed
Delete if falls through
Use user's timezone from config:
Time: 2:00 PM America/Chicago
When scheduling with someone in another timezone:
Specify both timezones in email:
"How about 9am Chicago time (4pm Zurich)?"
Double-check conversion:
Common international contacts: Keep a mental note of frequent timezone conversions:
Create event in user's timezone:
Title: "Call with Jean in Zurich"
Time: 9:00 AM America/Chicago
Description: "9am Chicago / 4pm Zurich - Call with Jean Labuschagne"
When someone asks "when are you free?":
Based on config defaults:
9:30am - Start of working day
↓
[Morning block for meetings/work]
↓
12:00pm - 1:30pm - Lunch (avoid scheduling)
↓
[Afternoon block for meetings/work]
↓
4:30pm - End of working day
Apply bufferMinutes (default: 15) between events:
10:00am - 11:00am: Meeting A
[15 min buffer]
11:15am - 12:00pm: Meeting B
Don't schedule back-to-back unless user explicitly requests.
For recurring events (weekly standups, monthly check-ins):
mcp__pd__google_calendar-create-event(
instruction="Create recurring event:
- Title: [name]
- Frequency: [daily/weekly/monthly]
- Day: [Monday, Tuesday, etc. for weekly]
- Time: [HH:MM]
- Duration: [minutes]
- Until: [end date or 'indefinitely']
"
)
For work blocks or focus time:
mcp__pd__google_calendar-create-event(
instruction="Create focus time block:
- Title: 'Focus Time' or 'Deep Work'
- Mark as: Busy
- Visibility: Private (optional)
- Duration: [typically 2-4 hours]
- Recurring: [if regular pattern]
"
)
When email-management skill sees scheduling language:
Seamless handoff between skills.
Email: "Want to grab lunch next Tuesday?"
1. Check calendar for next Tuesday
2. Check lunch hours (12:00-1:30pm from config)
3. Look for conflicts in that window
4. Report: "You're free for lunch on Tuesday Dec 5"
5. Create tentative hold
6. Once confirmed, create proper event with restaurant location
Email: "Can we meet Monday or Tuesday afternoon?"
1. Check both Monday and Tuesday afternoons
2. Identify all free slots after lunch
3. Report: "You're free:
- Monday 2:00pm-4:30pm
- Tuesday 1:30pm-3:00pm, 4:00pm-4:30pm"
4. Let user choose
5. Create event for chosen slot
Email from Switzerland: "9am your time?"
1. Confirm user's timezone (America/Chicago)
2. Calculate Switzerland time (4pm CET)
3. Check 9am Chicago for conflicts
4. Report availability
5. Create event with both timezones in description
Problem: Double-booking user Solution: ALWAYS check calendar before confirming availability
Problem: Event created in wrong timezone, user misses meeting Solution: Use timezone from config, verify conversions carefully
Problem: Back-to-back meetings with no break Solution: Apply bufferMinutes between events
Problem: Booking meetings during lunch hours Solution: Check workingHours.lunchStart/End from config
Problem: "Meeting" with no context Solution: Include who, what, where based on eventNaming preferences
Problem: User verbally commits but event not tracked Solution: Always create HOLD events for tentative commitments
Before completing a calendar task:
You're managing calendar well when:
Calendar management is about protecting user's time and making scheduling effortless. Be proactive, be accurate, and always check conflicts first.