Open moulai opened 5 months ago
Hi @moulai. Wow, this is great. Thank you.
General feedback:
Please create one branch and one pull request per feature. I am happy to checkout your branch, add tests, add docs, etc, and review the pull request prior to merging.
I'm not sure if I understand this feature properly, can you please elaborate? Perhaps we use different calendar apps so we see different things. If you wish, provide a screenshot to help me to understand.
Yes, this is a good feature. I presume this would add four new settings to choose either the default emoji or enter custom text for TaskStatus.Cancelled
, TaskStatus.Done
, TaskStatus.InProgress
and TaskStatus.ToDo
.
This plugin already has support for Obsidian Tasks dataview format however the labels you mentioned (eg: startTime
) is different from the Obsidian Tasks labels. Is this to support another format?
I was envisioning adding support for S3, SFTP, etc. They would be additional *Client.ts
classes. Your suggestion seems like a good client to add. I'm not sure how popular it is, but I'm more than happy to accept it.
Thank you :)
Hi @andrewbrereton, thank you for your reply. Here are some additional details and explanations.
I have uploaded some screenshots showcasing events with (the original multi-events functionality) and without the ⏳ icon. While the original version looks great, I found that having many ⏳ icons can be a bit overwhelming and redundant for my workflow. In the modified version (shown in another screenshot), I have removed the ⏳ icon, resulting in a cleaner look.
My scheduling process involves selecting tasks without specific scheduled dates from the backlog and then assigning them to dates within the current week or month. That is, the events that appear on the calendar are by default "Scheduled."
Perhaps we could add custom functionalities for the "schedule", "due", and "start" icons, similar to Feature 2. This way, there would be no need for a separate option to remove the ⏳ icon! (I can simply set the schedule icon to be empty)
I will open a PR for this as soon as possible. It may need your review and modifications on the settings view.
I apologize for the confusion, it seems that startTime
and endTime
are not official Tasks dataview markers (it appears that the official Tasks plugin does not explicitly provide time markers for tasks). However, I have come across many users on the forum using startTime
and endTime
as task time markers: https://forum.obsidian.md/search?q=startTime.
startTime
and endTime
are the official time marker formats for the Full Calendar plugin: obsidian-full-calendar
Most importantly, I use obsidian-time-ruler for tasks management (by the way, this is a great plugin). It generates default timestamp markers for Tasks as startTime
and Length
.
Perhaps this format could be named to "support the time-ruler plugin/the full-calendar plugin"?
Using S3 or SFTP does seem like a more elegant solution!
I think the tool I mentioned is not widely used, but it is easy to deploy (via Docker, lightweight, and resource-efficient), which is why I opted for it. However, I agree that this feature may not be necessary (supporting S3, SFTP would be preferable).
I will open a PR for this as soon as possible. I have a question though, is it possible for the original program to generate an event like DTSTART:20240301 \n DTEND:20240301
(which is logically an all-day event but has an incorrect format)? Do we need to implement additional checks in the code for this?
Hello, @andrewbrereton
I've been exploring the plugin and have implemented a few new features for my personal usage and I hope to contribute them to the repository.
However, before proceeding further, I wanted to discuss their potential inclusion in the plugin and gather your thoughts on them. If you think these features align with the plugin's direction, I would be more than happy to refine the documentation, provide setting instructions, and submit a separate PR for your review.
1. Add option to create multiple events without schedule icon.
Same as "Which task date should be used?" → "Create an event per start/scheduled/due date" but without the schedule icon.
This is useful if you have a lot of tasks that are scheduled and you don't want to clutter your calendar with them. Start and due icons will still be appended to the summary to help you identify them.
2. Customizable status icons.
Enable users to customize icons for statuses such as "Incomplete", "Done", "Cancelled" and so on. Users can select their preferred icon or even input an empty string to hide the icon entirely.
3. Parse [startTime::], [length::] and [endTime::] properties (Tasks & DataView format of time).
If enabled, the plugin will parse tasks such as "- [ ] Something. [startTime:: 18:00] [length:: 3h30m] ⏳ 2024-03-01", extracting start time, end time, and duration.
4. Save calendar to private server.
Although calendars can currently be uploaded to Gist, in certain regions and under specific conditions, the gist raw refresh rate can be exceptionally slow. For instance, even though new versions are visible in the revision history, the raw content often remains outdated.
I have developed a feature that allows users to upload their calendars to their own private servers. Users can then set up public file access services, such as Nginx, on their private servers to ensure timely updates.
Users are required to deploy the GitHub - TwoStoryRobot/docker-simple-file-upload: Simple, secure file upload API in a docker container on their private server. Subsequently, within the plugin settings, users need to input the server address, port, and KEY.
Plus, utilizing a GitHub private repository (instead of Gist or a private server) might be a more suitable option.
5. Bug Fix: All day event.
The current format for all-day tasks in the generated iCal is
DTSTART:20240301
. I have corrected it to comply with the standard format for all-day events:DTSTART;VALUE=DATE:20240301
.Please let me know your thoughts on these proposed features and how you'd like to proceed. I'm open to feedback and willing to make any adjustments needed to align with the plugin's goals.
Thank you for your work on developing this plugin. I look forward to potentially contributing to its growth.