Files
mop-skills/skills/google-calendar/SKILL.md
T

3.6 KiB

name, description
name description
google-calendar Read, search, create, update, and delete Google Calendar events across the Family Calendar and Regensburg & more Calendar. Use when the user asks about upcoming appointments ("Was steht an?", "Termine diese Woche", "Wann ist der nächste Arzttermin?"), wants to add appointments or family events, check for scheduling conflicts, or track city events in Regensburg.

📅 Google Calendar (Familie & Regensburg)

Full two-way Google Calendar integration for Moritz and family, managing two distinct calendars via a dedicated GCP Service Account:

  1. 👨‍👩‍👧 Familienkalender (family):
    • Primary personal & family schedule: doctor visits, daycare/kindergarten, birthdays, visits, work trips, family outings, shared commitments.
    • Default calendar for all personal appointment requests.
  2. 🏛️ Regensburg & mehr (regensburg):
    • Local city life: Dult, Bürgerfest, concerts, theatre, local festivals, markets, exhibitions.
    • Keeps the family calendar clean and uncluttered while keeping track of exciting local events.

🛠️ MCP Tools

You have access to 5 dedicated calendar tools:

  1. calendar_list_events(calendar="family"|"regensburg", time_min=None, time_max=None, query=None, max_results=25):

    • Lists appointments within a timeframe.
    • time_min / time_max: ISO format (e.g. 2026-09-20 or 2026-09-20T08:00:00). Defaults to start of today until 30 days ahead.
    • query: Text filter to search summaries and descriptions.
  2. calendar_create_event(calendar="family"|"regensburg", summary, start_time, end_time=None, description=None, location=None, all_day=False):

    • Adds a new appointment.
    • For timed events: pass ISO datetime (e.g. 2026-09-20T14:30:00). If end_time is omitted, defaults to 1 hour after start.
    • For all-day events: set all_day=True and provide date YYYY-MM-DD.
  3. calendar_update_event(calendar="family"|"regensburg", event_id, summary=None, start_time=None, end_time=None, description=None, location=None):

    • Updates fields on an existing event.
  4. calendar_delete_event(calendar="family"|"regensburg", event_id):

    • Deletes an event.
  5. calendar_get_event(calendar="family"|"regensburg", event_id):

    • Retrieves full event metadata.

🧭 Routing & Operational Rules

1. Calendar Routing

  • Default to family: Any request like "Erinnere mich an...", "Trage Zahnarzt am Dienstag um 10 Uhr ein", "Wann haben wir diese Woche Zeit?" always targets the family calendar.
  • Route to regensburg: Events concerning the city, public festivals, concerts, or cultural events in Regensburg (e.g. "Trage die Herbstdult ein", "Wann ist das Bürgerfest?") belong in the regensburg calendar.

2. Timezone & DateTime Precision

  • All dates and times operate in Europe/Berlin (CET/CEST).
  • Always specify concrete dates and times when confirming actions.

3. Safety & Confirmations

  • Conflict awareness: When adding an appointment, check whether there is already a conflicting event at that time and politely point it out if relevant.
  • Deletions require care: If deleting or overwriting an existing event, confirm the title and date clearly.

📱 Telegram Presentation Style

Format calendar overviews cleanly for mobile viewing:

📅 **Termine diese Woche (Familie)**:
• **Mo, 16.09. 09:00 - 10:00**: Kinderarzt U6 🏥
• **Mi, 18.09. Ganztägig**: Oma zu Besuch 👵
• **Fr, 20.09. 15:30 - 17:00**: Spielplatz-Treffen 🛝

🏛️ **Regensburg Highlights**:
• **Sa, 21.09. ab 18:00**: Jazz-Konzert im Thon-Dittmer-Palais 🎷