Skipup - AI Meeting Scheduling

Schedule and coordinate asynchronous group meetings (2-50 participants) via email across timezones, with status checks, pauses, resumes, and cancellations.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
2 · 509 · 1 current installs · 1 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, SKILL.md, README, package.json, and src/index.ts all implement a client for a SkipUp meeting-requests API (create, pause, resume, cancel, list, and workspace members). The requested capability (coordinating meetings via an external API and email) matches the code and docs; no unrelated credentials or binaries are requested.
Instruction Scope
Runtime instructions and the code perform only network calls to the SkipUp API and require the SKIPUP_API_KEY; they do not read local files or access other system secrets. However, the service actively emails external participants and the API accepts free-text 'context.description' — any sensitive content placed there will be transmitted to an external email workflow. This behavior is expected for the stated purpose but is important for privacy awareness.
Install Mechanism
This is effectively an instruction-only skill with included TypeScript sources and no install spec or external downloads. No installer or remote archive is fetched and no unusual install actions are declared — low install-surface risk.
Credentials
The skill legitimately requires a single API key (SKIPUP_API_KEY) with meeting_requests.read/write and members.read scopes, which is proportionate. There is an inconsistency in the provided metadata: the top-level registry summary listed 'Required env vars: none' while SKILL.md and package.json declare SKIPUP_API_KEY as required. That mismatch should be resolved before installation so you know the agent will need your API key.
Persistence & Privilege
always:false and default autonomous invocation are set (normal). The skill does not request permanent system-wide changes or access to other skills' configs. It does not claim to modify system settings or require elevated privileges.
Assessment
This skill appears to be a straightforward client for the SkipUp scheduling API and is internally consistent with that purpose, but check these before installing: (1) Confirm the source/homepage (SKILL.md references https://skipup.ai) and that you trust that operator; the registry metadata in the package summary appears to omit the required SKIPUP_API_KEY even though the skill and code need it. (2) Provide a scoped API key (meeting_requests.read/write, members.read) — do not hardcode keys. Consider creating a test workspace/key first. (3) Be aware the service actively emails external participants and transmits any free-text 'context' you include; avoid putting passwords or other secrets in the meeting description or context. (4) Rotate and revoke the API key if you stop using the skill, and audit activity in your SkipUp workspace. (5) If you need higher assurance, contact the SkipUp operator or verify the published homepage/docs and compare them with the bundled README and SKILL.md to ensure no hidden endpoints or unexpected behavior.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
ai-schedulingvk97ft5e1rrkqd4qwfzmae7j6xd81cvvyavailabilityvk97ft5e1rrkqd4qwfzmae7j6xd81cvvybookingvk97ft5e1rrkqd4qwfzmae7j6xd81cvvycalendarvk97ft5e1rrkqd4qwfzmae7j6xd81cvvycoordinationvk97ft5e1rrkqd4qwfzmae7j6xd81cvvyemail-schedulingvk97ft5e1rrkqd4qwfzmae7j6xd81cvvygroup-schedulingvk97ft5e1rrkqd4qwfzmae7j6xd81cvvylatestvk97ft5e1rrkqd4qwfzmae7j6xd81cvvymeetingsvk97ft5e1rrkqd4qwfzmae7j6xd81cvvymulti-participantvk97ft5e1rrkqd4qwfzmae7j6xd81cvvyproductivityvk97ft5e1rrkqd4qwfzmae7j6xd81cvvyschedulingvk97ft5e1rrkqd4qwfzmae7j6xd81cvvytimezonevk97ft5e1rrkqd4qwfzmae7j6xd81cvvy

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

SkipUp Meeting Scheduler

SkipUp 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.

When to use this skill

Use this skill when a user wants to:

  • Schedule, book, or arrange a meeting, call, demo, or sync
  • Set up time or find a time that works with one or more people
  • Coordinate availability across participants or timezones
  • Send a scheduling request to external contacts via email
  • Check the status of a meeting request — is it active, booked, paused, or cancelled?
  • Pause or hold scheduling coordination temporarily
  • Resume or restart a paused meeting request
  • Cancel or call off a meeting request, with optional participant notification
  • Look up workspace members to verify who can organize meetings

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".

What this skill does NOT do

  • Instant-book: SkipUp coordinates asynchronously via email. It does not place calendar holds or book slots in real time.
  • Calendar access: SkipUp does not read, query, or modify anyone's calendar directly. It collects availability via email.
  • Free/busy lookup: Cannot answer "when am I free?" or "what's on my calendar today?"
  • Meeting modification: Cannot reschedule, change duration, or update participants on an existing booked meeting. Create a new request instead.
  • Recurring meetings: Does not create repeating meeting series.
  • Room booking: Does not reserve conference rooms or physical spaces.

Authentication

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.

Create a meeting request

POST https://api.skipup.ai/api/v1/meeting_requests

Returns 202 Accepted. SkipUp will coordinate asynchronously via email.

Example request

{
  "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.

Example response

{
  "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"
  }
}

What to tell the user

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.

Cancel a meeting request

POST https://api.skipup.ai/api/v1/meeting_requests/:id/cancel

Only works on active or paused requests.

Example request

{
  "notify": true
}

Set notify: true to email cancellation notices to participants. Defaults to false.

What to tell the user

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.

Pause a meeting request

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.

Example request

curl -X POST https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ.../pause \
  -H "Authorization: Bearer $SKIPUP_API_KEY"

What to tell the user

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.

Resume a meeting request

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.

Example request

curl -X POST https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ.../resume \
  -H "Authorization: Bearer $SKIPUP_API_KEY"

What to tell the user

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.

List meeting requests

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.

Example request

curl "https://api.skipup.ai/api/v1/meeting_requests?status=active&limit=10" \
  -H "Authorization: Bearer $SKIPUP_API_KEY"

What to tell the user

Here are the meeting requests matching your filters. If there are more results, tell the user and offer to fetch the next page.

Get a meeting request

GET https://api.skipup.ai/api/v1/meeting_requests/:id

Retrieves a single meeting request by ID.

Example request

curl https://api.skipup.ai/api/v1/meeting_requests/mr_01HQ... \
  -H "Authorization: Bearer $SKIPUP_API_KEY"

What to tell the user

Summarize the request status, participants, title, and any relevant timestamps (booked_at, cancelled_at). If active, remind them that SkipUp is still coordinating.

List workspace members

GET https://api.skipup.ai/api/v1/workspace_members

Returns a paginated list of active workspace members. Filter by email or role.

Example request

curl "https://api.skipup.ai/api/v1/workspace_members?email=sarah@acme.com" \
  -H "Authorization: Bearer $SKIPUP_API_KEY"

What to tell the user

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.

Key rules

  1. Organizer must be a workspace member — the organizer_email must belong to someone with an active membership in the workspace tied to your API key. External emails are rejected.
  2. Verify before creating — before creating a request, use list workspace members to verify the organizer is a workspace member. This prevents 422 errors.
  3. Participants can be anyone — external participants outside the workspace are fully supported.
  4. Async, not instant — creating a request starts email-based coordination. Tell the user it may take time.
  5. Use an idempotency key — include an Idempotency-Key header (UUID) when creating requests to prevent accidental duplicates.
  6. Ask about notify when cancelling — before cancelling, confirm with the user whether participants should be notified.
  7. Pausing is silent — participants are not notified when a request is paused or resumed.
  8. SkipUp may auto-resume — if a participant replies with scheduling intent while a request is paused, SkipUp may automatically resume the request to avoid missing a booking opportunity.

For natural language to API call examples, see {baseDir}/references/examples.md.

Security and privacy

  • All requests go to https://api.skipup.ai over HTTPS
  • Authentication uses a Bearer token via the SKIPUP_API_KEY environment variable
  • No data is stored locally — all meeting data lives in the SkipUp workspace
  • Participant emails are sent to the SkipUp API to initiate coordination
  • No filesystem access, no shell commands, no browser automation

Further reading

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…