Persian Calendar

by Hossein Maleknejad
5
4
3
2
1
Score: 62/100

Description

Category: Note Enhancements

The Persian Calendar plugin integrates the Persian calendar system into Obsidian, allowing users to manage and organize notes using Persian dates. It supports daily, weekly, monthly, quarterly, and yearly notes, with the ability to use templates enriched by placeholders. The plugin also offers seamless compatibility with the Templater plugin and allows referencing notes through "@". Users can view and work with Georgian and Hijri calendars in the same interface. It also displays Iranian official, ancient, and Shia events, making it ideal for users who need to manage Persian calendar-based content and events alongside other global calendar systems.

Reviews

No reviews yet.

Stats

113
stars
9,398
downloads
9
forks
838
days
2
days
2
days
6
total PRs
0
open PRs
2
closed PRs
4
merged PRs
59
total issues
6
open issues
53
closed issues
52
commits

Latest Version

2 days ago

Changelog

  • Separate calendar event logic from the plugin
  • Improving the overall plugin code structure and ensuring the reliability of core functions.
  • Code improvements based on Obsidian Scorecard suggestions

README file from

Github

فارسی / English

"Persian Calendar" Plugin for Obsidian

This plugin adds the Solar Hijri calendar alongside the Gregorian and Lunar Hijri calendars to Obsidian, offering Iranian users a more pleasant journaling experience.

Installation Guide

You can install this plugin by searching for Persian Calendar in Obsidian's Community plugins.

Second method

You can visit the Releases section of this GitHub page, download the plugin's executable files -main.js, manifest.json and styles.css- and move them to the following path:

[Your Vault Address]/.obsidian/plugins/persian-calendar

Guide to the Essential Features

Dynamic Paths

You can set the paths for your calendar notes dynamically.

Dynamic Path Sample Value Description
jYYYY 1404 Four-digit Solar Hijri year
jQQQQ پاییز (Autumn) Full name of the Solar Hijri season
jQQ 03 Two-digit Solar Hijri season number
jQ 3 Solar Hijri season number
jMMMM آذر (Azar) Full name of the Solar Hijri month
jMM 09 Two-digit Solar Hijri month number
jM 9 Solar Hijri month number

Quick Reference to Calendar Notes

Using the @ symbol, you can quickly reference your calendar notes.

  • Days: امروز، دیروز، فردا، پریروز، پس‌فردا
  • Days of the week: (نام روز جاری)، روز بعد، روز قبل
  • Weeks: این هفته، هفته قبل، هفته بعد
  • Months: این ماه، ماه قبل، ماه بعد
  • Seasons: این فصل، فصل قبل، فصل بعد
  • Years: امسال، سال قبل، سال بعد

You can also select the desired phrase in the text and link it to the corresponding note by executing the related command.

Placeholders

By inserting the following placeholders into your note templates, you can include your desired text in the final result.

By typing {{}} you can receive suggestions for choosing your placeholder.

Daily Note Placeholders

Only replaced in daily notes.

Placeholder Sample Output Description
{{تاریخ شمسی یادداشت}} 1404-11-30 Solar Hijri date of the daily note
{{تاریخ میلادی یادداشت}} 2026-02-19 Gregorian date of the daily note
{{تاریخ قمری یادداشت}} 1447-09-01 Lunar Hijri date of the daily note
{{روز هفته یادداشت}} پنجشنبه (Thursday) Name of the day of the week
{{روز ماه یادداشت}} 30 Day of the month
{{مناسبت یادداشت}} Event text Events of the daily note's date

Weekly Placeholders

Work in daily notes and weekly notes.

Placeholder Sample Output Description
{{هفته یادداشت}} 1404-W49 Week identifier
{{اول هفته}} 2026-02-14 Start date of the week (Gregorian)
{{آخر هفته}} 2026-02-20 End date of the week (Gregorian)

Monthly Placeholders

Work in daily notes and monthly notes.

Placeholder Sample Output Description
{{ماه یادداشت}} 1404-11 Month identifier
{{نام ماه یادداشت}} بهمن (Bahman) Name of the Solar Hijri month
{{اول ماه}} 2026-01-21 Start date of the month (Gregorian)
{{آخر ماه}} 2026-02-19 End date of the month (Gregorian)

