This is a plugin for Obsidian. It adds events from calendar/ics URLs to your Daily Note on demand.
This is designed to work with the Daily Note or Periodic Notes plugins: specifically it gets the date to search for events during from the currently open daily note. You can use it through Dataview or Templater for more advanced / customized usage.
I highly recommend pairing this with the Day Planner plugin: the output format is tuned to support it and you'll get support for seeing the day and week planners.
This plugin is in the community plugin browser in Obsidian. Search for ICS and you can install it from there.
If you want to try out beta releases, you can use the BRAT plugin.
Settings
-> Community Plugins
Settings
-> BRAT
)
Beta Plugin List
sectionAdd Beta Plugin
cloud-atlas-ai/obsidian-ics
Amazing Marvin
plugin (Settings
-> Community Plugins
)Go to a daily note, use the ICS: Import events
command.
For customizations not available to the formatting, use Dataview or Templater (see below). Likewise, if you want to automatically import events when you create your daily notes, you'll want to use one of those. If you have issues using Data view or Templater, test that your calendar imports works using the ICS: Import events
command as there's more error handling available there.
You can also use a Dataview to add your events to your journal notes when they get created. For examples, if you use the core Templates plugin you can add the following to add events to your daily note template:
var events = await app.plugins.getPlugin('ics').getEvents(dv.current().file.day);
var mdArray = [];
events.forEach((e) => {
mdArray.push(`${e.time} ${e.summary} ${e.location}: ${e.description}`.trim())
})
dv.list(dv.array(mdArray))
You can see the available fields in the Event interface.
Or you can use Templater:
<%*
var events = await app.plugins.getPlugin('ics').getEvents(moment(tp.file.title,'YYYY-MM-DD'));
events.sort((a,b) => a.utime - b.utime).forEach((e) => {
tR+=`- [ ] ${e.time} ${e.summary} ${e.location? e.location : ''}\n`
})
%>
See advanced Templated usage example for an example that demonstrates more features.
You can see the available fields an the Event interface.
If you want to support my work, you can buy me a coffee
If for some reason you want to install the plugin manually:
obsidian-ics-[version].zip
release file from releases.obsidian-ics
folder.ICS
pluginnpm install
npm run dev
will watch for changes and build the plugin to dist/main.js
.dist/main.js
(or dist/main-debug.js
if you want the un-minified version) to your Obdisian vault plugin folder (cp dist/main.js <vault>/.obsidian/plugins/ics/main.js
).