calendar-scheduling_skill

This skill schedules meetings across Google, Outlook, and CalDAV calendars by resolving natural language times and ensuring conflict-free, atomic bookings.
  • Python

2.6k

GitHub Stars

2

Bundled Files

2 months ago

Catalog Refreshed

3 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill openclaw/skills --skill calendar-scheduling

  • _meta.json1.3 KB
  • SKILL.md9.4 KB

Overview

This skill provides calendar scheduling capabilities for AI agents, handling natural-language time resolution, multi-provider availability merging, recurrence expansion, and atomic booking with Two-Phase Commit safety. It unifies Google, Outlook, and CalDAV calendars, detects conflicts, and ensures timezone-accurate operations. Use it to automate meeting setup, availability checks, and reliable event creation across calendars.

How this skill works

Start every session by fetching temporal context (current time, timezone, DST) then resolve user datetime expressions into RFC 3339 timestamps. Query calendars or merged availability to find free slots and expand recurrence rules when needed. Before any write, perform an availability check and then call the atomic book_slot tool, which uses lock→verify→write→release to prevent conflicts.

When to use it

  • Scheduling a meeting from a natural-language request (e.g., "next Tuesday at 2pm").
  • Checking cross-calendar free/busy across Google, Outlook, and CalDAV accounts.
  • Expanding RRULEs into concrete event instances for recurring events.
  • Converting datetimes between IANA timezones with DST awareness.
  • Booking an event atomically while avoiding double-booking in multi-agent environments.

Best practices

  • Always call get_temporal_context first to avoid timezone/clock assumptions.
  • Resolve all human datetime expressions with resolve_datetime before passing to calendar tools.
  • Run check_availability before book_slot; never skip the conflict check.
  • Use provider-prefixed calendar IDs (e.g., "google/primary") for multi-calendar operations.
  • Use list_events with format: "toon" to reduce token usage when listing ranges.

Example use cases

  • User asks "Find a 30-minute slot tomorrow morning" → resolve_datetime → get_availability → present options.
  • Book a team standup: resolve start/end times → check_availability on team calendars → book_slot if free.
  • Show all instances of a monthly recurring event by calling expand_rrule with dtstart and timezone.
  • Convert a scheduled meeting time to a participant’s timezone using convert_timezone.
  • Handle booking contention by retrying after lock acquisition failure and suggesting alternatives via find_free_slots.

FAQ

If check_availability shows a conflict, call find_free_slots for alternatives and present options. If a lock fails, wait briefly and retry or propose other times.

Does this require user OAuth credentials?

Calendar read/write operations require provider credentials. Run the one-time OAuth setup for Google/Outlook/CalDAV to enable calendar tools. Layer 1 temporal tools work without configuration.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational