iCal

by Andrew Brereton
5
4
3
2
1
Score: 66/100

Description

Category: 3rd Party Integrations

The iCal plugin allows Obsidian users to generate iCal calendar files from tasks within their vault, identified by specific date formats. Tasks are appended with emojis to denote their status (e.g., completed, in progress). Users can choose to save the calendar locally or upload it to GitHub Gist for integration with external calendar applications like Google Calendar, Apple Calendar, and more. The plugin also supports various task formats, including Obsidian Tasks and Day Planner, offering flexible settings to customize which tasks to include and how to format events. Additional features include the ability to ignore completed or outdated tasks, process internal links, and periodically update the calendar.

Reviews

No reviews yet.

Stats

102
stars
18,507
downloads
28
forks
1,027
days
7
days
7
days
136
total PRs
2
open PRs
39
closed PRs
95
merged PRs
92
total issues
11
open issues
81
closed issues
163
commits

Latest Version

8 days ago

Changelog

What's Changed

Full Changelog: https://github.com/andrewbrereton/obsidian-to-ical-plugin/compare/2.5.0...2.5.1

README file from

Github

Obsidian to iCal

This is a plugin for Obsidian that searches your Obsidian vault for tasks that contain dates, and generates a calendar in iCal format that can be imported into your preferred calendar application.

How it works

Periodically, the plugin will:

  1. Find all tasks in your vault (A valid task is a Markdown checkbox (either checked or not) that contains a date in the format YYYY-MM-DD or YYYY-MM-D),
  2. Generate an iCal calendar file that contains all of these tasks,
  3. Tasks are appended with an emoji to quickly see their status (✅ completed, 🔲 to do, 🏃 in progress, 🚫 canceled),
  4. Optionally, calendar can be saved to your filesystem, and/or
  5. Optionally, calendar can be stored on GitHub Gist.

If you choose to store your calendar on Gist, you can then use the URL to your Gist in your preferred calendar application.

Your vault will be scanned every now and then for changes to tasks to keep your calendar up-to-date.

Network activity and privacy

This plugin only makes network requests when you explicitly enable a destination that requires them. No telemetry or analytics are collected.

When Save calendar to GitHub Gist is enabled, the plugin sends your generated calendar file to GitHub's Gist API (api.github.com) using the personal access token you provide. The destination Gist is the one you specify in settings.

When Save calendar to a web URL is enabled, the plugin sends your generated calendar file to the configured web API endpoint, and additionally polls that endpoint every 5 minutes to refresh subscription validation while the plugin is running.

When Periodically save your calendar is enabled, the above writes happen on the interval you configure (1–1440 minutes). With periodic save disabled, the plugin only writes when you trigger a save manually.

When Save calendar to disk is the only destination enabled, the plugin makes no network requests — the calendar is written to your vault filesystem.

You can disable any destination at any time in the plugin settings, and disabling the plugin stops all network activity immediately.

Support for Obsidian Tasks

This plugin has rudimentary support for Obsidian Tasks emoji format and Obsidian Tasks dataview format. However it is not mandatory.

Support for Day Planner

This plugin supports Day Planner format tasks. If you enable this in the settings, then the date of the task will be taken from the tasks heading, and the start time and end time will be taken from the task. If there is no end time, the default end time will be 30 minutes from the start time.

Settings

iCal has various settings which I will try to explain.

Target directory

This allows you to configure the plugin to scan for tasks in certain directories (or folders). For example, you might have a large vault with lots of information, but you only want a calendar for tasks contained in your "Diary" directory. In this case, you would choose "/Diary".

The default behaviour is to scan the entire vault for tasks, which is the "/" option.

Obsidian supports two types of internal link: wikilinks and markdown.

Wikilinks can look like: [[Link to document]] or [[Link to document|Link title]]. Markdown links look like [Link title](Link to document).

Do not modify them (default)

This option will keep the links in your event just as they appear.

Keep the title

This option will keep just the Link title and remove the link. If the wikilink does not have a title then it will be removed.

Prefer the title

This option will take the Link title however if that does not exist, then it will use Link to document.

Remove them

This option will remove them entirely from your event summary.

Ignore completed tasks

This is to allow you to exclude completed tasks from being added to your calendar. It will also remove tasks from your calendar once they are marked as completed.

Add tasks as TODO items to your calendar

By default the tasks discovered in your vault are treated as calendar events. This option allows you to also create calendar todo tasks. You have the option of choosing to just create calendar events, to just create TODO items, or to create both. Previously, there was an option to create just events or events and tasks. This has been expanded to include just tasks as well. The default option is to create just calendar events.

