liury2340 downloadsA calendar widget combining Gregorian and Lunar calendars with 5 levels of periodic notes, task tracking, and holiday support.
English | 中文
A calendar widget for Obsidian combining the Gregorian and Lunar (Chinese) calendars with 5 levels of periodic notes, task tracking, and holiday support. It merges the ideas of Calendar and Chinese Calendar into one view.
- [ ] / - [x] checkboxes and shows completion dots3/5) on weekly/monthly/quarterly/yearly notes← → ↑ ↓ to page, t for todayRequires Obsidian 1.7.2 or later.
main.js, styles.css, and manifest.json from the latest release<vault>/.obsidian/plugins/mix-calendar/git clone https://github.com/Liury23/mix-calendar
cd mix-calendar
npm install
npm run build
# Deploy to your vault
cp main.js styles.css manifest.json <vault>/.obsidian/plugins/mix-calendar/
| Setting | Description |
|---|---|
| Week start | Sunday / Monday / Locale default |
| UI language | 中文 / English |
| Locale override | Override moment.js locale (7 options) |
| Confirm before create | Ask before creating a missing note |
| Setting | Description |
|---|---|
| Show lunar info | Lunar dates, solar terms, festivals |
| Show holiday badges | Statutory holiday / makeup workday badges |
| Show week numbers | ISO week numbers in month view |
| Past date transparent | Dim past dates |
| Show task indicators | Checkbox completion dots |
| Show link count | Backlink count in the cell corner |
| Task / link dot size | Dot diameter in px |
| Custom CSS classes | Space-separated classes injected onto the container |
Each level configures: enabled, date format (moment.js format used for filenames), folder, and template. Defaults:
YYYY/YYYY-MM/YYYY-MM-DD · Weekly: YYYY/YYYY-[W]WW · Monthly: YYYY/YYYY-MM · Quarterly: YYYY/YYYY-[Q]Q · Yearly: YYYYOverride the built-in statutory holiday table, one YYYY-MM-DD:休 or YYYY-MM-DD:班 per line. Lines starting with # are comments.
# Company holiday
2026-05-05:休
# Makeup workday
2026-10-10:班
| Variable | Description | Example |
|---|---|---|
{{date}} |
Current date | 2026-01-15 |
{{time}} |
Current time | 09:30 |
{{title}} |
Full title | 2026-01-15 Thursday |
{{yesterday}} / {{tomorrow}} |
Adjacent dates | 2026-01-14 |
{{lunarYear}} |
Gan-Zhi + zodiac year | 甲辰龙年 |
{{lunarMonth}} / {{lunarDay}} |
Lunar month / day | 正月 / 初三 |
{{solarTerm}} |
Solar term (if any) | 立春 |
{{festival}} |
Festival (if any) | 春节 |
{{ganZhiYear}} / {{zodiac}} |
Gan-Zhi year / zodiac | 甲辰 / 龙 |
{{quarter}} |
Quarter (quarterly notes) | Q1 |
{{quarterStart}} / {{quarterEnd}} |
Quarter bounds | 2026-01-01 |
{{sunday}}–{{saturday}} |
Each day of this week | 2026-01-12 |
{{weekStart}} / {{weekEnd}} |
Week bounds | 2026-01-12 |
{{date+Nd:format}} |
Date offset | {{date+7d:YYYY-MM-DD}} |
| Command | Description |
|---|---|
| Open calendar | Open the calendar view |
| Reveal open note | Jump the calendar to the month of the currently open note |
npm run dev # Watch mode
npm run build # Typecheck + production build
npm run test # Unit tests
npm run lint # ESLint (obsidianmd rule set)
npm run typecheck # tsc --noEmit
Stack: TypeScript + Svelte 4 + esbuild + lunar-typescript + vitest. Releases run through GitHub Actions with build-provenance attestations; publish the draft release created for each tag.
MIT
English | 中文
Mix Calendar 是一个 Obsidian 日历插件,在同一视图中合并公历与农历、节假日、任务状态以及 5 种颗粒度的周期性笔记。它融合了 Calendar 与 Chinese Calendar 的功能。
- [ ] / - [x] checkbox,圆点显示完成状态3/5 形式进度← → ↑ ↓ 翻页,t 跳到今天需要 Obsidian 1.7.2 或更高版本。
main.js、styles.css、manifest.json<vault>/.obsidian/plugins/mix-calendar/git clone https://github.com/Liury23/mix-calendar
cd mix-calendar
npm install
npm run build
# 部署到 vault
cp main.js styles.css manifest.json <vault>/.obsidian/plugins/mix-calendar/
| 设置 | 说明 |
|---|---|
| 每周起始日 | 周日 / 周一 / 系统默认 |
| 界面语言 | 中文 / English |
| 本地化覆盖 | 覆盖 moment.js 地区设置(7 种) |
| 创建前确认 | 创建缺失笔记前先确认 |
| 设置 | 说明 |
|---|---|
| 农历信息 | 显示农历/节气/节日 |
| 休/班标记 | 法定休假日和调休上班角标 |
| 周数显示 | 月视图左侧 ISO 周号 |
| 过去日期半透明 | 将过去日期变淡 |
| 任务完成指示 | checkbox 完成状态圆点 |
| 显示链接数 | 单元格角落显示反向链接数 |
| 任务/链接圆点大小 | 圆点直径(像素) |
| 自定义 CSS 类 | 空格分隔,注入到日历容器 |
每级独立配置 启用、日期格式(moment.js 格式,决定文件名)、文件夹、模板。默认值:
YYYY/YYYY-MM/YYYY-MM-DD · 周记 YYYY/YYYY-[W]WW · 月记 YYYY/YYYY-MM · 季记 YYYY/YYYY-[Q]Q · 年记 YYYY以 YYYY-MM-DD:休 或 YYYY-MM-DD:班 格式覆盖法定节假日库,每行一条,# 开头为注释。
# 公司假期
2026-05-05:休
# 公司调休
2026-10-10:班
| 变量 | 说明 | 示例 |
|---|---|---|
{{date}} |
当前日期 | 2026-01-15 |
{{time}} |
当前时间 | 09:30 |
{{title}} |
完整标题 | 2026-01-15 Thursday |
{{yesterday}} / {{tomorrow}} |
相邻日期 | 2026-01-14 |
{{lunarYear}} |
干支生肖年 | 甲辰龙年 |
{{lunarMonth}} / {{lunarDay}} |
农历月 / 农历日 | 正月 / 初三 |
{{solarTerm}} |
节气(如有) | 立春 |
{{festival}} |
节日(如有) | 春节 |
{{ganZhiYear}} / {{zodiac}} |
干支年 / 生肖 | 甲辰 / 龙 |
{{quarter}} |
季度(季记专用) | Q1 |
{{quarterStart}} / {{quarterEnd}} |
季度起止 | 2026-01-01 |
{{sunday}}–{{saturday}} |
本周每天日期 | 2026-01-12 |
{{weekStart}} / {{weekEnd}} |
本周起止 | 2026-01-12 |
{{date+Nd:format}} |
日期偏移 | {{date+7d:YYYY-MM-DD}} |
| 命令 | 说明 |
|---|---|
| Open calendar | 打开日历视图 |
| Reveal open note | 将日历跳转到当前打开笔记的月份 |
npm run dev # 监视模式
npm run build # 类型检查 + 生产构建
npm run test # 单元测试
npm run lint # ESLint(obsidianmd 规则集)
npm run typecheck # tsc --noEmit
技术栈: TypeScript + Svelte 4 + esbuild + lunar-typescript + vitest。发布通过 GitHub Actions 完成,带构建来源证明(artifact attestation);打 tag 后发布为 draft,确认后手动 publish。
MIT