Potniq field guide

Plan a trip. Connect an assistant.

Your assistant supplies the intent. Potniq stores the itinerary, connects the stops and calculates when to leave. Start with the web app, or explore the MCP developer preview.

Start with your next journey

  1. 1. Create your account. Sign up or log in. Account access follows our current rollout; waitlisted accounts need activation before using trip tools.
  2. 2. Add your fixed points. In the web app, create an itinerary and add flights, hotel stays, meetings or ground transport. Include the correct dates, addresses and time zones.
  3. 3. Review the connections. Potniq generates transit between stops. Check the departure times, buffers and any incomplete details before relying on your plan.

Booking email import availability depends on the account rollout. If import is available, review the extracted details before adding them to a trip. An assistant can create structured travel items from details you provide; a dedicated MCP booking-import tool is still planned.

MCP · Developer preview

Connect your assistant

Use a host that supports remote MCP over Streamable HTTP and OAuth. Add the server URL in its MCP connection settings, then follow the browser sign-in and Potniq consent flow.

https://api.potniq.com/mcp

  1. 1. Add the URL to your assistant's remote MCP configuration.
  2. 2. Sign in to Potniq and review the requested read or write permission. Approval belongs to you.
  3. 3. Ask: “What trips do I have coming up?” If you have no trips, create one in the web app or request write access and supply the travel details.
  4. 4. Review saved changes in Potniq. Manage and revoke assistant access from Connections.

Preview status: the URL is the documented server address, not a guarantee of access from every host. Live OAuth and host compatibility are still being validated. No assistant is listed as tested here. Hosts with unsupported callbacks or account restrictions may be unable to connect; use the web app while setup is unavailable.

Things to ask

Check trip readiness

“Check my next trip for timing conflicts and missing details.”

Read permission. Find the trip, then call analyze_itinerary with its ID. This checks saved facts, not live travel status.

Bring it to your calendar

“Export my London trip as a calendar file.”

Read permission. Use export_itinerary_calendar with the explicit trip ID; import the returned .ics snapshot manually and review omission warnings.

Read your week

“What trips do I have coming up? Show me the first one.”

Read permission. Uses list_itineraries and get_itinerary.

Build a journey

“Create a trip with these flight, hotel and meeting details.”

Write permission. Supply exact dates, locations and local time zones; clarify missing facts first.

Move a meeting

“Move the meeting in my London trip to 10:30 on 12 October 2026, London time. Keep the venue.”

Write permission. Read the existing leg, preserve its details and pass both revision timestamps unchanged. If a newer change conflicts, reread and rebuild the edit before retrying.

Find the right place

“Find London Bridge station before adding it to my trip.”

Read permission and configured place search. Choose among ambiguous results before writing.

Move a meeting without overwriting newer details

First call get_itinerary with the chosen trip ID. This illustrative response excerpt contains the trip revision and the meeting's own revision:

{
  "id": "f10b92d5-3a8c-4ed3-94c9-b94c5a3b0a11",
  "title": "London trip",
  "updated_at": "2026-09-30T12:00:00.123456+00:00",
  "legs": [
    {
      "id": "6c9b0e61-6475-4fd1-9b09-d81073517940",
      "type": "activity",
      "order_index": 1,
      "updated_at": "2026-09-30T11:59:00.654321+00:00",
      "leg_data": {
        "activity_name": "Client meeting",
        "location": {
          "address": "QEII Centre, Broad Sanctuary, London SW1P 3EE, UK"
        },
        "start_time": {
          "timestamp": "2026-10-12T09:00:00+01:00",
          "timezone": {
            "timezoneId": "Europe/London"
          }
        },
        "end_time": {
          "timestamp": "2026-10-12T11:00:00+01:00",
          "timezone": {
            "timezoneId": "Europe/London"
          }
        },
        "booking_reference": "MEETING-EXAMPLE"
      }
    }
  ]
}

After confirming the date and London local time, call update_leg with the complete editable meeting details. Preserve the venue, end time and booking reference. Copy both updated_at strings unchanged into the top-level precondition fields:

{
  "itinerary_id": "f10b92d5-3a8c-4ed3-94c9-b94c5a3b0a11",
  "leg_id": "6c9b0e61-6475-4fd1-9b09-d81073517940",
  "expected_updated_at": "2026-09-30T12:00:00.123456+00:00",
  "expected_leg_updated_at": "2026-09-30T11:59:00.654321+00:00",
  "type": "activity",
  "leg_data": {
    "activity_name": "Client meeting",
    "location": {
      "address": "QEII Centre, Broad Sanctuary, London SW1P 3EE, UK"
    },
    "start_time": {
      "timestamp": "2026-10-12T10:30:00+01:00",
      "timezone": {
        "timezoneId": "Europe/London"
      }
    },
    "end_time": {
      "timestamp": "2026-10-12T11:00:00+01:00",
      "timezone": {
        "timezoneId": "Europe/London"
      }
    },
    "booking_reference": "MEETING-EXAMPLE"
  }
}

