Apple Calendar shows a lunar date in the day view, but it can't repeat events on the lunar calendar — so adding a lunar birthday as a normal recurring event quietly drifts wrong every year. The reliable workaround: subscribe to an ICS feed that pre-computes the Gregorian date of the lunar birthday for the next 20 years.
This guide walks through doing that with MoonCal in under five minutes. The same steps work for anniversaries, lunar festivals, or any other event that should repeat on the lunar calendar.
Step 1 — Create a MoonCal calendar
- Sign up at usemooncal.com (free, no credit card).
- Click "Create calendar" and give it a name — "Family birthdays" or whatever makes sense.
- Pick a calendar language: English event titles or 中文. You can change this later.
- Skip the festival presets for now — we'll add a birthday next.
Step 2 — Add the lunar birthday
- On the calendar page, click "Add event".
- Title: e.g. "Mom's birthday".
- Event type: Birthday.
- Date type: Lunar.
- Enter the lunar month and day. If the birthday is in a leap month, tick "This is a leap month" and pick a fallback strategy for years without that leap month — usually "Use the same regular month".
- Optional but useful: enter the birth year. MoonCal will then show "(N)" in the event title — for example "Mom's birthday (66)" — and recompute each year.
- Pick reminders. We default to 1 day and 3 days before; you can disable either.
- Save.
If you're not sure whether the lunar birthday was a leap month or not, ask the family member directly. Most older Chinese family records use the lunar calendar, and only a few years between 1900 and 2100 actually have a leap month — leaving the leap-month checkbox off is the right answer for >90% of cases.
Step 3 — Subscribe in Apple Calendar (macOS)
- In MoonCal, on the calendar detail page, click "Copy" next to the subscription URL.
- Open Apple Calendar on your Mac.
- Menu bar → File → New Calendar Subscription… (or press ⌥⌘S).
- Paste the URL and click Subscribe.
- In the dialog: choose where to put it (iCloud is recommended — it syncs across your devices), set "Auto-refresh" to "Every hour", and tick the "Alerts" box if you want birthday reminders to fire on this device.
- Click OK. The events appear immediately.
Putting the subscription on iCloud means it shows up automatically on your iPhone and iPad too — no need to repeat the setup. The downside is that Apple's iCloud sync slows refresh down to "daily" on the iCloud side; if you need faster refresh on macOS specifically, put it on the local "On My Mac" calendar instead.
Step 3 (alt) — Subscribe in Apple Calendar (iPhone / iPad)
If you didn't add it via macOS + iCloud, you can subscribe directly on iOS:
- Open Settings → Calendar → Accounts → Add Account → Other.
- Tap "Add Subscribed Calendar".
- Paste the MoonCal subscription URL (starting with https://).
- Tap Next, then Save.
- Back in Settings → Calendar → Accounts, open the new subscription and set "Use SSL" to on; you can also adjust how often it refreshes here.
Reminders and age labels
Every event MoonCal generates includes a 1-day and 3-day VALARM. Apple Calendar respects these by default — make sure the "Alerts" toggle was on when you subscribed, and that notifications are allowed for Calendar in your system Notifications settings.
If you filled in the birth year, MoonCal recomputes the age each year and embeds it in the event title (for example "Mom's birthday (66)"). Apple Calendar shows that title verbatim, so the reminder banner already says what year you're celebrating.
Common gotchas
- "Auto-refresh" being set to "Weekly" or "No" — birthdays from edits or new events won't appear for a while. Switch to "Every hour".
- Subscription added under iCloud but iCloud Calendar disabled on this device — events sync to iCloud but not down to this device. Settings → iCloud → Calendar.
- Alerts toggled off when subscribing — reminders silently never fire. Edit the subscription and re-enable.
- Lunar birthday recorded as a Gregorian repeating event — drifts by 10–11 days every year. Delete it and re-add as a Lunar date in MoonCal.