iPhone下有按照农历提醒的软件吗?

你是不是也有这个烦恼?

我想在手机日历里添加农历初一、十五的吃素提醒,结果发现:

  • 网上的农历日历订阅,把春节、国庆、中秋所有节假日全塞进去了
  • 我只想关注初一十五这两个日子,却被一堆无关的信息淹没
  • 手动每个月加提醒?太麻烦了,而且容易忘

能不能有一个只包含初一十五的纯净版农历日历?

带着这个问题,我用了一个周末,做了一个完全免费、自动更新的解决方案。现在分享给大家,不管你是程序员还是普通用户,都能用上。


先看看效果

导入之后,你的手机日历里只会显示这样的内容:

📅 2026年8月12日 - 初一 (农历七月初一)
   描述:今天吃素

📅 2026年8月27日 - 十五 (农历七月十五)
   描述:今天吃素

没有法定节假日,没有调休安排,只有你真正关心的那两个日子。而且每个月会自动往后滚动更新,永远保持未来 13 个月的数据。


核心思路(说人话版)

其实原理很简单:

  1. 写个小脚本:算出未来 13 个月里哪些天是初一或十五
  2. 生成日历文件:把这些日期打包成标准的 .ics 格式(这是全球通用的日历文件格式,iPhone、安卓、电脑都能用)
  3. 放在 GitHub 上:利用 GitHub 的免费自动化服务,每个月自动运行一次脚本,更新日历文件
  4. 复制链接订阅:把文件的链接复制到你的日历 App 里,搞定!

整个过程不需要买服务器,不需要花钱,只要有个 GitHub 账号就行。


方案一:直接用现成的(适合非程序员)

如果你不想折腾代码,可以直接订阅我已经做好的版本:

📱 简体中文版(推荐国内用户)

复制下面这个链接,然后在你的日历 App 里选择”添加日历订阅”或”订阅日历”,粘贴进去即可:

https://cdn.jsdelivr.net/gh/HenryYannis/lunar-vegetarian-calendar@main/chuyi-shiwu-simplified.ics

📱 繁体中文版

https://cdn.jsdelivr.net/gh/HenryYannis/lunar-vegetarian-calendar@main/chuyi-shiwu-traditional.ics

不同设备的操作方法:

  • iPhone/iPad:设置 → 日历 → 账户 → 添加账户 → 其他 → 添加已订阅的日历 → 粘贴链接
  • 安卓手机:打开日历 App → 菜单 → 管理日历 → 添加日历 → 订阅日历 → 粘贴链接
  • 电脑端(Outlook/Google 日历):找到”从 URL 添加日历”或”订阅日历”功能,粘贴链接

订阅后,日历会自动同步,每月月初会自动更新未来几个月的数据,完全不用管它。


方案二:自己动手定制(适合程序员)

如果你想修改提醒的内容(比如改成生日提醒、纪念日提醒),或者想学习这套自动化方案,可以继续往下看。

第一步:准备环境

你需要:

  • 一个 GitHub 账号(免费注册)
  • 电脑上安装 Node.js(去官网下载就行)

第二步:创建项目

在 GitHub 上新建一个仓库,然后把下面的两个文件放进去:

1️⃣ generate-calendar.js(核心脚本)

这个脚本负责计算农历日期并生成日历文件:

const fs = require('fs');
const { Lunar } = require('lunar-javascript');
const dayjs = require('dayjs');

// 组装 ICS 文件头
let icsContent = `BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//HenryYannis//Lunar Vegetarian Calendar//CN
CALSCALE:GREGORIAN
X-WR-CALNAME:农历初一十五(吃素)
X-WR-TIMEZONE:Asia/Shanghai\n`;

// 获取当月的一号,往前推 1 个月作为起点
const startMonth = dayjs().startOf('month').subtract(1, 'month');
const endMonth = startMonth.add(13, 'month');

