urishiraval / obsidian-apple-reminders-plugin

A plugin to attempt to bring Apple Reminders into Obsidian.
GNU General Public License v3.0
149 stars 14 forks source link
applescript obsidian-plugin

Apple Reminders

Reminders Plugin used with daily notes

A plugin to attempt to bring Apple Reminders into Obsidian.

Note: This plugin can get a bit heavy but I've tried to make it as effecient as possible. Any recommendations are welcome.

(I'm not responsible for any loss of data....though this plugin never deletes any reminder, only ever alters their properties)

Change Log

v2.0:

v0.2:

Requirements

This plugin uses apple script to sync so it will only work on an Apple Device.

Installation Instructions

Manual

  1. Download and unzip the release folder obsidian-apple-reminders-plugin.zip
  2. Copy the obsidian-apple-reminders-plugin folder into the .obsidian/plugins folder
  3. Start Obsidian
  4. Enable Apple Reminders in Third-Party Plugins

Obsidian Built-In Plugin Manager

Add this plugin from the Community Plugins Tab

How To Use

Create a code block like so:

```apple-reminders
list: List Name

This will fetch all uncompleted reminders in the list `List Name`.

Note:
  - If the list does not exist, it will create it.
  - This uses the [yaml](https://yaml.org) format specification.
  - Nested (aka 'Indented') Reminders don't work. This is cause Apple doesn't expose this feature yet through apple script for some reason. (Bummer, I know.)

## Additional Features

#### Pull Specific Reminders

```yaml
list: List Name
reminders:
  - Reminder 1
  - Reminder 2

This will do 2 things:

  1. Will Create 'Reminder 1' or 'Reminder 2' if it doesn't exist
  2. If 'Reminder 1' or 'Reminder 2' does exist, it will fetch it and show it's status.
    • (I.e. it fetches the reminders regardless of whether they are completed, effectively bypassing the default settings of a list only fetching reminders that aren't completed yet.)

Filters

list: List Name
reminders:
  - Some Random (Possibly) Completed Reminder That Doesn't Matter
filters:
  - date: today - next month
  - priority: high

So far only the date and priority fields are filterable since those are mostly what I pay attention to. (If you'd like other fields to be implemented please create an issue)

Things to Note:

  1. The date field is parsed using the Chrono.js library and thus has all the features (and or issues) that it has. Please refer to it's documentation to see what is available.
    • However please note that the dates are compared using Moment.js (specifically the isSame and isBetween (inclusive) functions) and the dates are limited to the 'day' value. This means that times are ignored.
    • So for example, if you try to pull reminders between 6am and 5pm this will just pull all the reminders on that day rather than limit it to that time period
  2. The filters are 'anded' together. I.e. the filters in the example above become date is between today and next month and priority is high.
  3. The date field has a special keyword. If you put:
- date: daily note

The filter will be replaced by the Title of the Note. This has a caveat that if your Daily Note has an unusual Date Format (that can not be parsed by Chrono.js) this filter will not work and this might result in no reminders being displayed. (If you use this feature and this caveat occurs, please create an issue or comment on an existing one).

Additional Notes

The blocks sync every few minute. The sync time can be set in the plugin settings.

Objectives

To add to this list create a Feature Request in Issues and I'll be happy to add it to this list.

(In no particular order)

Feedback

Any bugs or features/recommendations can be made by creating an Issue on this repo