Some clients that support TODO items include Google Tasks, Microsoft Outlook, Microsoft To Do, Mozilla Thunderbird with Lightning Calendar, Android CalDAV-Sync, Calendars by Readdle, Todoist and OmniFocus.

Only tasks without dates are TODO items

Enabling this will mean that only tasks that do not have dates will be created as TODO items. If you disable this, then every task (tasks with or without a date) will be added to your calendar as a TODO item.

Ignore old tasks?

Toggles on or off the functionality where you are able to exclude tasks whose dates are older than the value you specify.

How many days back to you want to keep old tasks?

If Ignore old tasks? is true then you will be asked to set the age in days. Minimum value is 1 day. Maximum value is 3650 days (10 years).

Which task date should be used?

Tasks can have one or more dates. From either a single raw date in YYYY-MM-DD format, to dates for when a task starts, is scheduled or is due. This setting is to customise which date is chosen when building your iCalendar.

Prefer due date (default)

Prefer due date means the following sequence will be followed:

  1. If the task has a due date and a start date, they will be the start and end date
  2. If the task only has a due date, that will be used
  3. If the task only has a start date, that will be used
  4. If neither are found, just find any date related to that task
Prefer start date

Prefer start date means the following sequence will be followed:

  1. If the task only has a start date, that will be used
  2. If the task only has a due date, that will be used
  3. If neither are found, just find any date related to that task
Create an event per start/scheduled/due date

Create an event for each start date, scheduled date and due date associated with a task. This means if your task has all three dates, then three separate events will be created in your calendar.

  1. If there is a start date, an event will be created using that date. The summary will be appended with a 🛫.
  2. If there is a scheduled date, an event will be created using that date. The summary will be appended with a ⏳.
  3. If there is a due date, an event will be created using that date. The summary will be appended with a 📅.
  4. If none of the above dates were found, then take any old date that we can find

Support Day Planner plugin?

Enabling this will tell the plugin to consider Day Planner plugin format if tasks are discovered with times in them.

Save calendar to GitHub Gist?

Enabling this will unlock the Save calendar to GitHub Gist settings.

Save calendar to disk?

Enabling this will unlock the Save calendar to disk settings.

Periodically save your calendar?

Enabling this will tell iCal that it should periodically scan your vault for tasks within Markdown files and generate a calendar. It also unlocks the How often should we parse and save your calendar? (minutes) setting.

How often should we parse and save your calendar? (minutes)

The number of minutes between each scan to generate and save your calendar. Must be a number between 1 and 1,440 (24 hours).

Only include tasks with certain tags?

Enabling this will unlock the Only include tasks that contain these tags setting.

Only include tasks that contain these tags

You can enter one or more tags. Only tasks that contains one or more of these tasks will be included in your calendar. Multiple tags should be separated by a space.

Exclude tasks with certain tags?

Enabling this will unlock the Exclude tasks that contain these tags setting.

Exclude tasks that contain these tags

You can enter one or more tags. If a task contains any of these tags, then it will be excluded from your calendar. Multiple tags should be separated by a space.

If you have include tags and exclude tags, then exclude tags take priority.

If this is enabled, a link to the file that contains the task will be added to the event description. This is useful for clients such as Thunderbird and Evolution, as they do not support links in the event location.

Save calendar to GitHub Gist

Saving to GitHub Gist means you will be given a URL that you can import into your calendar applications.

GitHub personal access token

To be able to write the calendar file to GitHub Gist, you need to generate a personal access token.

For further information please see How to generate a GitHub Personal Access Token.

GitHub Gist ID

The Gist ID is the Gist that you want to write your calendar to.

For further information please see How to generate a GitHub Gist ID.

GitHub username

This is used only to generate the URL to your GitHub Gist.

Filename

This should match the filename that you used when you created the GitHub Gist.

For further information please see How to generate a GitHub Gist ID.

Your calendar URL

This is the URL that you need to copy and paste into your preferred calendar application.

Save calendar to disk

Saving your calendar to disk means you can import it into a desktop application (like Thunderbird) or do further processing if you're that way inclined. For example, maybe you want to email the calendar to someone. I don't know.

Path

This is the path, relative to the root directory of your vault, in which the calendar file will be written. An empty string means the root directory of your vault.

Filename

Give the calendar file a name.

File extension

Choose the extension of the filename.

Your calendar path

This is just a way to copy the path and filename and extension so it's easy to find on your filesystem.

Debug mode

This turns on logging so that you can see what the extension is doing. It can be helpful to diagnose what is happening if there are any issues.

In the Obsidian menu, go to View and select Toggle Developer Tools. The log messages will appear in the Console tab.

How to generate a GitHub Personal Access Token

A GitHub Personal Access Token is a long random string that allows iCal to write to your GitHub Gist on your behalf.

To generate one, do the following:

  1. Go to https://github.com/settings/tokens/new
    1. Note: Enter something like "Obsidian iCal".
    2. Expiration: Best practice is to expire tokens periodically but that would be frustrating. Choose no expiration if you want to.
    3. Select scopes: Choose gist only.
    4. Click Generate token
  2. Copy the personal access token (It starts in ghp_)
  3. Paste it into the GitHub personal access token setting.

If your personal access token is leaked, go to the GitHub tokens page and click Delete. Then follow these steps again to generate a new one.

How to generate a GitHub Gist ID

  1. Go to here to create a new Gist: https://gist.github.com/
    1. Gist description: Enter anything you like. Eg: My calendar that is generated from my Obsidian vault
    2. Filename including extension: You could use obsidian.ics or your vault name. Whatever you enter here, you will need to enter it in the iCal settings so it knows which file to write to.
    3. For the contents of the Gist, just put anything in there. The iCal plugin will overwrite it.
    4. Click Create secret gist

After you create the Gist, you will see the URL is something like:

https://gist.github.com/andrewbrereton/11c399ce6c0d89c5f8101edb9a2b76d6

                        |------------| |------------------------------|
                           Username                 Gist ID
  1. Take the Username part and enter it in GitHub username setting.

  2. Take the Gist ID part and enter it in GitHub Gist ID setting.

