VeryApps (operated by WuKong Inc) respects your privacy. This policy explains what information the LaoHuangLi app (the "App") processes, how it is used, and the choices and rights you have. Please read it before using the App.
This policy applies to both the iOS and the Android versions of the App. The two versions offer the same features and share the same privacy commitments; they differ only in platform capabilities (system calendar, iCloud sync, in-app purchase). Every such difference is listed in Section 2 and Section 5.
The App is a traditional Chinese almanac / lunar calendar utility. We follow a strict data-minimization principle: the App contains no advertising service and performs no user profiling or cross-app tracking. We do not operate any server that stores your personal data, and almost all data stays on your device.
| Platform | App name | Package / Bundle ID | Notes |
|---|---|---|---|
| iOS | LaoHuangLi (老黄历) | com.veryapps.Almanac |
Includes the companion Apple Watch app |
| Android | LaoHuangLi (老黄历) | com.veryapps.calendar |
— |
The table below lists every difference between the two platforms regarding data processing. Throughout this policy we tag each item as iOS only, Android only, or Both platforms.
| Item | iOS | Android |
|---|---|---|
| Location (weather) | Yes, requires two-step consent | Yes, requires two-step consent |
| Daily reminder (local notification) | Yes | Yes |
| Read / write system calendar | Optional, requires permission | Not applicable |
| iCloud data sync | Optional, for notes / countdowns etc. | Not applicable |
| In-app purchase / subscription | Yes, payments handled by Apple | Not applicable |
| Uploads to our own servers | None (we have no such server) | None (we have no such server) |
To show weather for where you are, the App may obtain your current location once, and only with your explicit permission, in order to resolve your city name:
If you enable the daily reminder, the App posts one local notification at 8:00 AM every day (Gregorian date, lunar date and the day's almanac guidance). It is generated entirely on your device — there is no push server, and we never send you marketing messages. You can disable it at any time in the App or in system settings.
The App accesses the network only for weather data, via the following public third-party APIs:
| Provider | Purpose | Data sent |
|---|---|---|
| Open-Meteo (open-meteo.com) | Weather data, city search | City name or geographic coordinates |
| BigDataCloud (bigdatacloud.net) | Reverse-geocode coordinates into a city name | Coordinates at locate time |
Apart from weather, all core content (almanac, lunar calendar, solar terms) is computed locally by algorithms and never uploads any of your data.
On iOS, the month view and schedule screens can read, create or modify events in your system calendar. This happens only when you tap the relevant button and only after you grant calendar permission. The App touches only the events you explicitly confirm, never reads your calendar in bulk, never uploads it, and never modifies a calendar you have not authorized. You can revoke calendar access at any time in system settings.
On iOS, the App can sync your app data (such as daily notes, countdowns and reminder dates) through Apple's iCloud key-value store, so that it stays consistent across your Apple devices:
Some enhanced features on iOS are unlocked through an in-app purchase (auto-renewable subscription). The entire payment is handled by the Apple App Store system:
The following information is stored only on your device and cannot be read by us: your city list and current city, settings such as privacy and reminder switches, notes / schedules / countdowns, the access passcode, and the weather cache.
Every third-party service and component used by the App is listed below. There are no other third-party recipients of your data.
| Platform | Service / component | Provider | Purpose | Data processed |
|---|---|---|---|---|
| Both | Weather API | Open-Meteo | Weather forecast and city search | City name or coordinates |
| Both | Reverse geocoding API | BigDataCloud | Convert coordinates into a city name | Coordinates at locate time |
| iOS only | iCloud key-value store | Apple | Sync app data across your Apple devices | Encrypted app data (held in your iCloud; we cannot read it) |
| iOS only | In-app purchase / subscription | Apple | Process payment and return subscription status | Transaction identifier handled by Apple (no payment details) |
| iOS only | System calendar (EventKit) | Apple platform capability | Write events into your system calendar | The single event you confirm manually (processed on-device only) |
| Both | Native system share sheet | Operating system | Share content that you initiate | The single item you choose to share (passed on-device to the target app) |
About analytics and sharing components: The Android version contains no analytics SDK and no third-party sharing SDK — sharing is implemented entirely with the native system share sheet. The iOS package still carries the code of an analytics component and a third-party sharing component left over from earlier releases, but we have not enabled their initialization, so the App reports no data through them. Only when you actively tap "Share" and pick a destination does the sharing component send the single item you selected to that destination.
| Permission | Purpose | Required? |
|---|---|---|
| Network access | Fetch weather data | Required for weather |
| Location (when in use) | Identify your local city for weather (see 3.1) | Optional, revocable |
| Notifications | Daily 8:00 AM local almanac reminder | Optional |
| Calendar | Read/write events you add yourself (see 3.4) | Optional, revocable |
| Photo library (add only) | Save a share image you generate to your photo library | Optional |
| Permission | Purpose | Required? |
|---|---|---|
| Internet / network state / Wi-Fi state | Fetch weather data, detect connectivity | Core |
| Precise / approximate location | Identify your local city for weather (see 3.1) | Optional, deniable / revocable |
| Post notifications | Daily 8:00 AM local almanac reminder (Android 13+ requires system grant) | Optional |
| Run at startup | Reschedule the daily reminder after a reboot | Reminder feature only |
| Vibrate | Vibration effect for the reminder | Auxiliary |
The iOS package retains a few permission description strings from earlier releases (camera, microphone, contacts). The App does not call those APIs and does not access such data.
The App does not knowingly collect any personal information from children under 13, and contains no advertising or content services directed at children. If you believe a child has provided us with information without parental consent, please contact us at the email below and we will handle it promptly.
We may update this policy from time to time. Updates will be posted on this page with a revised effective date and version number. Material changes will be announced in the App or on this page. Please check back periodically for the latest version.
If you have any questions, suggestions or complaints about this policy or our data handling, please contact:
We will respond to your request within 15 business days.