cloud-atlas-ai / obsidian-ics Goto Github PK
View Code? Open in Web Editor NEWGenerate Daily Planner from ical feeds
License: MIT License
Generate Daily Planner from ical feeds
License: MIT License
Steps I took to get the above error:
I downloaded the release, unzipped your file and saved all the files from that to the ics folder within the plugins folder, as instructed in your readme. And then restarted the Obsidian app. I searched and found ICS plugin. Then I activated it. And I got the error "Failed to load plugin ics-plugin"
I am using Windows 10 on a PC.
Now that Daily Planner supports an end time on events, include it in the output format.
Would be killer to be able to display other information from the .ICS file like location to get zoom links/meeting rooms/etc.
Hey, I am trying to add my private google iCal to the calendars list and receive following errors. I guess it's related to the contents of an event. Is there anything I can do to help to resolve the issue?
Error loading calendar from https://calendar.google.com/calendar/ical/..../basic.ics
eval @ plugin:obsidian-full-calendar:53137
fulfilled @ plugin:obsidian-full-calendar:53
ParserError {message: 'invalid line (no matching double quote) ";CUTYPE=I…ble to join the retro. :\\\\":mailto:[email protected]"', name: 'ParserError', stack: ' at new ParserError (plugin:obsidian-full-calen…dar:53134:22)\n at Generator.next (<anonymous>)'}
eval @ plugin:obsidian-full-calendar:53138
fulfilled @ plugin:obsidian-full-calendar:53
Could not get calendar: There was an error loading a calendar. Check the console for full details. Error: Could not get calendar: There was an error loading a calendar. Check the console for full details.
at eval (plugin:obsidian-full-calendar:53147:21)
at Generator.next (<anonymous>)
at fulfilled (plugin:obsidian-full-calendar:53:24)
eval @ plugin:obsidian-full-calendar:44276
wrappedFailure @ plugin:obsidian-full-calendar:42989
Per calendar, it'd be nice if the items can be checkboxes OR bullets supporting task calendars vs. event calendars.
I've tried to use a calendar from the app TickTick which starts with webcal://.
Replacing webcal for https seems to work fine.
Maybe this should be integrated.
With the time change, some of my event times are incorrect.
Releases are getting named a la refs/tags/0.9.17
instead of just 0.9.17
. Need to fix this before submitting to community.
I don't use daily notes, preferring instead to make notes about ideas, but I do have a kind of "dashboard" note where this could be useful. Is it required to only work on a daily note? Could there be an alternative?
Generalise the setting for what appears before/after the event time, so we can have output like:
- 08:00 Breakfast
- [ ] 08:00 Breakfast
08:00 Breakfast
**08:00 Breakfast**
## 08:00 Breakfast
The subject line says it all
I used the templater example and modified it to also show endTime:
%* 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.endTime} ${e.summary} ${e.location? e.location : ''}\n }) %>
but I get the following:
if I run the import events command manually I get:
I can, of course change the javascript, but think that if I enable dataview format e.time and e.endTime should be returned in dataview format.
Sorry - one more observation as I was testing the fix for #12
I noticed a recurring event I declined still shows up when Obsidian imports my agenda even though it doesn't show up in my calendar.
Here are the specifics, if it helps with reproduction:
I did a search of issues and saw #16 , I use weekly notes. happy to specify that in this plugin or in periodic notes. Currently I have weekly notes specified in periodic notes and daily notes disabled.
It would be great if there was a way to use them. the thoughts I had were
If I have a one hour event then a four hour break before the next event starts I don't want it to look like my first event is five hours long.
I cloned the repository and implemented this change but I'm not sure how to share my code. I've never contributed to someone else's project on GitHub before. Let me know if you're interested in my implementation.
When I import calendar events, some of them are always missing. It's not always the same ones. So for example, a recurring meeting that is there every day will appear yesterday, but not appear today. Running it again results in the same results.
The meetings do appear in the ICS file that is downloaded from Google Calendar with the correct date and time.
The meetings I have noticed are recurring meetings. But there may be others (which I'm now keeping an eye on).
Hi,
Thank you for this great plugin. You recently added checkbox or bullet option per calendar (if I have undestood https://github.com/muness/obsidian-ics/issues/67) correctly. However when enabling checkbox on one subscription it changed it for all and vice versa.
Kind regards
Gavin
Obsidian: 1.4.16
Plugin: 1.4.0
I'm using the plug-in very well Thank you.
I don't want to print out the name of the ics
Furthermore, what do you think of allowing the output format to be customized by the user?
On the first instance of a recurring meeting, I see them duplicated in the output.
Would be nice to customize the output, especially the 12/24h display.
Thanks!
I have a template for my daily notes that automatically calls Obsidian-ICS and works great. However, it can't run on Android, so if I open Obsidian on my phone before I open it on my laptop on a given day it does not import.
I want to be able to enter some surrounding text to the time that you create when you import the event. For example, I'd like to have 2 fields in the form
start format - [[ startTime:: HH:mm ]]
end format - [[ endTime:: HH:mm ]]
and have it create an event like:
you basically look for the time spec and only replace that and pass through the rest. Would also be useful to have length used instead of end time.
Thanks for the plugin!
ics name, summary and descriptions are an option. Allow the location to be an option too.
thought this might be of use. a mod to the templater example. puts the description in a callout. also, in MS365 an empty description has content. "\n" or is "", so added a check otherwise after each tasks I get a line with just an indented bullet
<%*
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) => {
const calendar = e.icsName.replace(" ","-");
const callUrl = e.callUrl? [${e.callType}](${e.callUrl})
: '';
const location = e.location? 📍 *(${e.location})*
: '';
tR+=- [ ] ${e.time} ${e.endTime} **${e.summary}** ${location}${callUrl} \n
if (e.description && e.description != "" && e.description != "\n") {
const inlineDescription = e.description.replace(/(?:\r\n|\r|\n)/g," ").replace(/\s{2,}/g," ");
tR+=> [!INFO]-\n> - ${inlineDescription}\n
}
})
%>
Recurring events that were created prior to gaining an hour in the fall display as an hour earlier than they should when imported into Obsidian
When importing the calendar some events are appearing at the wrong times. These appear to be meetings created in a different timezone to my own.
Is there handling for this? And is there anything I can do troubleshoot and provide more info?
Plugin failure: ics-plugin Error: ENOENT: no such file or directory, open '/home/acw/works/obsidian/acw-thoughts/.obsidian/plugins/obsidian-ics/main.js
When invoking the ICS: Import events
command from the command palette from within a Daily Note, no new content appears in the note. The console error is as follows:
The structure of the Daily Note (created via the Daily notes: Open today's daily note
command) is as follows:
---
tags:
---
[[2022-01-06 | << Yesterday]] | [[2022-01-08| Tomorrow >>]]
## Meetings
(add embeddings once created:)
+ [[2022-01-07_XX]]
+ [[2022-01-07_XX]]
## Tasks
### New
#todo
- [ ] task-for-self
### Carried forward
- [ ] embedded-backlink-here
I have separately confirmed that the .ics link can be downloaded and imported into Outlook manually (outside of Obsidian).
Hi! Is it possible to make the calendar list appear as part of a template? Something similar to an obsidian-tasks
template where it generates the calendar for that day when you create a daily note automatically?
Hey There, I have tried to do install the plugin, but the plugin fails to load.
I use windows 10
have downloaded the latest version
unpacked the folder as specified in the README file
placed it in obsidian/plugins and restarted as needed.
My other plugins:
I really hope this could be solved, it would be a real game changer!
Thank you!
I make my notes for the week at the beginning of the week. It would be great to have the plugin automatically add the events to each date, rather than me going and inserting them manually.
Hello,
I have the following error when execute ICS: Import events.
Maybe because spanish format date?
Uncaught (in promise) TypeError: Cannot read property 'format' of null
at Object.callback (eval at (app.js:1), :18:6409)
at SR (app.js:1)
at e.onChooseItem (app.js:1)
at e.onChooseSuggestion (app.js:1)
at e.selectSuggestion (app.js:1)
at t.useSelectedItem (app.js:1)
at t.onSuggestionClick (app.js:1)
at HTMLDivElement.s (app.js:1)
callback @ VM236:18
SR @ app.js:1
e.onChooseItem @ app.js:1
e.onChooseSuggestion @ app.js:1
e.selectSuggestion @ app.js:1
t.useSelectedItem @ app.js:1
t.onSuggestionClick @ app.js:1
s @ app.js:1
This may be Outlook 365-specific, but I have several recurring events whose times are being parsed incorrectly. I have a daily calendar block from 8:00 to 10:00am, which winds up appearing at 9:00am in my note. I also have a weekly call on Fridays at 10:00am that persists in appearing at 9:00am. I thought that latter error might have been due to my having created the event when I was located in Central time (I'm now in Eastern time), but that doesn't explain the first error.
In the event it's relevant, I'm using Templater code to pull events in on daily note creation, like so:
<%*
var events = await app.plugins.getPlugin('ics').getEvents(tp.file.title);
var mdArray = [];
events.sort((a,b) => a.utime - b.utime).forEach((e) => {
const callUrl = e.callUrl? ` [${e.callType}](${e.callUrl})` : '';
tR+=`- ${e.time} -- ${e.summary} ${callUrl}\n`
})
%>
Evaluation Error: TypeError: Cannot read properties of null (reading 'getEvents')
at eval (eval at <anonymous> (plugin:dataview), <anonymous>:1:110)
at eval (eval at <anonymous> (plugin:dataview), <anonymous>:7:4)
at DataviewInlineApi.eval (plugin:dataview:18404:16)
at evalInContext (plugin:dataview:18405:7)
at asyncEvalInContext (plugin:dataview:18412:16)
at DataviewJSRenderer.render (plugin:dataview:18436:19)
at DataviewJSRenderer.onload (plugin:dataview:18020:14)
at e.load (app://obsidian.md/app.js:1:631421)
at DataviewApi.executeJs (plugin:dataview:18954:18)
at DataviewPlugin.dataviewjs (plugin:dataview:19559:18)
used the dataview example here: https://github.com/muness/obsidian-ics/pull/33
In 0.9.12 (and probably earlier too) I see lots of recurring events printed out in the log as objects. This is debugging from earlier.
I tried parsing my O365 published ics and it failed.
TODO: add parse error or other debugging.
Isn't .ics a standardized format?
Just tried to use it with Radicale a local DAV server which gives you .ics urls too and it doesn't work unfortunately.
Example .ics content below
VERSION:2.0
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
X-WR-CALNAME;VALUE=TEXT:personal
BEGIN:VTIMEZONE
TZID:Europe/Warsaw
BEGIN:STANDARD
DTSTART:19790930T020000
RRULE:FREQ=YEARLY;UNTIL=19880925T030000;BYDAY=-1SU;BYMONTH=9
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:STANDARD
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:STANDARD
DTSTART:19770925T020000
RDATE:19770925T020000
RDATE:19781001T020000
RDATE:19870927T020000
RDATE:19890924T030000
RDATE:19900930T030000
RDATE:19910929T030000
RDATE:19920927T030000
RDATE:19930926T030000
RDATE:19940925T030000
RDATE:19950924T030000
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19770403T000000
RDATE:19770403T000000
TZNAME:CEST
TZOFFSETFROM:+0000
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19880327T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19780402T010000
RDATE:19780402T010000
RDATE:19790401T010000
RDATE:19800406T010000
RDATE:19810329T010000
RDATE:19820328T010000
RDATE:19830327T010000
RDATE:19840325T010000
RDATE:19850331T010000
RDATE:19860330T010000
RDATE:19870329T010000
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:f2ce6b4b-7952-4091-b16b-528ee11a3ef3
DTSTART;TZID=Europe/Warsaw:20210923T150000
DTEND;TZID=Europe/Warsaw:20210923T160000
CREATED:20210916T130051Z
DTSTAMP:20210916T130051Z
LAST-MODIFIED:20210916T130051Z
SUMMARY:wavem
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:5e5510e2-57cb-4649-aa8e-b3008a75ce50
DTSTART;TZID=Europe/Warsaw:20210922T131501
DTEND;TZID=Europe/Warsaw:20210922T141501
CREATED:20210922T081601Z
DTSTAMP:20210922T081849Z
LAST-MODIFIED:20210922T081849Z
SEQUENCE:1
SUMMARY:lempe bempe
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
UID:d4824ade-a6f3-4e5f-932b-ce2e1d734d32
DTSTART;TZID=Europe/Warsaw:20210922T101500
DTEND;TZID=Europe/Warsaw:20210922T111500
CREATED:20210922T081548Z
DTSTAMP:20210922T081844Z
LAST-MODIFIED:20210922T081844Z
SEQUENCE:1
SUMMARY:parampa bamp
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Recurring events seem to get pulled in multiple times when you import events the first day they appear in your calendar. They show up once as a single event, and then get repeated one or more times with "(recurring)" at the end. It doesn't seem to be an issue after the first occurrence.
- [ ] 08:25 📅 Important meeting
- [ ] 08:25 📅 Important meeting (recurring)
- [ ] 08:50 📅 A less important meeting
- [ ] 10:30 📅 Brunch
- [ ] 12:00 📅 Get together
- [ ] 12:00 📅 Get together (recurring)
- [ ] 12:00 📅 Get together (recurring)
- [ ] 12:50 📅 Late lunch (recurring)
As of now, only importing events from all defined calendars is possible.
Hi there. Thanks for the fantastic plugin! This is super useful.
I'm running into a scenario where I've added an additional ICS URL, that is generated by a Nextcloud server. However it throws "RngeError: Invalid time value" and then dies. It also then fails to handle the other calendar that I have configured, that the plugin is happy with.
Have you seen success with Nextcloud ICS URLs in the past? Thanks again!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.