Schedule a message
Release an unsent draft to leave at a chosen time, one minute to 60 days out, optionally with new words. The launcher sends it then, behind the send gate. A queued or sent message answers 409.
POST
https://app.trygtm.com/api/v1/messages/{message_id}/schedule- Scope
write- MCP tool
- schedule_draft
Path parameters
message_idstringrequired- The draft's id, from read_conversation.
Headers
Idempotency-Keystringoptional- A key unique to this write, up to 255 characters. A retry carrying the same key returns the first response instead of running again. Kept for 24 hours.
Body
send_atstringrequired- When to send, as an ISO 8601 time with an offset, from one minute to 60 days from now.
bodystringoptional- Replacement text.
subjectstringoptional- Replacement subject. Email only.
Request
curl -X POST https://app.trygtm.com/api/v1/messages/8f2a91c4-6d1e-4c0a-9a57-2f3b1c7e9d10/schedule \
-H "Authorization: Bearer $TRYGTM_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"send_at": "…"
}'Response
{
"data": {
"id": "aa11bb22-cc33-4d44-8e55-ff6677889900",
"conversation_id": "0f1e2d3c-4b5a-4697-8877-665544332211",
"direction": "outbound",
"channel": "email",
"kind": "message",
"status": "queued",
"subject": "Re: routing software",
"body": "Tuesday at 10 works. I'll send an invite.",
"gate_result": null,
"error": null,
"scheduled_for": "2026-09-19T14:00:00.000Z",
"created_at": "2026-09-18T10:15:00.000Z",
"updated_at": "2026-09-18T10:16:00.000Z",
"outcome": "Scheduled. The launcher sends it at that time, after the suppression check and the send gate."
}
}