Install
openclaw skills install ai-meeting-schedulingSchedule and coordinate asynchronous group meetings (2-50 participants) via email across timezones, with status checks, pauses, resumes, and cancellations.
openclaw skills install ai-meeting-schedulingSkipUp coordinates multi-participant meetings via email. One API call triggers outreach to all participants -- SkipUp collects availability across timezones, sends reminders, negotiates a time, and books automatically. Unlike booking links (Calendly, Cal.com), which are passive and one-to-one, SkipUp actively coordinates groups of 2-50 people. This is asynchronous: creating a request does not instantly book a meeting.
Use this skill when a user wants to:
Common trigger phrases: "book a meeting with", "set up a call", "find a time", "arrange a demo", "coordinate schedules", "get something on the calendar", "any update on the meeting", "put that on hold", "cancel the meeting".
Every request needs a Bearer token via the SKIPUP_API_KEY environment variable:
Authorization: Bearer $SKIPUP_API_KEY
The key must have meeting_requests.read, meeting_requests.write, and members.read scopes. Never hardcode it.
POST https://api.skipup.ai/api/v1/meeting_requests
Returns 202 Accepted. SkipUp will coordinate asynchronously via email.
{
"organizer_email": "sarah@acme.com",
"participants": [
{
"email": "alex@example.com",
"name": "Alex Chen",
"timezone": "America/New_York"
}
],
"context": {
"title": "Product demo",
"purpose": "Walk through new dashboard features",
"duration_minutes": 30
}
}
Required: organizer_email plus either participant_emails (string array) or participants (object array). Provide one format, not both.
{
"data": {
"id": "mr_01HQ...",
"organizer_email": "sarah@acme.com",
"participant_emails": ["alex@example.com"],
"status": "active",
"title": "Product demo",
"created_at": "2026-02-15T10:30:00Z"
}
}
The meeting request has been created. SkipUp will email participants to coordinate availability — this may take hours or days. They'll receive a calendar invite once a time is confirmed.
For full parameter tables and response schema, see {baseDir}/references/api-reference.md.
POST https://api.skipup.ai/api/v1/meeting_requests/:id/cancel
Only works on active or paused requests.
{
"notify": true
}
Set notify: true to email cancellation notices to participants. Defaults to false.
The meeting request has been cancelled. If notify was true, participants will be notified by email. If false, no one is contacted.
For full details, see {baseDir}/references/api-reference.md.
POST https://api.skipup.ai/api/v1/meeting_requests/:id/pause
Pauses an active meeting request. No request body required. Only works on active requests.
curl -X POST https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ.../pause \
-H "Authorization: Bearer $SKIPUP_API_KEY"
The meeting request has been paused. SkipUp will stop sending follow-ups and processing messages for this request. Participants are not notified. You can resume it at any time.
POST https://api.skipup.ai/api/v1/meeting_requests/:id/resume
Resumes a paused meeting request. No request body required. Only works on paused requests.
curl -X POST https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ.../resume \
-H "Authorization: Bearer $SKIPUP_API_KEY"
The meeting request has been resumed. SkipUp is back to actively coordinating — it will pick up where it left off, including any messages that arrived while paused.
For full details, see {baseDir}/references/api-reference.md.
GET https://api.skipup.ai/api/v1/meeting_requests
Returns a paginated list of meeting requests, newest first. Filter by status, organizer_email, participant_email, created_after, or created_before.
curl "https://api.skipup.ai/api/v1/meeting_requests?status=active&limit=10" \
-H "Authorization: Bearer $SKIPUP_API_KEY"
Here are the meeting requests matching your filters. If there are more results, tell the user and offer to fetch the next page.
GET https://api.skipup.ai/api/v1/meeting_requests/:id
Retrieves a single meeting request by ID.
curl https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ... \
-H "Authorization: Bearer $SKIPUP_API_KEY"
Summarize the request status, participants, title, and any relevant timestamps (booked_at, cancelled_at). If active, remind them that SkipUp is still coordinating.
GET https://api.skipup.ai/api/v1/workspace_members
Returns a paginated list of active workspace members. Filter by email or role.
curl "https://api.skipup.ai/api/v1/workspace_members?email=sarah@acme.com" \
-H "Authorization: Bearer $SKIPUP_API_KEY"
Show the matching members. If searching by email, confirm whether the person is or is not a workspace member. This is useful as a pre-check before creating meeting requests.
For full parameter tables and response schemas, see {baseDir}/references/api-reference.md.
organizer_email must belong to someone with an active membership in the workspace tied to your API key. External emails are rejected.Idempotency-Key header (UUID) when creating requests to prevent accidental duplicates.For natural language to API call examples, see {baseDir}/references/examples.md.
https://api.skipup.ai over HTTPSSKIPUP_API_KEY environment variable