// 遍历每一天
let currentDate = startMonth;
while (currentDate.isBefore(endMonth)) {
    const lunar = Lunar.fromDate(currentDate.toDate());
    const day = lunar.getDayInChinese();
    
    // 判断是否是初一或十五
    if (day === '初一' || day === '十五') {
        const dateStr = currentDate.format('YYYYMMDD');
        const summary = `${day} (农历${lunar.getMonthInChinese()}月${lunar.getDayInChinese()})`;
        
        icsContent += `BEGIN:VEVENT
UID:${dateStr}@lunar-calendar
DTSTAMP:${new Date().toISOString().replace(/[-:]/g, '').split('.')[0]}Z
DTSTART;VALUE=DATE:${dateStr}
SUMMARY:${summary}
DESCRIPTION:今天吃素
END:VEVENT\n`;
    }
    
    currentDate = currentDate.add(1, 'day');
}

icsContent += 'END:VCALENDAR';

// 写入文件
fs.writeFileSync('chuyi-shiwu.ics', icsContent);
console.log('✅ 日历文件生成成功!');

2️⃣ package.json(依赖配置)

{
  "name": "lunar-calendar-subscription",
  "version": "1.0.0",
  "dependencies": {
    "lunar-javascript": "^1.6.12",
    "dayjs": "^1.11.10"
  }
}

第三步:配置自动化

在仓库里新建文件夹 .github/workflows,然后创建文件 update.yml

name: Update Lunar Calendar

on:
  schedule:
    # 每月 1 号凌晨 0 点执行(北京时间)
    - cron: '0 16 1 * *'
  workflow_dispatch: # 支持手动点击运行

jobs:
  build-and-commit:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install Dependencies
        run: npm install

      - name: Generate ICS File
        run: node generate-calendar.js

      - name: Commit and Push
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "chore: update calendar [skip ci]"
          file_pattern: "*.ics"

第四步:获取订阅链接

配置好后,手动触发一次工作流(在 Actions 标签页点击 “Run workflow”),等它运行完成,就会生成 chuyi-shiwu.ics 文件。

复制这个文件的 Raw 链接(或者用 jsDelivr CDN 加速):

https://cdn.jsdelivr.net/gh/你的GitHub用户名/仓库名@main/chuyi-shiwu.ics

把这个链接粘贴到你的日历 App 里,就大功告成了!


还能怎么玩?

这套方案的灵活性很高,你可以按需定制:

💡 改造成生日提醒

把脚本里的判断条件改成家人的生日日期,每年自动提醒

💡 增加更多农历节日

除了初一十五,还可以加上端午、中秋、重阳等传统节日

💡 结合天气预报

在 DESCRIPTION 字段里加入当天的天气信息(需要调用天气 API)

💡 改成工作提醒

比如每周一早上 9 点提醒开例会,每月 15 号提醒交报表


为什么选择这个方案?

你可能会问:网上不是有很多现成的农历日历吗?为什么要自己搞?

我的理由是:

完全可控:只显示你关心的日期,不会被无关信息干扰
永久免费:依托 GitHub 基础设施,不用买服务器
自动更新:每月自动往后滚动,永远保持最新数据
高度定制:开源代码,想怎么改就怎么改
稳定可靠:只要 GitHub 不倒闭,服务就不会挂


最后想说

科技的乐趣,大概就是写一点代码,解决自己生活中的小麻烦。

这个项目我已经开源了,欢迎 Fork 和提 Issue: 👉 GitHub 仓库地址

如果你有其他类似的定制化需求(比如纪念日提醒、定期打卡提醒),也可以在评论区聊聊,说不定我能帮你一起实现~

对了,我还做了一个在线工具箱网站 小宝科技站,里面有一些实用的效率工具,感兴趣的朋友可以去看看。


如果你觉得这篇文章对你有帮助,欢迎点赞收藏,也欢迎分享给身边有同样需求的朋友!

编辑于 2026-07-24 · 著作权归作者所有