Seasonal Placeholders

Work in daily notes, monthly notes, and seasonal notes.

Placeholder Sample Output Description
{{فصل یادداشت}} 1404-S4 Season identifier
{{نام فصل یادداشت}} زمستان (Winter) Name of the season
{{اول فصل}} 2025-12-22 Start date of the season (Gregorian)
{{آخر فصل}} 2026-03-21 End date of the season (Gregorian)

Yearly Placeholders

Work in daily, weekly, monthly, and yearly notes.

Placeholder Sample Output Description
{{سال یادداشت}} 1404 Solar Hijri year
{{اول سال}} 2025-03-21 Start date of the year (Gregorian)
{{آخر سال}} 2026-03-20 End date of the year (Gregorian)

Current Time Placeholders

These always return today's date, regardless of the note type.

Placeholder Sample Output Description
{{تاریخ شمسی جاری}} 1404-11-26 Today's Solar Hijri date
{{تاریخ میلادی جاری}} 2026-02-15 Today's Gregorian date
{{تاریخ قمری جاری}} 1447-08-26 Today's Lunar Hijri date
{{روز هفته جاری}} یکشنبه (Sunday) Name of today's weekday
{{روز ماه جاری}} 26 Today's day of the month
{{هفته جاری}} 1404-W49 Current week identifier
{{نام ماه جاری}} بهمن (Bahman) Name of the current month
{{ماه جاری}} 1404-11 Current month identifier
{{نام فصل جاری}} زمستان (Winter) Name of the current season
{{فصل جاری}} 1404-S4 Current season identifier
{{سال جاری}} 1404 Current year
{{مناسبت جاری}} Event text Today's events

Elapsed and Remaining Days

By default, calculated relative to the daily note's date; if placed in a non-daily note, they use today's date.

Placeholder Sample Output Description
{{روزهای گذشته سال}} 334 Days passed since the beginning of the year
{{روزهای باقیمانده سال}} 31 Days remaining until the end of the year
{{روزهای گذشته فصل}} 58 Days passed since the beginning of the season
{{روزهای باقیمانده فصل}} 31 Days remaining until the end of the season
{{روزهای گذشته ماه}} 28 Days passed since the beginning of the month
{{روزهای باقیمانده ماه}} 2 Days remaining until the end of the month

Using the Dedicated API

This plugin provides a public API so you can use features like date and number conversion in other plugins and scripts (such as DataviewJS or Templater).

const pcApi = app.plugins.getPlugin("persian-calendar").api;

// Number conversion
pcApi.toEnNumber("۱۲۳ تست test"); // "123 تست test"
pcApi.toFaNumber("123 تست test"); // "۱۲۳ تست test"

// Solar Hijri date conversion
pcApi.jalaliToDate(1405, 9, 13); // Equivalent Gregorian date as Date object
pcApi.jalaliToGregorian(1405, 9, 13); // {gy: 2026, gm: 12, gd: 4}
pcApi.jalaliToHijri(1405, 9, 13); // (Iran basis) {hy: 1448, hm: 6, hd: 24}
pcApi.jalaliToHijri(1405, 9, 13, { base: "umalqura" }); // (Umm al-Qura basis) {hy: 1448, hm: 6, hd: 24}
pcApi.jalaliMonthName(9); // آذر (Azar)
pcApi.jalaliMonthName(9, "en"); // Azar
pcApi.seasonName(3); // پاییز (Autumn)
pcApi.seasonName(3, "en"); // Autumn

// Gregorian date conversion
pcApi.dateToGregorian(new Date()); // {gy, gm, gd}
pcApi.gregorianToDate(2026, 12, 4); // Date object
pcApi.gregorianToJalali(2026, 12, 4); // {jy: 1405, jm: 9, jd: 13}
pcApi.gregorianToHijri(2026, 12, 4); // (Iran) {hy: 1448, hm: 6, hd: 24}
pcApi.gregorianToHijri(2026, 12, 4, { base: "umalqura" }); // (Umm al-Qura) {hy: 1448, hm: 6, hd: 24}

