42min · Schema
SeriesActionResult
The outcome of one series action. Each action fills in only its own fields, so read the ones documented for the endpoint you called.
SchedulingFreeWebhookAutomation
Properties
| Name | Type | Description |
|---|---|---|
| held | integer | Pause. Occurrences canceled and recorded as owed. |
| created | integer | Resume. Replacement occurrences booked. |
| skipped | array | Resume. Dates the pattern generates but cannot use, whether or not anything was booked. |
| owed | integer | Resume. Occurrences still waiting for a replacement. Non-zero means the series stays paused. |
| canceled | integer | End. Occurrences canceled for good. |
| moved | integer | Change host. Occurrences transferred. |
| unchanged | integer | Change host. Occurrences already hosted by the target, so nothing to transfer. |
| stopped_by | stringnull | Change host. Why the run stopped early, or null when it finished and the series host was changed. A closed set of codes, safe to branch on: - `series_busy`: another action took the series over mid-run |
| superseded | boolean | Pause, Resume and End, plus the resume a pattern-changing PATCH embeds under `resumed`. Another action took the series over while this one was running, so it stopped where it was. The counts above are |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/42min-us/json-schema/42min-us-series-action-result-schema.json",
"title": "SeriesActionResult",
"description": "The outcome of one series action. Each action fills in only its own fields, so\nread the ones documented for the endpoint you called.\n",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/42min-us-api-openapi.yml#/components/schemas/SeriesActionResult",
"type": "object",
"properties": {
"held": {
"type": "integer",
"description": "Pause. Occurrences canceled and recorded as owed."
},
"created": {
"type": "integer",
"description": "Resume. Replacement occurrences booked."
},
"skipped": {
"type": "array",
"description": "Resume. Dates the pattern generates but cannot use, whether or not anything was booked.",
"items": {
"$ref": "#/$defs/SeriesSkip"
}
},
"owed": {
"type": "integer",
"description": "Resume. Occurrences still waiting for a replacement. Non-zero means the series stays paused."
},
"canceled": {
"type": "integer",
"description": "End. Occurrences canceled for good."
},
"moved": {
"type": "integer",
"description": "Change host. Occurrences transferred."
},
"unchanged": {
"type": "integer",
"description": "Change host. Occurrences already hosted by the target, so nothing to transfer."
},
"stopped_by": {
"type": [
"string",
"null"
],
"description": "Change host. Why the run stopped early, or null when it finished and the\nseries host was changed. A closed set of codes, safe to branch on:\n\n- `series_busy`: another action took the series over mid-run. The same\n condition, and the same code, as the 409 this API throws for it.\n- `host_not_allowed`: the credential may not move meetings to that host.\n- `host_not_eligible`: the new host is not an active user of this\n organization.\n- `host_calendar_required`: the new host has no writable calendar of the\n provider this event type's meeting link needs.\n- `host_already_booked`: the new host already has another meeting at that\n occurrence's time. An ordinary scheduling conflict, not a fault of ours;\n pick a different host or time for it and repeat the call.\n- `occurrence_shared`: one occurrence shares its conference or calendar\n entry with another booking, so its host cannot be moved on its own.\n- `occurrence_canceled`: one occurrence was canceled while the run went.\n- `occurrence_not_found`: one occurrence could not be found; it may have\n been removed while the run was going.\n- `occurrence_changed`: one occurrence moved while the run went.\n- `occurrence_busy`: another operation on one occurrence is still\n finishing.\n- `host_change_unavailable`: the per-meeting transfer lock could not be\n taken. Transient; retry.\n- `internal_error`: an unexpected failure. Quote `meta.request_id`.\n\nWhatever the reason, `moved` occurrences ARE on the new host and the series\nhost is unchanged, so the call can simply be repeated once the cause is\nfixed.\n",
"enum": [
null,
"series_busy",
"host_not_allowed",
"host_not_eligible",
"host_calendar_required",
"host_already_booked",
"occurrence_shared",
"occurrence_canceled",
"occurrence_not_found",
"occurrence_changed",
"occurrence_busy",
"host_change_unavailable",
"internal_error"
]
},
"superseded": {
"type": "boolean",
"description": "Pause, Resume and End, plus the resume a pattern-changing PATCH embeds\nunder `resumed`. Another action took the series over while this one was\nrunning, so it stopped where it was. The counts above are what it did\nfinish; repeat the call to do the rest. Change Host never sets this; it\nreports the same situation through `stopped_by` instead.\n\nUnder `resumed` it also covers the case where the resume never started:\nthe PATCH wrote the new pattern and paused the series, and another action\nthen took it over before a single replacement was booked. That is\n`created: 0` with `owed` naming what is still waiting. Read the series\nagain and call `/resume` with the current `ETag`.\n\nThe same field also covers a resume that DID start booking replacements\nbefore being taken over: `created` and `skipped` are what that partial\nwalk actually did, real confirmed meetings and all, never zeroed out\nbecause the run did not finish. `owed` still names what is left, and\n`/resume` with the current `ETag` converges on the rest.\n"
}
},
"$defs": {
"SeriesSkip": {
"type": "object",
"description": "A date in the pattern that could not be booked. It does not shift; it is dropped.",
"required": [
"start_at",
"reason"
],
"properties": {
"start_at": {
"type": "string",
"format": "date-time"
},
"reason": {
"type": "string",
"enum": [
"conflict"
]
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/42min-us-series-action-result"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.