ic_resources_book
ActiveTool of Immersive Commons
Queue a booking envelope for life-side processing — Ray's life repo (kernel.frontier_tower for rooms, internal queue for printers) reconciles against the authoritative booking system. Returns 'queued', not 'confirmed.' Rate-limited 10/token/UTC day; 30-day dedupe on (resource_id, user, start_iso). Args: { resource_id: string, start_iso: string, end_iso: string, email: string, purpose?: string }. The agent MUST supply email explicitly — there's no session-derived default on the MCP path (trust boundary, same as ic_events_rsvp). Required scope: resources:book.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"resource_id",
"start_iso",
"end_iso",
"email"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Email Luma / Frontier Tower should attach to the booking. Required for agent callers."
},
"end_iso": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO-8601 end timestamp."
},
"purpose": {
"type": "string",
"maxLength": 600,
"description": "What the booking is for. Optional."
},
"start_iso": {
"type": "string",
"maxLength": 40,
"minLength": 10,
"description": "ISO-8601 start timestamp."
},
"resource_id": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Resource id from ic_resources_list."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Immersive Commons
https://github.com/immersive-commons/ic-skills
1/7 registries