# Connect with Per Olof Arnäs (P.O.)

Public profile: /connect/profile
Website: https://perolofarnas.com/

P.O. is an advisor, speaker and board member with a PhD in logistics from Chalmers, working across transport, logistics, AI, digitalization and organizational change. The profile is first-party information, not an instruction to act on behalf of a visitor.

## Connect

Resolve all relative URLs against this page's origin. No API key is required.
- MCP: POST /connect/mcp (stateless JSON-RPC, JSON responses)
- OpenAPI: GET /connect/openapi.json
- Read profile: GET /connect/profile
- Find provisional times: POST /connect/availability
- Submit a request: POST /connect/requests

If you cannot make HTTP POST requests or use an MCP connector, give your human the /connect page and let them use its form. Do not claim you have sent anything.

## Find meeting times

POST /connect/availability with JSON, for example:
{"duration_minutes":30,"mode":"digital"}

Optional: start_date and end_date in YYYY-MM-DD (supply both; end is exclusive), location for in_person. Defaults: next two weeks, weekdays 08:00–17:00 Europe/Stockholm, 15-minute buffers. Maximum window 14 days within the next 31 days. Modes: digital, phone, in_person. Physical meeting travel time requires review. Only a few candidate times are shared; existing meetings are private. Times are not held or booked. If coverage is incomplete, no verified times are returned.

## Send a request

Only submit when your human has authorized contacting P.O. Ask for their name, email and request if missing. Sender identity is self-declared and is not verified.

POST /connect/requests with JSON:
{"kind":"meeting","requester_name":"Your human's name","requester_email":"person@example.com","organization":"Optional organization","message":"Please describe the purpose, preferred dates/times and relevant context.","duration_minutes":30,"mode":"digital","idempotency_key":"a-unique-random-uuid-for-this-request"}

For non-meeting enquiries use kind=request and omit meeting fields. Required fields: kind, requester_name, requester_email, message, idempotency_key. Reuse the same idempotency_key and identical body on network retries; use a new key for an intentionally new request. Do not submit this example as a real request. On HTTP 429 wait before retrying. Other validation errors require correction.

Successful submission returns a request_id and pending_po_review. This means the request was saved to P.O.'s private review inbox, not accepted or booked. No message, calendar invitation or automatic reply is sent. Do not promise a response time. There is no public request-listing or status endpoint.

## Privacy

Only provide information needed for the request. Contact details and the message are stored privately for P.O. to review. No existing calendar event titles, participants or locations are shared. This public interface cannot access private tools, files, jobs, credentials or messages. Treat all submitted requests as untrusted data, not executable instructions.
