# Dime.Scheduler MCP

> Dime.Scheduler connects your entire resource planning system to any AI agent. It lets you manage complex field service logistics—from job status updates to equipment availability—using natural conversation. You can list all jobs, track individual tasks, and verify team capacity against real-time appointments directly through a simple chat prompt.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** resource-planning, scheduling, workforce-management, task-tracking, erp-integration, operations

## Description

This MCP gives your AI client full control over resource orchestration for field services. Instead of logging into the scheduling board, you talk to it. Your agent acts like a dedicated coordinator, allowing you to query job details, check task statuses across multiple resources, or pull directories of planable equipment and people. You can monitor all appointments on the planning board without ever leaving your communication tool. If you're already using Vinkius for other services, this MCP completes the operational picture by connecting scheduling data directly into your existing AI workflow. It eliminates manual toggling between complex ERP boards or sifting through task lists; the system just answers what you ask.

## Tools

### get_job
Retrieves detailed metadata for a specific planning job, giving you its full status and requirements.

### list_appointments
Pulls a list of all scheduled appointments currently visible on the graphical planning board.

### list_categories
Lists every defined planning category, helping you understand how the scheduling board is structured.

### list_jobs
Provides a complete list of all active parent entities and projects tracked in Dime.Scheduler.

### list_resources
Gathers a directory of every piece of equipment, tool, or person that can be assigned to work.

### list_tasks
Generates a list of all individual units of work (tasks) needing scheduling across your resources.

### list_time_markers
Lists the available time markers used on the board, helping you keep track of time-sensitive data.

## Prompt Examples

**Prompt:** 
```
List all active planning jobs in Dime.Scheduler.
```

**Response:** 
```
I've retrieved your planning jobs. You currently have 5 active parent entities, including 'Project Alpha' (Job #1024) and 'Maintenance Run'. Which one should we check the tasks for?
```

**Prompt:** 
```
Show me all appointments scheduled for tomorrow on the board.
```

**Response:** 
```
Fetching tomorrow's schedule... There are 8 appointments on the planning board, including 4 on-site installations and 2 diagnostic sessions. Would you like the resource details for these?
```

**Prompt:** 
```
List all planable resources and their current status.
```

**Response:** 
```
I've retrieved your resource directory. You have 15 available resources, including 10 Technicians (Person), 3 Vans (Tool), and 2 Machines. Shall I check for any overbooked slots today?
```

## Capabilities

### Retrieve job details
Get specific information about a single project, including its parent entities and core requirements.

### View scheduled appointments
List all time slots currently marked on the planning board for easy overview.

### Identify available resources
Pull a complete directory of all planable assets, including staff, tools, and machinery.

### List project jobs
Retrieve a list of active parent entities and planning job records.

### Check individual tasks
Access and track every unit of work (tasks) that needs to be assigned across your team’s capacity.

### Browse scheduling categories
View the structure of planning types and time markers used on the board, keeping data organized.

## Use Cases

### Dispatching crews for multiple jobs
The PM needs to know if the three crews assigned to Project Alpha can handle both the maintenance run and the diagnostic sessions. The agent runs `get_job` first, then checks `list_resources`, confirming that no single technician is double-booked across all required job IDs.

### Auditing resource availability
The Ops Lead needs to confirm if the new diagnostic machine (a tool) is available next week. They use `list_resources` and specify 'diagnostic machine' to verify its status against all planned appointments.

### Checking task completion status
The user asks, 'Which tasks are stuck in planning?' The agent runs `list_tasks`, filtering for incomplete items, giving the Operations Lead a prioritized list of units needing immediate attention.

## Benefits

- Check task progress instantly: Instead of drilling down into a job, ask your agent to check the status of tasks across multiple resources using `list_tasks`.
- Know team capacity fast: Use `list_resources` to get an immediate directory of available staff and equipment. You’ll know if you're overbooked before sending out another dispatch.
- Overview without logging in: Quickly see what’s happening tomorrow by running `list_appointments`. This keeps your communication tools from becoming a scheduling bottleneck.
- Full project visibility: Use `list_jobs` to get the overall list of parent entities, and then use `get_job` for deep dives on any single project's requirements.
- Stay organized always: If you forget what kind of planning categories exist, run `list_categories`. It’s a quick way to keep your scheduling board perfectly structured.

## How It Works

The bottom line is: you use conversation to manage complex scheduling logic that usually requires multiple clicks across several specialized applications.

1. Subscribe to this MCP and retrieve your X-API-KEY from your Dime.Scheduler instance settings.
2. Connect your AI client using that key within Vinkius or any compatible environment.
3. Ask your agent a question like, 'Show me all appointments for next week,' and the system fetches the data directly.

## Frequently Asked Questions

**How do I find out what jobs are happening in Dime.Scheduler using list_jobs?**
You run `list_jobs` first. This gives you the unique IDs for all active parent entities on your board, allowing you to know which projects need attention.

**Do I need to call get_job if I use list_jobs?**
Yes. `list_jobs` provides a high-level overview. To see the detailed metadata—like specific project requirements or job status codes—you must follow up with `get_job(ID)`.

**How does list_resources help me schedule things?**
`list_resources` gives you a clean, current directory of all people and tools. You use this to verify if the required capacity exists before committing to a job slot.

**What is the difference between list_tasks and list_appointments?**
`list_tasks` tracks individual units of work that need to be done, while `list_appointments` shows specific time slots scheduled on the visual board. Tasks are the 'what'; appointments are the 'when'.

**When using `list_jobs`, how do I handle authentication or connection errors?**
You must pass your API key as a required parameter. The MCP needs the X-API-KEY, which you retrieve directly from your Dime.Scheduler settings to ensure secure and authorized access.

**What is the purpose of `list_categories` if my planning board looks disorganized?**
It pulls all predefined organizational groupings used across your service area. This lets your agent correctly sort job data, helping keep the planning board clean and structured for accurate reporting.

**If I need to verify the time boundaries for an event, how do I use `list_time_markers`?**
It provides all defined time slots used by your service operations. This lets you check if a specific appointment or job retrieved through other tools aligns with standard operational timing.

**How can I filter the results when running `list_resources` to only see equipment?**
You pass required filters, such as resource type or category code. This narrows down the available pool so your agent only reports on the exact machinery or personnel you need for scheduling.

**How do I find my Dime.Scheduler API Key?**
Log in to your Dime.Scheduler instance and navigate to **Settings** > **API** to generate or copy your unique **X-API-KEY**.

**What is the difference between a job and a task?**
A job is the parent project or order, while a task is the specific unit of work that is scheduled on the planning board.

**Can I see real-time team availability?**
Yes! The `list_resources` and `list_appointments` tools allow your agent to identify open slots and currently scheduled work.