Compatible calendars

  • Google Calendar
  • Apple Calendar
  • Microsoft Outlook
  • Lightning extension for Mozilla Thunderbird and SeaMonkey
  • Yahoo! Calendar
  • GNU Emacs
  • HCL Domino (formerly IBM Notes and Lotus Notes)
  • GNOME Evolution
  • eM Client
  • Novell GroupWise

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Abele
a month ago by dudaanton
An Obsidian plugin that adds a lot of functionality I personally find missing.
Agile Task Notes
4 years ago by BoxThatBeat
This Obsidian plugin integrates your TFS data from either Jira or Azure Devops
Amazing Marvin
5 years ago by Shirayuki Nekomata
Simple plugin for Amazing Marvin
Amazing Marvin Integration
2 years ago by Cloud Atlas
Interoperability between Obsidian and Amazing Marvin
Another Simple Todoist Sync
2 years ago by eudennis
Obsidian.md plugin to integrate with Todoist app.
Apex Dashboard
3 months ago by PandoraReads
Stop switching between Obsidian notes. One page. Everything you need. Memo your thoughts, crush your todos, track your projects — and make it look incredible doing it.
Archiver
5 years ago by ivan-lednev
Archive completed tasks in your Obsidian vault (plus other org-mode-like features)
Asana
2 years ago by Ryan Bantz
Obsidan plugin that creates tasks in Asana for highlighted text or the current line
BeautyTasks
2 months ago by Avni Bilgin
Todoist-style task & project manager for Obsidian — one markdown note per task, native UI, no plugin dependencies.
Big Calendar
5 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
BrainCore LifeOS
8 days ago by 囍樂
BrainCore 侧边栏不仅是一个展示面板,更是你整个 Obsidian 知识库的“核心呼吸机”。它由 6 大模块组成,涵盖了时间感知、极速收集、工作流转、习惯养成与知识内化。一切信息从这里输入,最终也会在这里沉淀。
Brainframe
3 years ago by pedersen
Calendar
6 years ago by Liam Cain
Simple calendar widget for Obsidian.
Calendar Bases
6 months ago by Edrick Leong
Calendar Event Sync
2 years ago by Stephen Dolan
Set the title of your note to the current event
Calendarium
3 years ago by Jeremy Valentine
The ultimate Obsidian plugin for crafting mind-bending fantasy and sci-fi calendars
Carry-Forward
5 years ago by Jacob Levernier
An Obsidian Notes plugin for generating and copying block IDs, and copying lines with a link to the copied line
Checkbox 3 states
4 years ago by Renaud Héluin @ NovaGaïa
This is a simple plugin for add a third state to checkbox list.
Checkbox Sounds
2 years ago by yasd251
Adds a nice completion sound for checkboxes when ticked in Obsidian
Checkbox Time Tracker
2 years ago by UD
Checkbox Time Tracker for Obsidian
Checklist Reset
4 years ago by Luke Hansford
Add a command to reset the state of any checklists in a document in Obsidian
Chinese Calendar
2 years ago by DevilRoshan
在obsidian中使用的更符合中国习惯的日历插件。
Custom State for Task List
3 years ago by Okami Wong
A plugin for Obsidian to define your own states for task items.
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.
Daily Routine
2 years ago by sechan100
new version of daily-routine obsidian plugin
Daily Statistics
2 years ago by yefengr
obsidian daily statistics
Date Inserter
3 years ago by namikaze-40p
An Obsidian plugin that lets you insert a date at the cursor position using a calendar.
Datepicker
2 years ago by Mostafa Mohamed
Datepicker widget for Obsidian.
Day Planner
2 months ago by ivan-lednev
An Obsidian plugin for day planning with a clean UI and a simple task format
Diarian
2 years ago by Erika Gozar
All-in-one journaling toolkit.
doing
2 years ago by rooyca
What was I doing?
Due When
3 years ago by Andy Baxter
An Obsidian plugin which gives shortcuts to insert set due dates
Dust Calendar
2 years ago by 纳米级尘埃
obsidian 日历插件
Dynamic Timetable
3 years ago by L7Cy
Calculate the estimated completion time from the estimated task time and dynamically create a timetable.
Ego Rock
3 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
Every Day Calendar
2 years ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Flow
2 years ago by Ben Phillips
Implements key processes in David Allen's Getting Things Done (GTD) methodology
Full Calendar Remastered
3 months ago by obsidian-full-calendar-remastered
Keep events and manage your calendar alongside all your other notes in your Obsidian Vault.
Gantt Calendar
2 months ago by Sugar
obsidian-gantt-calendar
Gantt this
a month ago by Altarok
Obsidian plugin showing multiple TTRPG calendars at once in one gantt chart.
Goal Tracker
2 years ago by Ben Rotholtz
Google Calendar
4 years ago by YukiGasai
Add Google Calendar inside Obsidian
Grind Manager
2 years ago by dromse
Gamify your task management with rewards system, craft your tasks by tags.
GTD No Next Step
3 years ago by Tobias Davis
Obsidian plugin for GTD workflow, badge projects with no next step.
GTD Tasks
2 months ago by unpreditable
Habit Calendar
4 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.
Habitica Sync
5 years ago by Leoh and Ran
This is a under-development Obsidian Plugin for Habitica
Heatmap Calendar
5 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
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.
Homework Manager
3 years ago by Kadison McLellan
An Obsidian plugin that keeps track of homework through a to-do list.
ICS
3 years ago by muness
Generate Daily Planner from one or more ical feeds
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.
Journal View
2 months ago by RUverse
A Journal View 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.
Kanban
5 years ago by mgmeyers
Create markdown-backed Kanban boards in Obsidian.
Kanban Bases View
6 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Obsidian Bases that allows you to organize your notes into columns based on any property.
Kikijiki Habit Tracker
2 years ago by KIKIJIKI
Kikijiki Habit Tracker Plugin for Obsidian
Life in Weeks Calendar
10 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.
Live Life Recording
2 months ago by goryugocast
Operate tasks directly in Markdown with start/finish records, routine insertion, and a lightweight daily summary for Obsidian.
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
Markdown Calendar Generator
a year ago by Zach Russell
An intentionally simple obsidian markdown table calendar generator
MemoChron
a year ago by Michalis Efstratiadis
Calendar integration and note creation with support for public iCalendar URLs.
Morgen Tasks
2 years ago by Morgen AG
Notebook Navigator
2 months ago by Johan Sanneblad
A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.
Notion Bases
2 months ago by bgarciamoura
Turn any folder into a Notion-style database — 7 views, 17 column types, formulas, relations, rollups, and subtasks. All stored in plain Markdown frontmatter.
Obsidian Google Tasks
4 years ago by YukiGasai
Add Google Tasks inside Obsidian
Operon
a month ago by Hasan Yılmaz
Task management system for humans and agents in Obsidian.
Order List
4 years ago by Henry Gustafson
Org Mode
5 years ago by ryanpcmcquen
Add Org Mode support to Obsidian.
Outlook Meeting Notes
a year ago by David Ingerslev
An Obsidian plugin to create meeting notes from Microsoft Outlook .msg files
OZ Calendar
3 years ago by Ozan Tellioglu
Obsidian plugin to display notes on a calendar based on YAML frontmatter or file names
Pending notes
4 years ago by Ulises Santana
Obsidian plugin for searching links without notes in your vault.
Personal OS
2 years ago by A.Buot
Pivotal Tracker Integration
3 years ago by jondeates
Pomodoro Planner
3 years ago by Onur Nesvat
Power Bases
2 months ago by Power Plugins
Add board, calendar, timeline, chart, gallery, and table views to Bases, with inline editing, colors, rollups, field types, formulas, and CSV import.
Prioritize
3 years ago by EloiMusk
Obsidian Plugin, to prioritize stuff in Obsidian
Prisma Calendar
2 months ago by Matej Vavro Productivity
Prisma is not just a calendar plugin. It turns any note with a date into a flexible planning system inside Obsidian. There are no rigid schemas or predefined structures — just your data, your rules, fully under your control. It lets you see your entire vault through time.
ProgressTracker
a year ago by Van Nam
A plugin that helps you track progress and manage tasks in your notes.
Project Manager
4 months ago by stepankropachev
Project management inside Obsidian. Table, Gantt and Kanban over plain Markdown notes, with a local API for agents and scripts.
Random To-Do
5 years ago by NatiAris
Pick a random todo item or a file with todo items
Rollover Plus
20 days ago by Wren
Move unfinished tasks between daily notes with Rollover Plus.
Send to Canvas
a year ago by wenlzhang
An Obsidian plugin that allows you to send tasks, blocks, and notes to Canvas files as plain text, links, and embeds.
Sheet Plus
2 months ago by ljcoder
obsidian spreadsheets solutions
Simple Reminder
11 days ago by Dmitry
Напоминалка
Simple Todo
2 years ago by elliotxx
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
Simplest Todo
4 months ago by kintolayli
Single File Daily Notes
3 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Synaptic View
6 months ago by Yongmini
Obsidian Plugin : Synaptic View that unifies your dashboards, hub notes, quick-entry notes, periodic notes, web shortcuts, and calendar navigation—enable it as the default new-tab experience or summon it with a command.
Task Collector
4 months ago by ebullient
Manage tasks and logs within an Obsidian note.
Task list
3 years ago by Ted Marozzi
A simple obsidian plugin enabling better task management via lists.
Task List Kanban
2 years ago by Chris Kerr
Task Marker
4 years ago by wenlzhang
An Obsidian plugin to change task status and append text with hotkeys and right-click context menu.
TaskChute Plus
a month ago by hiroyaiizuka
Execute Taskchute for Obsidian
TaskNotes
3 months ago by callumalpass
Task and time-tracking management with calendar integration for Obsidian
Tasks
5 years ago by Clare Macrae and Ilyas Landikov (created by Martin Schenck)
Task management for the Obsidian knowledge base.
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.
Things Link
5 years ago by @gavmn
Things3 Today
3 years ago by wudanyang6
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).
Timekeep
2 years ago by Jacobtread
Obsidian task time tracking
TODO Wrangler
3 years ago by Jeel Shah
An obsidian plugin to wrangle your Todos and put them in their place.
TODOseq
2 months ago by Stephen Cross
TODOseq ("to-do-seek") is a lightweight, keyword-based task tracker for Obsidian
TodoTxt
3 years ago by Mark Grimes
Obsidian plugin to manage todotxt files
Track-a-Lot
3 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Trello
5 years ago by Nathonius
An Obsidian Plugin that connects Trello cards to Obsidian notes.
Uncheck All
3 years ago by Shahar Har-Shuv
Obsidian plugin to uncheck all checkboxes in a file with one action
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
Week Planner
4 years ago by Ralf Wirdemann
Weekday Commands
19 days ago by Wren
Wiki Companion
23 days ago by Mo A
A minimalist, read-only calendar for Obsidian, built on the frontmatter you already have.
WorkLife Calendar
a month ago by RavenLife
All-in-one: a smart calendar, task and habit tracker, time tracker, and financial planner, all connected into a single ecosystem within Obsidian.
Xboard
a month ago by wrbin
一款易上手、已美化、更适合AI工作流的obsidian工作台
Xove Dashboard
a month ago by ty
Obsidian 个人工作台插件:把任务管理 / 项目管理 / 灵感收集 / 笔记统计 收进一个首页,数据全留在本地的。
Yori Task
4 months ago by yorigo77
task manager, week planner, year planner
Yuhanbo Task
2 months ago by yuhanbo
Obsidian 智能任务管理与番茄时钟插件,集成 AI 智能拆分的任务管理系统,配备专业番茄时钟,提升工作效率。