list_scheduled_transactions
Retrieve all scheduled recurring transactions for a YNAB budget to track upcoming payments and manage financial planning.
Instructions
[1 API call] List all scheduled (recurring) transactions for a budget
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| budget_id | No | Budget ID or 'last-used' | last-used |
| last_knowledge_of_server | No | Delta request token |
Implementation Reference
- Implementation of the list_scheduled_transactions tool handler.
server.registerTool("list_scheduled_transactions", { title: "List Scheduled Transactions", description: "[1 API call] List all scheduled (recurring) transactions for a budget", inputSchema: { budget_id: z.string().default("last-used").describe("Budget ID or 'last-used'"), last_knowledge_of_server: z.number().optional().describe("Delta request token"), }, annotations: { readOnlyHint: true }, }, async ({ budget_id, last_knowledge_of_server }) => { try { const response = await getClient().scheduledTransactions.getScheduledTransactions( budget_id, last_knowledge_of_server ); const txns = response.data.scheduled_transactions; if (txns.length === 0) return textResult("No scheduled transactions found."); const lines = txns.map((t) => { const freq = t.frequency ?? "once"; return `- ${t.date_next ?? t.date_first} | ${formatCurrency(t.amount)} | ${t.payee_name ?? "No payee"} | ${t.category_name ?? "Uncategorized"} | ${freq} | ${t.account_name} [ID: ${t.id}]`; }); return textResult( `Scheduled Transactions (${txns.length}):\n${lines.join("\n")}\n\nServer Knowledge: ${response.data.server_knowledge}` ); } catch (e: any) { return errorResult(e.message); } });