---
title: "Schedule Goal Phone Text"
method: POST
path: "/goals/phone/schedule"
tags: ["goals"]
---

# Schedule Goal Phone Text

`POST /goals/phone/schedule`

Put the athlete's text on the books: tonight or tomorrow, their clock.

The send target is never in the request. It is the phone this session
proved through the code, read from the verification record server-side —
which also bounds the flow in time: the record lives ten minutes from its
mint, so scheduling happens in the same sitting as the verify, the way
the page flows. Without a verified phone the answer is 409: the client
called out of order, and the fix is running the verify first.

Scheduling again replaces the session's open schedule (slot, deadline and
all) — changing your mind is the same request. The timezone arrives from
the athlete's own device and was validated at the schema; nothing here
ever guesses one. The phone never lands in telemetry.

## Request body

- GoalPhoneScheduleRequest — When the athlete wants their text: a slot, on their own clock. No phone field, on purpose: the send target is the number this session already proved through the code, read server-side from the verification record — a request that could name a phone would be a request that could name someone else's.
  - `slot` 'tonight' | 'tomorrow', required — When the athlete asked for their Goals text — both resolve to their evening.
  - `timezone` string, required
  - `locale` string, nullable

## Response `200`

Successful Response

- GoalPhoneScheduleResponse — The schedule is on the books; ``due_at`` is the send instant, UTC.
  - `status` 'scheduled'
  - `slot` 'tonight' | 'tomorrow', required — When the athlete asked for their Goals text — both resolve to their evening.
  - `due_at` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `55d56c4beab4` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/imperfect/apis/imperfect-api/changes/goals/phone/schedule/post.md)

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/53750ba952fc/schema)
