GreatWait
Schedule a call to the user's own app or any API, and read whether it was delivered, through GreatWait's MCP server, HTTP API or command line.
Nathan Stults
@plasticlizard
Install
$ openclaw skills install @plasticlizard/greatwaitGreatWait
Use this when a user wants something to happen later, or on a recurring schedule, by having GreatWait call their app or an API they choose.
Source digest sha256:e15ebd2c3abbe878c9676558697c2d6da7cf237701e6a92a5d7d5a6095e02f21. It describes the production API at build 46febfc8d86e and, from npm, @greatwait/api-client@0.3.1, @greatwait/cli@0.3.1 and @greatwait/contracts@0.3.1.
Connect
- MCP:
https://api.greatwait.dev/mcp, discovery athttps://api.greatwait.dev/.well-known/oauth-protected-resource/mcp. OAuth 2.1 with S256 PKCE, or a scoped API key. - HTTP API:
https://api.greatwait.dev, withAuthorization: Bearer. - Command line:
npm install --global @greatwait/cli.
Plan the call
- Use the authorized project and inspect existing schedules and endpoints when relevant. Identify the user's intended callback endpoint or HTTPS URL, method and data. A timer without a destination cannot deliver a user-visible reminder. Ask where it should call if no receiver was chosen. Never select or create a third-party test URL without the user's approval.
- Resolve an explicit duration to
delaySeconds, an exact instant toat, a fixed interval toeverySeconds, or a wall-clock recurrence tocronwith an IANAtimeZone. Ask for a precise clock time and the user's time zone when words such as 'tomorrow morning' are ambiguous. Do not turn 'every day at nine' into a 24-hour interval; cron observes local time. Explain GreatWait's daylight-saving behavior when it may change the intended instant: a skipped local time runs at the first instant after the gap, and a repeated time runs once at its earlier instant. - Show the resolved trigger, destination, method and data before creating when any material choice is uncertain. A new
urlcan silently create an endpoint and needsendpoints:write; confirm that destination and access rather than requesting a new grant or credential as part of scheduling.
Create and verify
- After the user authorizes the resolved plan, freeze the exact
schedules_createrequest body and oneIdempotency-Keybefore the first call. GreatWait uses the project's endpoint aturl, or creates one without returning its signing secret. Never change the key or recompute a relativeatwhile recovering an uncertain response. - If create returns no certain result, inspect
schedules_readwhen an id is known, orschedules_listto reconcile the project's schedules. Do not blindly create again. An authorized replay within the 24-hour idempotency receipt window must use the same key and identical body; a changed body is refused. If the result remains uncertain or the receipt may have expired, report that uncertainty and ask before any further create. - Read the schedule and
occurrences_read; useattempts_listfor actual attempts. A planned occurrence or passed due time is not delivery. Report pending, failed, cancelled, skipped or ambiguous states as such. Say GreatWait observed a receiver response only when the occurrence succeeded and an actual attempt succeeded with its response status. That response does not prove a downstream email, message or business action completed. Bound polling and report an unsettled result rather than waiting indefinitely. - If the user asks to cancel, inspect the schedule and occurrence first. Cancel a one-shot before delivery starts; cancellation may still win a race as it becomes due. Cancelling a recurring schedule stops future work, not callbacks already sent. Use
schedules_cancelonly for the authorized schedule, read back its state, and treatstate_conflictas not cancelled. Never claim cancellation undid a receiver action.
Rules
- A destination's signing secret and an API key are shown once. Never print, log, or pass either on a command line.
- Use only a destination the user authorized. For an explicitly approved disposable test, ask for the user's unique webhook.site URL (for example,
https://webhook.site/paste-your-unique-id). It is a third party and must receive no real data. Do not create or call a test destination just because the user asked to see GreatWait work. - Preserve the default structured envelope unless the receiver needs direct JSON. POST and PUT support both modes; GET has no body. Header rows have a Secret checkbox; ordinary values read back, secret values are write-only. Keep, replace, remove and inherited-header suppression are explicit actions.
- For custom calls and safe credential input, read https://docs.greatwait.dev/guides/http-calls. Never print a receiver token or put it in command arguments.
- Send an
Idempotency-Keyon every create. A replay is safe only with the original request body and key while its receipt remains valid; never use a fresh key to resolve an uncertain create. - Branch on a refusal's
code, never on its prose. - Delivery is at least once: a receiver must tolerate the same delivery twice.
- A connection works in one project; to work in another, the user connects again.
Read more
Top skills in this category
Playwright MCP
@spiceman161Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.
YouTube
@byungkyuYouTube Data API integration with managed OAuth. Search videos, manage playlists, access channel data, and interact with comments. Use this skill when users want to interact with YouTube. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a YouTube connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a YouTube action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with YouTube examples; they add no YouTube capability - YouTube is not an event source, a trigger cannot read YouTube data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
Peekaboo
@steipeteCapture and automate macOS UI with the Peekaboo CLI.
google-slides
@byungkyuGoogle Slides API integration with managed OAuth. Create presentations, add slides, insert content, and manage slide formatting. Use this skill when users want to interact with Google Slides. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login, or over raw HTTP with a Maton API key where the CLI cannot be installed. Every call is authenticated as the user's connection and reaches only what that connection's authorization allows, which the provider enforces on every request; the endpoints documented here are the ones this skill uses, and any other endpoint of this app needs the user to ask for it by name. Default to read and list calls, and confirm every write or new connection with the user. This file also documents the three constructs that turn a Google Slides connection into automation, in the order they are used: the connection (the first step), a hosted function that runs a Google Slides action through the Maton SDK, and a trigger that calls that function on a schedule or on an event. Those sections are the platform's own reference text, shared with the api-gateway skill, with Google Slides examples; they add no Google Slides capability - Google Slides is not an event source, a trigger cannot read Google Slides data, and the files under `references/<source>/triggers.md` are the platform's event catalogues for the sources Maton offers (time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, Stripe).
百度网盘
@wscats百度网盘(Baidu Drive, pan.baidu.com)文件管理 — 上传、下载、转存、分享、搜索、移动、复制、重命名、创建文件夹、删除(高风险,需用户确认)。 同时支持 Agent 记忆备份/恢复(kimiclaw/maxclaw/qclaw/openclaw)。 TRIGGER: 用户消息明确提及"百...