On REVISION_CONFLICT: the stale edit was rejected. Read the trip again, compare the latest meeting with your intended change and preserve unrelated updates. If the meeting's relevant details changed, ask the traveler how to proceed. Rebuild the edit from the latest facts and copy their revisions unchanged. Never just replace the revision timestamps on an old payload, and never replay a stale edit automatically.

For update_itinerary, supply only the trip revision as expected_updated_at alongside the trip ID and new title. These preconditions are required; background updates can make them stale. After a timeout, reread first to see whether the requested change already landed before deciding to retry.

Take the trip to your calendar

Open a saved itinerary and select Download calendar (.ics), then import the file into your calendar app. Save or discard any edits first. An approved read connection can also request export_itinerary_calendar with the trip ID.

This is a snapshot, not a subscription or automatic sync. After changing a trip, export it again and review your calendar for duplicate entries. Transit entries are estimates; pending routes and items with invalid dates are omitted with warnings.

The file contains travel locations and schedule details. Anyone you share the file or imported calendar with may see them. Review the destination calendar's visibility before importing. Offline downloads use your cached saved trip.

Tool reference

Tools require an authenticated, active account and an approved connection. Your host discovers the full input schemas from the server. This guide describes the current contracts.

list_itineraries

Read

Find current and upcoming trips by default. Use past or all to include history; page through longer lists.

get_itinerary

Read

Read a trip by ID, or select the current or next upcoming trip. Ambiguous matches return candidates to choose from. Returns the trip and leg updated_at values used to guard edits.

analyze_itinerary

Read

Assess a trip by explicit ID using saved facts: timing conflicts, arrival buffers, incomplete routes, missing details and the next timed action. Ready means no detected stored-data issues, not a travel guarantee.

export_itinerary_calendar

Read

Export a saved trip by explicit ID as an iCalendar (.ics) snapshot. Includes supported dated travel items and calculated transit; invalid or unfinished items are omitted with warnings. Import it into your calendar manually. Changes do not automatically sync.

search_places

Read

Resolve a location before writing. Confirm ambiguous matches and preserve Google Maps and provider attributions. Requires configured place search.

create_itinerary

Write

Create a trip from 1–30 ordered travel items. Include a dated item and a location that participates in transit. Potniq generates the connecting transit.

add_leg

Write

Add one travel item to an explicit trip. Potniq assigns its ID and recalculates affected transit.

update_itinerary

Write

Change an existing trip title using its explicit ID and required expected_updated_at from the last read.

update_leg

Write

Replace one existing user leg. Requires expected_updated_at from the trip and expected_leg_updated_at from that leg. Read first and preserve unrelated details. Generated transit cannot be edited through this tool.

Writes need explicit trip IDs where applicable. Timed items need timestamps with offsets. Potniq assigns IDs and ordering; do not submit generated transit items. If a write outcome is uncertain, reread the trip before retrying to avoid duplicate items.

Your data. Your permission.

Read: your approved assistant can access your itinerary details and resolve places. Trip data includes the travel locations, schedule and booking details saved in Potniq. Share access only with an assistant you trust.

Write: the assistant can create trips, add travel items and change supported existing details. Read consent does not permit writes. Upgrading requires a new approval and reconnecting to obtain a fresh token.

Disconnect: revoke the connection from the Connections page. Revocation blocks its access to Potniq; data already received by your host follows that host's policies.

Timing: calculations use routing estimates and configured buffers. They are estimates, not a guarantee. Check the actual flight, rail and local conditions before travel.

Coming later: automatic disruption monitoring, proactive leave-by alerts, booking and rebooking are not current MCP capabilities. Potniq does not autonomously purchase travel or contact providers.

Read our privacy policy for data handling and account rights.

When a connection needs attention

Authentication fails
Try reconnecting once and review account access. If it still fails, stop retrying and report the connection state to [email protected]. Do not share access tokens or authorization URLs.
The assistant cannot write
A read-only connection cannot change your trips. Request write access through a supported client, approve it in Potniq, then reconnect. Never ask an assistant to approve consent for you.
The trip or location is ambiguous
Choose a specific candidate. Clarify dates, local times and venues rather than letting the assistant invent missing facts.
An edit returns REVISION_CONFLICT
The trip or leg changed since your last read, so this stale edit was rejected. Reread it, reconcile the intended change with the latest facts and rebuild the payload. Preserve unrelated updates and ask about competing changes. Copy the new revision timestamps unchanged; do not attach them to the old payload or retry automatically.
An edit is missing its preconditions
Read the trip with get_itinerary. Both edit tools require the trip's updated_at as expected_updated_at; update_leg also requires the selected leg's updated_at as expected_leg_updated_at. Never invent, round or reformat these timestamps.
The tool times out after a change
Read the trip again before retrying. A failed response does not establish that the write failed; creating the same item twice can duplicate it.
Transit is missing or still calculating
Check that travel items have usable locations and dates, then refresh the trip. Review unresolved legs in the web app before relying on departure times.

Prefer a screen? Open your itineraries. For machine-readable orientation, see llms.txt.