June 4 or July 4? Both dates can be called “lunar fifth month, day 12” in 2028—but only June 4 is in the regular fifth month. July 4 is in the leap fifth month. If you are adding a relative’s birthday from abroad, that one unchecked box can shift your calendar entry by 30 days. The Hong Kong Observatory’s 2028 table lists a fifth month starting May 24 and another starting June 23; the Korea Astronomy and Space Science Institute’s data identifies the second as leap fifth month.
The useful question is not “Which app has a lunar calendar view?” It is: Which Gregorian dates did I export, which events reached my calendar, and which of them will actually notify me? Here is a repeatable check using PiPi’s lunar converter and Google’s documented desktop import route. I inspected the converter’s generated files; I did not import them into a personal Google or Outlook account or test a phone notification.
One input, five different dates
For a reproducible example, I selected regular lunar month 5, day 12, starting in 2027, for five years. The converter produced:
| Lunar year | Gregorian birthday | What to notice |
|---|---|---|
| 2027 | June 16 | Starting point |
| 2028 | June 4 | Regular 5/12, not July 4 |
| 2029 | June 23 | 19 days later than 2028 |
| 2030 | June 12 | 11 days earlier |
| 2031 | July 1 | 19 days later |
So “move it 11 days earlier every year” is not a workable reminder rule. A normal “repeat yearly” event on June 16 would keep landing on the Gregorian June 16, not on the dates in this table. These are PiPi converter outputs, not screenshots of imported Google events. For an important birthday, compare your selected tradition and year against an official lunar–Gregorian table before importing. KASI labels its future calendar data as pre-publication, so recheck consequential dates when that year’s official calendar is released.
A second run with leap month 5, day 12 returned July 4, 2028 and no date in the other four years. That does not tell a family when to celebrate in years without that leap month. Ask the person or family whether they use the regular month, another agreed day, or only the leap occurrence; do not let a converter silently make that decision.
Inspect the download before treating it as a reminder
In this five-year example, PiPi’s .ics download contained five separate VEVENT entries, each with an all-day DTSTART;VALUE=DATE. The 2028 entry reads DTSTART;VALUE=DATE:20280604. The file contained zero VALARM blocks and zero RRULE recurrence rules. In plain English: it supplies dates to import, not an alert schedule, a live subscription, or a promise to keep extending itself. The tool’s period selector accepts 1–30 years, so “60 years in one upload” is not a PiPi feature.
The separate .csv download starts with Gregorian year,Gregorian date,Weekday. It is handy for reviewing dates with another family member, but it is not Google’s event-import CSV. Google’s CSV instructions require English Subject and Start Date headers. Renaming the file extension will not add those fields; use the ICS for the route below.
A standards nuance: the iCalendar RSCALE extension does define non-Gregorian recurrence, including RSCALE=CHINESE. PiPi’s file simply does not use it. This guide does not claim that every calendar app supports that extension—or that the standard makes lunar recurrence impossible.
Import to Google Calendar on a computer
- In PiPi’s lunar converter, choose the multi-year lunar birthday section. Confirm the lunar month and day, regular versus leap month, starting year, and duration. For a first test, five years is easier to inspect than 30.
- Review the displayed dates and download the ICS file. Keep a note of the first and last expected dates. If you want a second opinion, compare the crucial year with an official calendar such as the Hong Kong Observatory’s conversion tables.
- On a computer, open Google Calendar. Follow Google’s own instructions: Settings → Import & Export → Select file from your computer → choose the destination calendar → Import. Choose the
.icsfile, not PiPi’s review CSV. A separate destination calendar makes a small test easier to inspect or undo. - Look up the first, last, and leap-sensitive entries in the destination calendar. For this example, confirm five events and June 4, 2028, not July 4. Then open the events and set or confirm the notification timing you actually want. The ICS file itself sets none; account or calendar defaults may differ.
- If the birthday must appear on a phone, check that the destination calendar is visible there and that the device allows calendar notifications. Do not assume that a successful desktop import proves a push alert will fire.
Before importing the same file again, check for existing copies. Re-importing or changing destination calendars can create confusing duplicates. The five-year file also stops after 2031; make a reminder to generate and verify a later, non-overlapping range when needed. Google notes that imported events between accounts do not stay in sync. Importing a file is not the same as subscribing to a changing calendar.
If your family uses Outlook instead
Microsoft documents Calendar → Add calendar → Upload from file for Outlook.com and Outlook on the web. Its import-versus-subscribe guide calls an ICS import a snapshot: later changes in the original file do not automatically update imported events. Use the same date, count, destination-calendar, and alert checks. I did not test an Outlook account here, and desktop Outlook menus can differ from the web flow.
A one-minute check before you call it done
- I asked whether the original birthday was in a leap month and which tradition or family convention to follow.
- The first, last, and leap-sensitive dates match the converter and an official table.
- The imported event count and dates match the file; there are no old duplicates.
- I set or confirmed alerts in the calendar, and checked phone calendar visibility and notification permissions.
- I noted the last exported year; this file will not generate later birthdays by itself.
The cover is an AI-generated editorial illustration, not a calendar-app screenshot or evidence that an alert fired.