文档菜单
A PRACTICAL GUIDE
Scheduling an Alimtalk or SMS — scheduleType and at
Send at a specific time with scheduleType SCHEDULED. Timestamp format, the KST timezone trap, and how scheduling interacts with the advertising night ban.
이 문서의 목차
POST /api/v2/notices/send이 가이드는 아직 번역되지 않아 English 문서를 표시합니다.
To send at a specific time, set scheduleType to SCHEDULED and put the time in at. The default is DIRECTLY.
Format
| Field | Value |
|---|---|
scheduleType |
"SCHEDULED" |
at |
"2026-09-01 09:00:00" — Y-m-d H:i:s, Korea Standard Time |
ISO 8601 (2026-09-01T09:00:00Z) and Unix timestamps are not accepted.
Examples
Node.js / TypeScript
await sendgo.alimtalk.send({
templateCode: 'PROMO_SUMMER_2026',
scheduleType: 'SCHEDULED',
at: '2026-09-01 09:00:00',
contacts: [{ contact: '01012345678', var1: 'Autumn 30% off' }],
});
Python
client.alimtalk.send(
template_code="PROMO_SUMMER_2026",
schedule_type="SCHEDULED",
at="2026-09-01 09:00:00",
contacts=[{"contact": "01012345678", "var1": "Autumn 30% off"}],
)
PHP · Laravel
<?php
$sendgo->alimtalk->send([
'templateCode' => 'PROMO_SUMMER_2026',
'scheduleType' => 'SCHEDULED',
'at' => '2026-09-01 09:00:00',
'contacts' => [['contact' => '01012345678', 'var1' => 'Autumn 30% off']],
]);
Scheduling a text message
The same fields apply.
curl -X POST https://sendgo.io/api/v2/messages/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"campaignType": "MESSAGE",
"messageType": "LMS",
"scheduleType": "SCHEDULED",
"at": "2026-09-01 09:00:00",
"subject": "[Notice] Scheduled maintenance",
"content": "Maintenance on 1 Sep, 02:00-06:00 KST.",
"contacts": [{ "contact": "01012345678" }],
"senderKey": "your_sms_sender_key"
}'
The timezone trap
Servers commonly run in UTC — Docker containers, default AWS setups. Check that whatever builds the timestamp uses KST. A UTC time passed straight through sends nine hours early.
<?php
// Wrong — on a UTC server this actually means 18:00 KST.
'at' => now()->addDay()->setTime(9, 0)->format('Y-m-d H:i:s'),
// Right
'at' => now('Asia/Seoul')->addDay()->setTime(9, 0)->format('Y-m-d H:i:s'),
from datetime import datetime
from zoneinfo import ZoneInfo
at = datetime.now(ZoneInfo("Asia/Seoul")).replace(hour=9, minute=0, second=0)
client.alimtalk.send(
template_code="PROMO_001",
schedule_type="SCHEDULED",
at=at.strftime("%Y-%m-%d %H:%M:%S"),
contacts=[...],
)
// Format explicitly in KST rather than trusting the server's zone.
const at = new Intl.DateTimeFormat('sv-SE', {
timeZone: 'Asia/Seoul',
year: 'numeric', month: '2-digit', day: '2-digit',
hour: '2-digit', minute: '2-digit', second: '2-digit',
hour12: false,
}).format(target).replace('T', ' ');
Interaction with the night ban
Promotional messages cannot be delivered between 21:00 and 08:00 KST, judged on the actual send time. Do not schedule into that window.
The combination that bites: an evening batch that computes "three hours from now" can land inside the restricted window depending on when it ran. Use absolute times, or push into the next morning.
<?php
$at = now('Asia/Seoul')->addHours(3);
// Inside 21:00-08:00? Move it to the next morning.
if ($at->hour >= 21 || $at->hour < 8) {
$at = $at->copy()->addDay()->setTime(8, 0);
}
Full rules: Advertising message rules.
Next
자주 묻는 질문
- What format does the scheduled time use?
- A Y-m-d H:i:s string, for example 2026-09-01 09:00:00. Not ISO 8601 and not a Unix timestamp.
- Can I cancel a scheduled send?
- Yes. Scheduled items that have not run yet can be found and cancelled in the console's send history.
- What timezone is the scheduled time in?
- Korea Standard Time (KST, UTC+9). If your server runs in UTC, convert before sending — passing a UTC timestamp puts the send nine hours early.
- Does the advertising night ban apply to scheduled sends?
- Yes, based on when the message actually goes out. Promotional messages cannot be delivered between 21:00 and 08:00 KST, so do not schedule into that window.
이 문서에서 쓰는 패키지
관련 문서
이메일 · SMTP 연동 — 발신 인증, 뉴스레터와 자동화 수신함 →
일반 발송 승인이 완료된 이메일 서비스입니다. 발신 인증과 앱의 발송 가능 상태를 확인하고 SMTP, HTTP API와 자동화 수신함을 연동하세요.
Send a Kakao Alimtalk — PHP, Node.js, Python, Java, Go examples →
Send Kakao Alimtalk with an approved template code. Runnable code for Laravel, Node.js, Python, PHP, Java, Go, Ruby and .NET, plus every required field and why sends fail.
Send SMS, LMS and MMS in South Korea — code examples →
Send Korean SMS (90 bytes), LMS (long text) and MMS (with images) through Sendgo. Type selection, byte counting, verification-code patterns and advertising rules.
Send a Kakao Brand Message — the successor to Friendtalk →
Send Brand Messages to channel friends, non-friends, or every consenting friend at once. How targeting splits the request path, and when to keep using the Friendtalk endpoint.
SMS fallback when a Kakao Alimtalk fails →
Use replaceSms so a text message goes out when the Alimtalk cannot be delivered. Required fields, cost implications, and the mistake that silently sends nothing.
Bulk Alimtalk sending and per-recipient variables →
Send one template to many recipients with different values each, in batches. Batch sizing, partial failures, queue patterns and the data hygiene that prevents most incidents.