Schedule it MCP by usefulapi
Read Schedule it events, resources, groups and labels; create and update events and resources.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"schedule-it": {
"url": "https://schedule-it.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://schedule-it.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (15)
🟢scheduleit_list_events(fields, date_from, date_to, title, resource_ids, ...)
List scheduled events and tasks (bookings, shifts, jobs). Without date_from/date_to Schedule It uses its default date range. Schedule It returns only a short summary of each event unless you name the fields you want: pass `fields` such as id,title,date_start,date_end,owner,notes,completed,priority,custom1 (get_event returns ALL fields of one event). `owner` holds the ids of the resources (people, rooms, equipment) the event is linked to. There is no paging: the reply holds up to `limit` events (default 100), so narrow with the filters instead. Do not call this repeatedly to watch for changes (use modified_after to fetch only what changed). GET /api/events.
Eingabe-Schema
{
"type": "object",
"properties": {
"fields": {
"description": "Comma-separated fields to return, e.g. id,title,date_start,date_end,owner.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
},
"date_from": {
"description": "Events from this date (date_range_from).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"date_to": {
"description": "Events up to this date (date_range_to).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"title": {
"description": "Events whose title contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"resource_ids": {
"description": "Only events linked to these resources (see resource_match).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"resource_match": {
"description": "With resource_ids: any = linked to at least one (default), all = linked to every one, none = linked to none of them.",
"type": "string",
"enum": [
"any",
"all",
"none"
]
},
"event_ids": {
"description": "Only these event ids.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"tasks_only": {
"description": "true = only tasks, false = only events that are not tasks.",
"type": "boolean"
},
"no_date_only": {
"description": "true = only events with no date, false = only dated ones.",
"type": "boolean"
},
"modified_after": {
"description": "Only events added or changed after this date (yyyy-mm-dd) or date and time (yyyy-mm-dd hh:mm).",
"type": "string"
},
"workspace_id": {
"description": "Workspace id (Account Settings > Workspaces). Omit for the main workspace (id 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Most events to return, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_get_event(event_id)
One event or task by id with ALL its fields (title, dates, linked resources, notes, completion, priority, custom fields). GET /api/events/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It event id."
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡scheduleit_create_event(title, resource_ids, date_start, date_end, notes, ...)
WRITE: create a new event (booking, shift, job or task) in the Schedule It account, optionally linked to resources. It becomes visible to everyone with access to the schedule, and Schedule It may notify the linked resources according to the account's own notification settings. Confirm the title, dates and resources with the user first. POST /api/events.
Eingabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 250,
"description": "Event title."
},
"resource_ids": {
"description": "Resources (people, rooms, equipment) the event is linked to (the `owner` field). On update this REPLACES the whole list.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"date_start": {
"description": "Start, yyyy-mm-dd hh:mm[:ss].",
"type": "string"
},
"date_end": {
"description": "End, yyyy-mm-dd hh:mm[:ss].",
"type": "string"
},
"notes": {
"description": "Notes. On update an empty string clears them.",
"type": "string",
"maxLength": 20000
},
"custom_fields": {
"description": "Custom field values keyed custom1..custom9 (the account's custom field labels are set in Schedule It). An empty string clears a field.",
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"custom1",
"custom2",
"custom3",
"custom4",
"custom5",
"custom6",
"custom7",
"custom8",
"custom9"
]
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"completed": {
"description": "Percent completed, 0-100.",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"priority": {
"description": "Priority number (Schedule It's priority scale).",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"color_back": {
"description": "Background colour, e.g. #FFFFFF.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_text": {
"description": "Text colour, e.g. #66FF66.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
},
"required": [
"title"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴scheduleit_update_event(event_id, title, resource_ids, date_start, date_end, ...)
WRITE: change fields of an existing event; only the fields you pass are changed, the rest stay as they are. Passing resource_ids replaces the whole list of linked resources; an empty string clears notes or a custom field. Changing dates or resources may notify people per the account's notification settings. POST /api/events/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It event id."
},
"title": {
"description": "Event title.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"resource_ids": {
"description": "Resources (people, rooms, equipment) the event is linked to (the `owner` field). On update this REPLACES the whole list.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"date_start": {
"description": "Start, yyyy-mm-dd hh:mm[:ss].",
"type": "string"
},
"date_end": {
"description": "End, yyyy-mm-dd hh:mm[:ss].",
"type": "string"
},
"notes": {
"description": "Notes. On update an empty string clears them.",
"type": "string",
"maxLength": 20000
},
"custom_fields": {
"description": "Custom field values keyed custom1..custom9 (the account's custom field labels are set in Schedule It). An empty string clears a field.",
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"custom1",
"custom2",
"custom3",
"custom4",
"custom5",
"custom6",
"custom7",
"custom8",
"custom9"
]
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"completed": {
"description": "Percent completed, 0-100.",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"priority": {
"description": "Priority number (Schedule It's priority scale).",
"type": "integer",
"minimum": 0,
"maximum": 100
},
"color_back": {
"description": "Background colour, e.g. #FFFFFF.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_text": {
"description": "Text colour, e.g. #66FF66.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴scheduleit_delete_event(event_id, confirm)
WRITE, DESTRUCTIVE: permanently delete one event or task. It cannot be undone through the API. Only call this when the user clearly asked for this event to be deleted. DELETE /api/events/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It event id to delete."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: the user confirmed this event should be permanently deleted."
}
},
"required": [
"event_id",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_list_resources(fields, name, group_ids, resource_ids, modified_after, ...)
List resources: the people, rooms, equipment or vehicles that events are scheduled against. Schedule It returns only a short summary unless you pass `fields` (for example id,name,email,data1; get_resource returns ALL fields of one). Resources belong to groups (`owner` = group ids). There is no paging; the reply holds up to `limit` resources (default 100). GET /api/resources.
Eingabe-Schema
{
"type": "object",
"properties": {
"fields": {
"description": "Comma-separated fields to return, e.g. id,name,email.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
},
"name": {
"description": "Resources whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"group_ids": {
"description": "Only resources in these groups.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"resource_ids": {
"description": "Only these resource ids.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"modified_after": {
"description": "Only resources added or changed after this date (yyyy-mm-dd) or date and time (yyyy-mm-dd hh:mm).",
"type": "string"
},
"workspace_id": {
"description": "Workspace id (Account Settings > Workspaces). Omit for the main workspace (id 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Most resources to return, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_get_resource(resource_id)
One resource by id with ALL its fields (name, email, groups, details 1-10, colours, skills). GET /api/resources/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"resource_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It resource id."
}
},
"required": [
"resource_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡scheduleit_create_resource(name, group_ids, email, details, color_back, ...)
WRITE: add a new resource (a person, room, piece of equipment) to the Schedule It account. It may count toward the account's licensed resources or users. Confirm the details with the user first. POST /api/resources.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 250,
"description": "Resource name."
},
"group_ids": {
"description": "Groups the resource belongs to (the `owner` field). On update this REPLACES the whole list.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"email": {
"description": "Email address of the resource (an empty string clears it on update).",
"type": "string",
"maxLength": 250
},
"details": {
"description": "Detail values keyed data1..data10 (for example data1 = job title; the labels are set in Schedule It). An empty string clears a field.",
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"data1",
"data2",
"data3",
"data4",
"data5",
"data6",
"data7",
"data8",
"data9",
"data10"
]
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"color_back": {
"description": "Resource background colour, e.g. #A9F5A9.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_text": {
"description": "Resource text colour.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_event_back": {
"description": "Background colour of this resource's events.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴scheduleit_update_resource(resource_id, name, group_ids, email, details, ...)
WRITE: change fields of an existing resource; only the fields you pass are changed. Passing group_ids replaces the whole list of groups; an empty string clears email or a detail field. POST /api/resources/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"resource_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It resource id."
},
"name": {
"description": "Resource name.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"group_ids": {
"description": "Groups the resource belongs to (the `owner` field). On update this REPLACES the whole list.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"email": {
"description": "Email address of the resource (an empty string clears it on update).",
"type": "string",
"maxLength": 250
},
"details": {
"description": "Detail values keyed data1..data10 (for example data1 = job title; the labels are set in Schedule It). An empty string clears a field.",
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"data1",
"data2",
"data3",
"data4",
"data5",
"data6",
"data7",
"data8",
"data9",
"data10"
]
},
"additionalProperties": {
"type": "string",
"maxLength": 2000
}
},
"color_back": {
"description": "Resource background colour, e.g. #A9F5A9.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_text": {
"description": "Resource text colour.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"color_event_back": {
"description": "Background colour of this resource's events.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
}
},
"required": [
"resource_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_list_groups(fields, name, group_ids, workspace_id, limit)
List resource groups (the categories resources are organised in, e.g. Staff, Rooms, Vehicles). Pass `fields` (e.g. id,name) for more than the short summary. GET /api/groups.
Eingabe-Schema
{
"type": "object",
"properties": {
"fields": {
"description": "Comma-separated fields to return, e.g. id,name.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
},
"name": {
"description": "Groups whose name contains this text.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"group_ids": {
"description": "Only these group ids.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"workspace_id": {
"description": "Workspace id (Account Settings > Workspaces). Omit for the main workspace (id 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"limit": {
"description": "Most groups to return, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_get_group(group_id)
One resource group by id with ALL its fields. GET /api/groups/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It group id."
}
},
"required": [
"group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡scheduleit_create_group(name, color_back, position, min_resources, max_resources, ...)
WRITE: add a new resource group to the Schedule It account. POST /api/groups.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 250,
"description": "Group name."
},
"color_back": {
"description": "Group colour, e.g. #66FF66.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"position": {
"description": "Position of the group in the schedule (positionv).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"min_resources": {
"description": "Fewest resources an event needs from this group (0 = no minimum).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"max_resources": {
"description": "Most resources an event can use from this group (0 = no limit).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"hide_from_main": {
"description": "Hide the group from the main schedule view.",
"type": "boolean"
},
"hide_from_event": {
"description": "Hide the group from the event form.",
"type": "boolean"
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴scheduleit_update_group(group_id, name, color_back, position, min_resources, ...)
WRITE: change fields of an existing resource group; only the fields you pass are changed. POST /api/groups/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"group_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Schedule It group id."
},
"name": {
"description": "Group name.",
"type": "string",
"minLength": 1,
"maxLength": 250
},
"color_back": {
"description": "Group colour, e.g. #66FF66.",
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"position": {
"description": "Position of the group in the schedule (positionv).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"min_resources": {
"description": "Fewest resources an event needs from this group (0 = no minimum).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"max_resources": {
"description": "Most resources an event can use from this group (0 = no limit).",
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"hide_from_main": {
"description": "Hide the group from the main schedule view.",
"type": "boolean"
},
"hide_from_event": {
"description": "Hide the group from the event form.",
"type": "boolean"
}
},
"required": [
"group_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_list_labels(fields, limit)
List the labels that can be put on events (for example Confirmed, Urgent). Pass `fields` (e.g. id,name) for more than the short summary. GET /api/labels.
Eingabe-Schema
{
"type": "object",
"properties": {
"fields": {
"description": "Comma-separated fields to return, e.g. id,name.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
},
"limit": {
"description": "Most labels to return, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢scheduleit_list_label_groups(fields, limit)
List label groups (the categories that labels are organised in). Pass `fields` (e.g. id,name) for more than the short summary. GET /api/labelgroups.
Eingabe-Schema
{
"type": "object",
"properties": {
"fields": {
"description": "Comma-separated fields to return, e.g. id,name.",
"type": "string",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_]+(,[A-Za-z0-9_]+)*$"
},
"limit": {
"description": "Most label groups to return, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis