Free Sleep Cycle Calculator
Find the best time to go to bed or wake up based on 90-minute sleep cycles, so you wake between cycles feeling refreshed instead of groggy.
π‘ Sleep happens in ~90-minute cycles. Waking at the end of a cycle (rather than mid-cycle) helps you feel refreshed instead of groggy. Most adults do best with 5β6 cycles (7.5β9 hours), plus ~15 minutes to drift off. Actual cycle length and sleep needs vary by person and age. These are general estimates, not medical advice.
Common uses
- Find the Best Bedtime to Wake Up RefreshedEnter your alarm time and get bedtimes that align with sleep cycles.
- Plan an Early Morning Wake-UpCatching an early flight or meeting? Find the bedtime that minimizes grogginess.
- Time a Power NapUse Nap mode to set the perfect alarm for a 10β20 minute power nap or a full 90-minute cycle.
- Schedule Sleep for Shift WorkPlan cycle-aligned sleep around night shifts and rotating schedules.
- Set a Bedtime for School Wake-UpsWork back from the school alarm to a consistent, cycle-friendly bedtime.
How It Works
All calculation happens in your browser using plain JavaScript arithmetic on Date objects β no external library, no server call. The tool works backward or forward from a time you provide, fitting complete 90-minute sleep cycles (adjustable) plus a configurable fall-asleep latency so the suggested times land between cycles, not inside one.
- 1Pick a mode and anchor timeChoose whether you know your wake time (calculate when to go to bed), your bedtime (calculate when to wake up), or want a nap alarm. You can type a specific time or let the tool anchor to the current clock via JavaScript's Date object, which refreshes automatically every 30 seconds while the tab is open.
- 2Cycle arithmetic runs instantlyThe calculator iterates from 6 down to 3 sleep cycles. For each count it multiplies cycles by your chosen cycle length (default 90 minutes, adjustable to 80β110 via a range slider) and adds your sleep-latency offset (default 15 minutes, adjustable to 0β45), then adds or subtracts that total from your anchor time using Date.setMinutes.
- 3Intl.DateTimeFormat formats results for your localeRather than hardcoding AM/PM, the tool passes your browser locale to Intl.DateTimeFormat so the displayed times respect your region's 12-hour or 24-hour convention automatically. Five- and six-cycle results (7.5β9 hours) are highlighted as recommended.
- 4Copy or download a calendar reminderEach result row has a copy button that writes the time string to the clipboard via navigator.clipboard, and a calendar button that hand-builds a valid iCalendar (.ics) file β including a zero-offset VALARM β and triggers a download via Blob, so you can import the reminder into any calendar app.
Related Tools
Ovulation Calculator
Estimate your ovulation date and fertile window from your last period and cycle length β with peak conception days, your next period, a pregnancy-test date, the due date if you conceive, and your next three cycles. Private and free.
Reaction Time Test
Measure your reaction time in milliseconds: wait for the box to turn green, click or tap as fast as you can, and get your average and best of 5 tries.
Reading Time Calculator
Estimate how long it takes to read any text. Choose a reading speed, get word count, sentence count, and speaking time estimates.