// Lunar Hijri date conversion (Iran basis)
pcApi.hijriToDate(1448, 6, 24); // Date object
pcApi.hijriToGregorian(1448, 6, 24); // {gy: 2026, gm: 12, gd: 4}
pcApi.hijriToJalali(1448, 6, 24); // {jy: 1405, jm: 9, jd: 13}

// Lunar Hijri date conversion (Umm al-Qura basis)
pcApi.hijriToDate(1448, 6, 24, { base: "umalqura" }); // Date object
pcApi.hijriToGregorian(1448, 6, 24, { base: "umalqura" }); // {gy: 2026, gm: 12, gd: 4}
pcApi.hijriToJalali(1448, 6, 24, { base: "umalqura" }); // {jy: 1405, jm: 9, jd: 13}

// Events
pcApi.checkHoliday(new Date()); // Is it a holiday? true/false
pcApi.dateToEvents(new Date()); // Array of {title(fa/en), categories, isHolidayInIran}
pcApi.dateToEvents(new Date(), { base: "umalqura" }); // With Umm al-Qura basis

Other Features

  • Display of official Iranian holidays on the calendar
  • Display of Iran's official calendar events and international observances
  • Option to "Open today's daily note on startup," user configurable
  • Customizable display of calendar events
  • Option to create and display seasonal notes, user configurable
  • Confirmation dialog before creating calendar notes, user configurable
  • Option to set the user interface to Persian or English
  • Ability to configure calendar note templates
  • Ability to set the Lunar Hijri calendar based on Iran's Crescent Committee or Saudi Arabia's Umm al-Qura
  • Option to display the Gregorian or Lunar Hijri calendar as supplementary calendars
  • Ability to use a dedicated date picker when setting a property with type date
  • Users can use this plugin's default font named "Persian Calendar"

Collaboration and Project Participation

This plugin has been developed with love, for non-commercial purposes, and under this license.

You can support our continued efforts in the following ways:

  • Contribute to the development of this plugin
  • Report bugs or suggest a feature for development via the Issues section on this GitHub page
  • Recommend installing and using this plugin to your friends
  • Follow our website and Telegram channel

