# Generator Tanggal Berulang

> Ubah tanggal mulai dan aturan pengulangan menjadi daftar lengkap tanggal — harian, mingguan, bulanan, atau tahunan — dengan RRULE dan jadwal yang dapat dicetak.

- **Category:** Tanggal & Waktu
- **Interactive calculator:** https://youcalc.com/id/date-time/recurring-date-generator/
- **Price:** Free, no sign-up required

## Overview

Generator ini mengubah satu tanggal mulai dan aturan pengulangan menjadi daftar tanggal lengkap yang terurut, lalu menampilkannya sebagai jadwal yang bisa dicetak atau dibagikan. Model aturan mengikuti standar RRULE iCalendar (RFC 5545): frekuensi (harian, mingguan, bulanan, atau tahunan), interval N ("setiap N unit"), pilihan hari opsional untuk aturan mingguan, pola bulanan (hari yang sama setiap bulan, "hari ke-N dalam seminggu" seperti Jumat ke-3, atau hari terakhir dalam seminggu), dan kondisi akhir — setelah sejumlah kejadian atau hingga tanggal akhir inklusif. Setiap tanggal ditampilkan dengan harinya dan dalam format ISO 8601 (YYYY-MM-DD), beserta string RRULE setara yang bisa Anda tempelkan ke aplikasi kalender.

## How to read your result

Judul utama adalah jumlah tanggal yang dihasilkan aturan, dengan tanggal pertama, tanggal terakhir, dan rentang dalam hari di sampingnya. Di bawahnya, jadwal mencantumkan setiap kejadian secara berurutan — posisinya, hari, dan tanggal ISO — serta grafik "Kejadian per bulan" menunjukkan bagaimana tanggal-tanggal tersebar di kalender. Baris RRULE abu-abu adalah aturan yang sama dalam sintaks RFC 5545 (contohnya RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=12 untuk "Jumat ke-3 setiap bulan, dua belas kali"). Tanggal dihitung dalam UTC agar daftar tidak bergeser satu hari akibat perubahan waktu musim panas, dan seri dibatasi hingga 500 tanggal — jika aturan akan berjalan lebih panjang, Anda akan melihat 500 tanggal pertama beserta catatan.

## Method

Mesin membaca tanggal mulai dalam UTC (Date.UTC) agar tidak ada transisi waktu musim panas yang dapat menggeser hari. Untuk aturan harian, bulanan, dan tahunan, mesin berjalan melalui indeks kejadian i = 0, 1, 2 … dan membangun tanggal kandidat: harian menambah i × interval hari; bulanan memajukan i × interval bulan dan mempertahankan hari-dalam-bulan awal (melewati bulan yang tidak memilikinya), menyelesaikan hari ke-N dalam seminggu, atau menyelesaikan hari terakhir dalam seminggu; tahunan memajukan i × interval tahun pada bulan dan hari awal (melewati 29 Februari di tahun biasa). Aturan mingguan ditambatkan ke Senin minggu awal dan melangkah maju interval minggu setiap kali, menghasilkan setiap hari yang dipilih. Kandidat apapun sebelum tanggal mulai dilewati; hari kalender yang tidak ada dilewati; pembuatan berhenti pada hitungan yang diminta, pada tanggal UNTIL inklusif, atau pada batas 500 tanggal. Hasilnya juga mencakup tanggal yang dikelompokkan berdasarkan bulan kalender dan string RRULE RFC 5545 setara. Perhitungan adalah fungsi murni tanpa akses ke jam atau jaringan.

## Example

- **Setup:** Atur tanggal mulai ke 1 Januari 2026, pilih Bulanan, pola "hari ke-N dalam seminggu", Jumat ke-3, dan akhiri setelah 3 kejadian.
- **Result:** Generator menghasilkan 2026-01-16, 2026-02-20, dan 2026-03-20 — Jumat ke-3 setiap bulan — dan baris RRULE berbunyi RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=3. Karena hanya tanggal pada atau setelah tanggal mulai yang dihasilkan, Jumat ke-3 di Januari (tanggal 16) adalah entri pertama.

## Frequently asked questions

### Apa fungsi string RRULE?

RRULE adalah sintaks aturan pengulangan dari RFC 5545, standar iCalendar yang menggerakkan Google Calendar, Apple Calendar, Outlook, dan sebagian besar alat penjadwalan. Generator menulis aturan Anda dalam satu baris RRULE (FREQ, INTERVAL, BYDAY, COUNT atau UNTIL) sehingga Anda bisa menempelkannya ke acara kalender atau file .ics dan mereproduksi seri yang sama persis di sana.

### Bagaimana tanggal yang tidak ada, seperti tanggal 31 atau 29 Februari, ditangani?

Tanggal tersebut dilewati, tidak pernah dimajukan — persis seperti yang ditentukan RFC 5545. Aturan bulanan "hari yang sama" yang dimulai dari tanggal 31 hanya berjalan di bulan-bulan yang memiliki tanggal 31 (sehingga Februari, April, Juni, September, dan November dilewati). Aturan tahunan pada 29 Februari hanya terjadi di tahun kabisat. Generator tidak pernah diam-diam menggeser tanggal yang hilang ke tanggal 1 atau 28.

### Apa bedanya dengan Pencari Hari ke-N dalam Seminggu?

Pencari hari ke-N dalam seminggu menjawab satu pertanyaan — tanggal berapa misalnya Kamis ke-3 dalam satu bulan. Generator ini menghasilkan seluruh seri berulang: Kamis ke-3 setiap bulan untuk sebanyak kejadian (atau hingga tanggal akhir) yang Anda minta, ditambah RRULE setara dan jadwal yang bisa dicetak.

### Apakah ada batas jumlah tanggal yang dihasilkan?

Ya — seri dibatasi ketat hingga 500 tanggal. Jika Anda memilih "hingga tanggal tertentu" dan aturan akan menghasilkan lebih dari 500 kejadian, generator mengembalikan 500 pertama dan menandai bahwa aturan berlanjut melewati rentang yang ditampilkan. Penghitungan berdasarkan kejadian ("setelah N") juga dibatasi hingga 500.

### Di zona waktu mana tanggal-tanggal itu berada?

Tanggal-tanggal adalah tanggal kalender tanpa waktu atau zona waktu — dihitung dalam UTC agar aritmetikanya stabil. Aturan mingguan dengan beberapa hari ditambatkan ke Senin dari minggu tanggal mulai (awal minggu default RFC 5545), dan hanya tanggal pada atau setelah tanggal mulai Anda yang muncul dalam daftar.

## Related calculators

- [Pencari Hari Ke-N dalam Sebulan](https://youcalc.com/id/date-time/nth-weekday-finder/)
- [Perencana Tenggat Proyek](https://youcalc.com/id/date-time/deadline-planner/)
- [Kalkulator Jadwal Shift (4-4, Panama, DuPont)](https://youcalc.com/id/date-time/shift-pattern-calculator/)
- [Kalkulator Jadwal Pelajaran](https://youcalc.com/id/date-time/timetable-calculator/)

## Sources

- https://datatracker.ietf.org/doc/html/rfc5545
- https://en.wikipedia.org/wiki/ISO_8601

---

Interactive version: https://youcalc.com/id/date-time/recurring-date-generator/ · From YouCalc — https://youcalc.com
