iCal

by Andrew Brereton
5
4
3
2
1
Score: 51/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

100
stars
13,647
downloads
27
forks
891
days
96
days
327
days
78
total PRs
8
open PRs
30
closed PRs
40
merged PRs
64
total issues
32
open issues
32
closed issues
96
commits

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.

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 to a calendar for tasks contains 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 expended 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.
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.
Archiver
5 years ago by ivan-lednev
Archive completed tasks in your Obsidian vault (plus other org-mode-like features)
Asana
a year ago by Ryan Bantz
Obsidan plugin that creates tasks in Asana for highlighted text or the current line
Big Calendar
4 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
Brainframe
3 years ago by pedersen
Calendar
6 years ago by Liam Cain
Simple calendar widget for Obsidian.
Calendar Bases
a month ago by Edrick Leong
Adds a calendar layout to bases so you can display notes with dates in an interactive calendar view.
Calendar Event Sync
2 years ago by Stephen Dolan
Set the title of your note to the current event
Calendarium
2 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
3 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
a year 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
a year ago by sechan100
new version of daily-routine obsidian plugin
Daily Statistics
2 years ago by yefengr
obsidian daily statistics
Date Inserter
2 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 (OG)
3 years ago by James Lynch (continued by Erin Schnabel)
An Obsidian plugin for day planning and managing pomodoro timers from a markdown task list.
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
2 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
Every Day Calendar
a year ago by QuBe
Obsidian plugin to create calendars inspired by Simone Giertz's Every Day Calendar
Filtered Opener
2 years ago by Roman Kubiv
Sets of notes defined by filters to open notes.
Flow
2 years ago by Ben Phillips
Implements key processes in David Allen's Getting Things Done (GTD) methodology
Goal Tracker
a year 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.
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.
Habitica Sync
5 years ago by Leoh and Ran
This is a under-development Obsidian Plugin for Habitica
Heatmap Calendar
4 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Heatmap Tracker
a year 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.
Journals
2 years ago by Sergii Kostyrko
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 Bases View
2 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Bases.
Kikijiki Habit Tracker
a year ago by KIKIJIKI
Kikijiki Habit Tracker Plugin for Obsidian
Life in Weeks Calendar
6 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.
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
10 months 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
Obsidian Google Tasks
4 years ago by YukiGasai
Add Google Tasks inside Obsidian
Order List
3 years ago by Henry Gustafson
Org Mode
5 years ago by ryanpcmcquen
Add Org Mode support to Obsidian.
Orgmode (CM6)
2 years ago by Benoit Bazard
Orgmode plugin for 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
Pending notes
3 years ago by Ulises Santana
Obsidian plugin for searching links without notes in your vault.
Persian Calendar
2 years ago by Hossein Maleknejad
Persian Calendar for Obsidian.md
Personal OS
2 years ago by A.Buot
Pivotal Tracker Integration
3 years ago by jondeates
Pivotal Tracker URL Helper
2 years ago by kndshein
Pivotral Tracker URL prettifier for Obsidian
Pomodoro Planner
2 years ago by Onur Nesvat
Prioritize
3 years ago by EloiMusk
Obsidian Plugin, to prioritize stuff in Obsidian
Progress Clocks
2 years ago by Nathan Clark
Progress clocks and other useful widgets for https://obsidian.md/.
ProgressTracker
a year ago by Van Nam
A plugin that helps you track progress and manage tasks in your notes.
Random To-Do
5 years ago by NatiAris
Pick a random todo item or a file with todo items
Send to Canvas
10 months ago by wenlzhang
An Obsidian plugin that allows you to send tasks, blocks, and notes to Canvas files as plain text, links, and embeds.
Simple Todo
a year ago by elliotxx
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
Single File Daily Notes
2 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Synaptic View
a month 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.
SystemSculpt AI
2 years ago by SystemSculpt.com
Enhance your Obsidian App experience with AI-powered tools for note-taking, task management, and much, MUCH more.
Task list
2 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
3 years ago by wenlzhang
An Obsidian plugin to change task status and append text with hotkeys and right-click context menu.
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
4 years ago by @gavmn
Things3 Today
2 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.
TODO | Text-based GTD
5 years ago by Lars Lockefeer
Todoist Project sync
2 years ago by Jonas Dam
TodoTxt
3 years ago by Mark Grimes
Obsidian plugin to manage todotxt files
Track-a-Lot
2 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
Yearly Glance
a year ago by Moy & RavenHogWarts
An obsidian plugin to build "year at a glance" view.