Website Telegram Channel Telegram Group

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
TagFolder
4 years ago by vorotamoroz
Big Calendar
4 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
Heatmap Calendar
4 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Extract PDF Annotations
4 years ago by Franz Achermann
This is a plugin for https://obsidian.md. It extracts Annotations from PDF Files.
Google Calendar
4 years ago by YukiGasai
Add Google Calendar inside Obsidian
Super Simple Time Tracker
4 years ago by Ellpeck
Multi-purpose time trackers for your notes!
File Forgetting Curve
3 years ago by ptrsvltns
File Forgetting Curve
Smart Connections
3 years ago by Brian Petro
Find related notes and excerpts while writing. Your link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.
Habit Calendar
3 years ago by Hedonihilist
Monthly Habit Calendar for DataviewJS. This plugin helps you render a calendar inside DataviewJS code block, showing your habit status within a month.
Tasks Calendar Wrapper
3 years ago by zhuwenq
This plugin currently provides a timeline view to display your tasks from your obsidian valut, with customizable filters and renderring options.
OZ Calendar
3 years ago by Ozan Tellioglu
Arcana
3 years ago by A-F-V
Supercharge your Obsidian note-taking through AI-powered insights and suggestions
Time Ruler
3 years ago by Joshua Tazman Reinier
A drag-and-drop time ruler combining the best of a task list and a calendar view (integrates with Tasks, Full Calendar, and Dataview).
ICS
3 years ago by muness
Generate Daily Planner from one or more ical feeds
Zettelkasten LLM Tools
3 years ago by Karl Smith
Zettelkasten note taking powered by Large Language Models
Mononote
3 years ago by Carlo Zottmann
An Obsidian plugin that ensures each note occupies only one tab. If a note is already open, its existing tab will be focussed instead of opening the same file in the current tab.
Lunar Calendar
3 years ago by OSmile
obsidian插件,一个支持农历的日历插件。
MagicCalendar
3 years ago by Vaccarini Lorenzo
An obsidian plugin that exploit a natural language processing engine to find potential events and sync them with iCalendar
Favorite Note
3 years ago by Mahmudul Hasan
The missing Obsidian plugin to mark note as favorite.
iCal
3 years ago by Andrew Brereton
This is a plugin for Obsidian that searches your vault for tasks that contain dates, and generates a calendar in iCal format that can be imported into your preferred calendar application.
Single File Daily Notes
2 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Journals
2 years ago by Sergii Kostyrko
Journalyst
2 years ago by Justin Arnold
Set View Mode per Note
2 years ago by Alex Davies
Use YAML frontmatter to specify a view mode per note.
CardNote
2 years ago by cycsd
Help you extract your thoughts more quickly in canvas
Date Inserter
2 years ago by namikaze-40p
An Obsidian plugin that lets you insert a date at the cursor position using a calendar.
Calendarium
2 years ago by Jeremy Valentine
The ultimate Obsidian plugin for crafting mind-bending fantasy and sci-fi calendars
External Links
2 years ago by Juan Vimberg
Dust Calendar
2 years ago by 纳米级尘埃
obsidian 日历插件
Calendar Event Sync
2 years ago by Stephen Dolan
Set the title of your note to the current event
Note Chain
2 years ago by ZigHolding
Package my frequently used tools, highly personal plugins.
Note Definitions
2 years ago by Dominic Let
Obsidian plugin for seamless viewing of personal definitions
Search In Canvas
2 years ago by Boninall
e-Daiary
2 years ago by Thomas Campanholi
This plugin was created to make daily entries in a journal based on the day of the year.
Datepicker
2 years ago by Mostafa Mohamed
Datepicker widget for Obsidian.
Chinese Calendar
2 years ago by DevilRoshan
在obsidian中使用的更符合中国习惯的日历插件。
Daily Statistics
2 years ago by yefengr
obsidian daily statistics
Quick Cards
2 years ago by Camus Qiu
Diarian
2 years ago by Erika Gozar
All-in-one journaling toolkit.
Morgen Tasks
2 years ago by Morgen AG
Calendar
6 years ago by Liam Cain
Simple calendar widget for Obsidian.
Jump-to-Date
5 years ago by TfTHacker
Jump to a date via a convenient popup form. This plugin is a part of the Obsidian42 family of Obsidian plugins.
Itinerary
5 years ago by Adam Coddington
Make planning your trip or event easier by rendering a calendar from event information found in your notes.
Daily notes calendar
2 years ago by bartkessels
Quickly navigate your vault using a calendar view, this plugin allows you to create and navigate to periodic notes and notes that are created on a specific date.
Mass Create
2 years ago by vellikhor
Create large quantities of notes easily at one time.
Heatmap Tracker
2 years ago by Maksim Rubanau
A customizable heatmap tracker plugin for Obsidian to visualize daily data trends with intuitive navigation and flexible settings.
Template by Note Name
2 years ago by Jacob Learned
A simple Obsidian plugin to automatically template notes based on their title
Duplicate Detector
a year ago by David Alcalde
Obsidian plugin to detect and highlight duplicate lines in the active file
Minote Sync
a year ago by Emac Shen
Minote Sync is a Obsidian plugin to sync Minote(小米笔记) into your Vault.
Every Day Calendar
a year ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Daily Routine
a year ago by sechan100
new version of daily-routine obsidian plugin
Outlook Meeting Notes
a year ago by David Ingerslev
An Obsidian plugin to create meeting notes from Microsoft Outlook .msg files
MemoChron
a year ago by Michalis Efstratiadis
Calendar integration and note creation with support for public iCalendar URLs.
Markdown Calendar Generator
a year ago by Zach Russell
An intentionally simple obsidian markdown table calendar generator
Life in Weeks Calendar
7 months ago by Jeff Szuc
Plugin for the Obsidian markdown editor. Displays a calendar of your life in weeks with weekly Periodic Notes plugin integration. Includes options for the traditional Memento Mori/Stoic style calendar, as well as a Gregorian calendar accurate version.
Calendar Bases
3 months ago by Edrick Leong
Adds a calendar layout to bases so you can display notes with dates in an interactive calendar view.
Synaptic View
3 months ago by Yongmini
A dynamic control center for your vault. Unify hubs, notes, tasks, periodic notes, and web resources with intuitive buttons. Replace new tab for instant access.