Cara Menjadwalkan dan Mempublikasikan Konten di EmDash CMS

Penjadwalan di EmDash terlihat sederhana dari admin panel — pilih tanggal, simpan — tapi ada dua detail yang layak diketahui sejak awal: penjadwalan harus diaktifkan secara eksplisit per collection, dan deployment Cloudflare Workers butuh satu bagian konfigurasi ekstra atau post terjadwal cuma tidak akan pernah live.
Daftar Isi
- Penjadwalan adalah Fitur Collection Opt-In
- Menjadwalkan dari Admin Panel
- Menjadwalkan lewat CLI atau REST API
- Gotcha Cloudflare Workers
- Deployment Node.js
- Memverifikasi Penjadwalan Sesungguhnya Bekerja Setelah Deploy
- Pertanyaan yang Sering Diajukan
- Bisakah saya menjadwalkan konten buat unpublish di tanggal masa depan juga?
- Apa yang terjadi kalau saya mengedit post terjadwal sebelum ia dipublikasikan?
- Apakah asisten AI menghormati aturan penjadwalan yang sama?
- Apakah ada cara buat melihat semua konten terjadwal saat ini sekaligus?
- Kesimpulan
Penjadwalan adalah Fitur Collection Opt-In
Collection mendeklarasikan fitur apa yang mereka dukung, dan penjadwalan salah satunya, berdampingan dengan draft, revisi, dan preview:
{
slug: "posts",
label: "Blog Posts",
labelSingular: "Post",
supports: ["drafts", "revisions", "preview", "scheduling"]
}Kalau collection dibuat tanpa `scheduling` di array `supports`-nya, opsi penjadwalan sederhananya tidak akan tersedia buat content type itu di admin — layak dicek dulu kalau kamu tidak melihat opsi Schedule di mana kamu mengharapkannya.
Menjadwalkan dari Admin Panel
- Buka item konten yang ingin kamu jadwalkan.
- Alih-alih Publish, pilih opsi schedule dan pilih tanggal dan waktu di masa depan.
- Simpan — status item jadi scheduled, berbeda dari draft atau published.
Ia dipublikasikan otomatis di waktu yang ditentukan tanpa tindakan lebih lanjut yang dibutuhkan — dengan asumsi mekanisme publikasinya sesungguhnya berjalan, yang mana itu catatan Cloudflare di bawah.
Menjadwalkan lewat CLI atau REST API
npx emdash content schedule posts 01ABC123 --at 2026-08-01T09:00:00ZPOST /_emdash/api/content/posts/01ABC123/schedule
Content-Type: application/json
{ "scheduledAt": "2026-08-01T09:00:00Z" }Keduanya menerima datetime ISO 8601. Membatalkan jadwal mengembalikan item ke status sebelumnya tanpa menyentuh kontennya sendiri — padanan CLI-nya adalah `npx emdash content unschedule`, atau minta asisten AI buat "batalkan jadwal di post peluncuran".
Gotcha Cloudflare Workers
Di Cloudflare Workers, publikasi terjadwal, cron plugin, dan tugas maintenance berjalan dari Worker Cron Trigger. Tanpa Cron Trigger, konten yang dijadwalkan di admin panel tidak dipublikasikan di Cloudflare Workers, dan cron job plugin tidak berjalan. Astro dev lokal tetap memakai scheduler in-process.
Ini jebakan nyata dan mudah terlewat: menjadwalkan post bekerja baik di dev lokal (yang memakai scheduler in-process), jadi mudah berasumsi ia akan bekerja sama di produksi — dan secara khusus di Cloudflare Workers, ia diam-diam tidak akan, kecuali kamu sudah menambahkan Cron Trigger. Template Cloudflare baru menyertakan ini secara otomatis; kalau kamu menambahkannya ke proyek yang sudah ada, kamu butuh dua hal:
- Ekspor entry Worker EmDash supaya handler cron-nya ada:
// src/worker.ts
export { default, PluginBridge } from "@emdash-cms/cloudflare/worker";- Tambahkan Cron Trigger ke konfigurasi Wrangler-mu:
{
"triggers": {
"crons": ["* * * * *"]
}
}Trigger itu berjalan setiap menit, yang jadi granularitas yang tepat buat publikasi terjadwal — apa pun yang lebih kasar dan post yang dijadwalkan buat menit spesifik bisa duduk tidak terpublikasikan lebih lama dari yang diharapkan.
Deployment Node.js
Deployment Node.js tidak punya gotcha ini — scheduler in-process yang dipakai di dev lokal juga yang berjalan di deployment server Node.js standar, jadi konten terjadwal dipublikasikan tanpa konfigurasi cron tambahan apa pun.
Memverifikasi Penjadwalan Sesungguhnya Bekerja Setelah Deploy
- Jadwalkan post uji beberapa menit di masa depan.
- Tunggu sampai waktu terjadwalnya lewat.
- Cek apakah ia sungguh-sungguh live — kalau masih menunjukkan "scheduled" melewati waktunya di deployment Cloudflare, Cron Trigger adalah hal pertama buat dicek.
Pertanyaan yang Sering Diajukan
Bisakah saya menjadwalkan konten buat unpublish di tanggal masa depan juga?
Penjadwalan seperti terdokumentasi mencakup mempublikasikan draft di waktu masa depan. Buat unpublish terjadwal, itu bukan fitur bawaan yang terdokumentasi — kamu akan butuh plugin yang memakai hook `cron` buat mengecek tanggal dan memanggil logika setara-`content:afterUnpublish` sendiri.
Apa yang terjadi kalau saya mengedit post terjadwal sebelum ia dipublikasikan?
Edit disimpan ke draft; waktu publikasi terjadwal tidak terpengaruh kecuali kamu secara eksplisit mengubah atau membatalkannya. Versi yang live di waktu terjadwal adalah apa pun bentuk draft-nya saat itu.
Apakah asisten AI menghormati aturan penjadwalan yang sama?
Ya — "Jadwalkan pengumuman buat 1 Juni jam 9 pagi" dan "Batalkan jadwal di post peluncuran" adalah perintah MCP nyata dan terdokumentasi, tunduk pada persyaratan dukungan-collection dan Cron Trigger Cloudflare yang sama seperti penjadwalan lewat admin UI.
Apakah ada cara buat melihat semua konten terjadwal saat ini sekaligus?
Daftar konten difilter berdasarkan status: `npx emdash content list posts --status scheduled`, atau panggilan REST API setara dengan `?status=scheduled` — berguna buat tampilan kalender editorial sebelum ia live.
Kesimpulan
Penjadwalan bekerja dengan andal begitu dua hal benar: collection-nya punya `scheduling` di array `supports`-nya, dan — secara khusus di Cloudflare Workers — Cron Trigger dikonfigurasi supaya publikasi terjadwalnya sungguh-sungguh terpicu. Lewatkan salah satu dan konten diam-diam duduk tidak terpublikasikan melewati waktu terjadwalnya tanpa error yang memperingatkanmu. Uji post terjadwal sesungguhnya setelah deploy produksi mana pun buat memastikan kedua bagian sudah terpasang.








Komentar