Giter VIP home page Giter VIP logo

obsidian-time-ruler's Introduction

Time Ruler combines the best parts of a nested tasklist and an event-based calendar view. Drag-and-drop tasks to time-block and reschedule, and view tasks on top of read-only online calendars. Integrates well with the Tasks, FullCalendar, Reminder, and Obsidian Day Planner plugins.

cover

Features

  • Reads and writes tasks in a variety of formats (Dataview inline fields, Tasks plugin emojis, or Full Calendar task-events)
  • Time-blocks with nested tasks
  • Search and filter scheduled, unscheduled, and due tasks
  • Drag 'n drop tasks to reschedule and change duration
  • Show all files and headings, drag to create new tasks
  • Create new tasks at specific times via drag-and-drop
  • Read-only online calendars via sharing links
  • Integrated timer/stopwatch for Pomodoro and time-tracking
  • Play a sound when you check a task!

Documentation

Time Ruler uses the Dataview plugin to read tasks, so please install it before you use this plugin.

Reading tasks

Task metadata can be specified in any of the following formats:

  • Day Planner: YYYY-MM-DD hh:mm - hh:mm task content > yyyy-mm-dd [query:: <query>] ?/!/!!/!!!
    • Beginning date/times: scheduled & duration, >: due date.
    • In Daily Notes, you can omit the date from scheduled and Time Ruler will parse the date from the note title. Only 24-hour format times are understood.
    • You can omit minutes and only put hh - hh for times.
  • Dataview: [scheduled:: yyyy-mm-ddThh:mm] [due:: yyyy-mm-dd] [duration:: #h#m] [priority:: lowest/low/medium/high/highest] [query:: <query>]
  • Tasks: [startTime:: hh:mm] [duration:: #h#m] [query:: <query>] ⏳ yyyy-mm-dd 📅 yyyy-mm-dd ⏬/🔽/🔼/⏫/🔺
    • ⏳: scheduled, 📅: due. See the Tasks docs for a full description.
    • Order matters: inline fields must go before tasks emojis or Tasks won't understand it.
  • Full Calendar: [date:: yyyy-mm-dd] [startTime:: hh:mm] [endTime:: hh:mm] or [allDay:: true] [due:: yyyy-mm-dd] [priority:: lowest/low/medium/high/highest] [query:: <query>]

Queries

As of version 2.0, Time ruler includes queries, tasks whose children are taken from a Dataview search. Some example searches:

  • [query:: "Path/to/folder"] (notice the double-quotes, which are used for Dataview folder sources. Use # to designate a heading afterwards)
  • [query:: "#heading"] (headings begin with #, but are framed in double-quotes).
  • [query:: #tag]
  • [query:: incoming([[link to note]]) WHERE scheduled and !due]
  • Time Ruler supports sources, as well as WHERE queries with task properties. Read the full reference here.

Pages (tasks from full notes)

Time Ruler now reads Full Calendar note events as well as any page with completed: false or completed: null and the following optional Properties:

  • scheduled: date
  • due: date
  • priority: highest/high/medium/low/lowest
  • duration: #h#m (a Dataview duration - see above)
  • start: date

Reminder

You can specify any of the Obsidian Reminder formats as well.

When editing a task via drag-and-drop, tasks are converted back to the formatting detected in the task. If this is not possible, the user's preferred format (Day Planner, Dataview, Tasks, or Full Calendar) is used. This can be changed in Settings.

Note: Double-spaces are used between brackets because without them, Obsidian thinks they are markdown links.

Scheduling tasks

  • To reschedule a task, drag-and-drop the task onto the target block or time. You can drag a task to one of the day buttons or a day's heading to reschedule to that day. Click on a task to jump to it in Obsidian.
  • To create a new scheduled task, drag the + button (top left) onto a time. For unscheduled, simply click the + button.
  • To move a task to a different file or heading, drag it to the blue -> button (top left).
  • To change the duration of a task, drag its duration onto a time.
  • To change the deadline of a task, drag its deadline onto a time.
  • To unschedule a task, drag the task to the Unscheduled button.
  • You can also drag groups, headings, and blocks to reschedule all of the tasks contained in them.
  • Dragging and holding over a date button will scroll to that date, allowing you to drop the task there.

Online calendars

  • To import a calendar, simply copy a shared link (iCal format) into Settings.
  • Events show as blocks which can contain tasks scheduled at the same time. You can drag an event to reschedule the tasks contained, but the event is read-only.
  • To refresh events, click the Refresh button (the circular arrow) in the toolbar.

Buttons

  • Search: Jump to a specific task.
  • Unscheduled: Drag a task here to unschedule it. Click to show unscheduled tasks (shortcut to Search view).
  • Dates: Click to scroll to that date, drag a task on top to schedule it for that date.
  • Quick add: To create a task, drag the + button onto a time. By default, you will create in today's Daily note, but you can pick a specific heading or file.
  • Click the menu ... button (top-left) to view settings.
  • Past / Future: show dates going to past or future. Past shows only completed tasks, while future shows uncompleted.
  • Reload: Reload Obsidian tasks and online calendars.
  • Hide / Show Times: Toggle the display of tic marks on Time Ruler.
  • Hours / Days / Weeks view: Toggle between daily and hourly views. In daily view, hours are hidden.

Timer

timer

  • To start a stopwatch, click the play button without any time entered.
  • To start a timer, enter an amount in minutes and press the play button or "Enter."
  • You can add or subtract 5 minutes while the timer is playing by clicking the + and - buttons.
  • Click the focus button (outwards arrows) to expand the timer and focus on current tasks.

Customization Settings

  • Custom Filter: This is passed to dv.pages(<custom filter>). It only filters out certain pages, and can't filter specific tasks within those. Use Custom Statuses to filter out tasks. See this link for dv.pages() and this link for how to format query sources.
    • Include a folder and its children: "folder"
    • Exclude a folder and its children: -"folder"
    • Include two folders and exclude a third: "folder" or "folder2" and -"folder3"
    • Include tags: #tag or #tag2 and -#tag3
    • Include pages which link to a page: [[page]]
    • Include links from page: outgoing([[page]])
  • Custom Status: Either include only certain custom statuses, or exclude all specified custom statuses (characters between [ ] in tasks).
  • To style Time Ruler, the following classes are added:
    • task-list-item, task-list-item-checkbox, task-due, task-scheduled, data-task, and task-priority coincide with Tasks plugin styling, and additional task-duration and task-reminder classes are added to those parts of tasks, so you can style them with CSS snippets (unfortunately, you will need to add your own custom status styling, due to custom themes being formatted for the Obsidian markdown editor, and not Time Ruler).
    • time-ruler-heading and time-ruler-block classes let you style headings and blocks.
    • time-ruler-container is added to the plugin's container element.

Credit

  • Many thanks to the Dataview, Tasks, and Full Calendar plugins for setting the standards and formatting for managing tasks across the Obsidian vault.
  • The Dataview plugin's MetadataCache made Time Ruler possible, so a huge thanks for the automatic indexing and parsing of task metadata.

Network Usage

Upon calendar refresh, the plugin makes a single GET request to any calendars you are subscribed to, which downloads their events in .ics format.

Changelog

For more information on past and future updates, please consult the roadmap and changelog.

If you appreciate this plugin, I would love your support for further development!

Buy Me A Coffee

obsidian-time-ruler's People

Contributors

j-palindrome avatar liamswayne avatar

Stargazers

YayoAstur avatar Adrian Helgå Vestøl avatar shemraz avatar  avatar  avatar  avatar Clément Fournier avatar Eden Chan avatar Yusron Hanan avatar Shayan Salehe avatar Tahsin Amio avatar  avatar Andrew O. avatar Dhanush R avatar Ally avatar Claudia Scholz avatar color avatar  avatar Halu avatar Ihar Hrachyshka avatar G Karthik Raja avatar  avatar  avatar Wayne Smith avatar  avatar Logos Venery avatar Brian Grohe avatar Ryan D. Lewis avatar Rehan avatar Oleg Evdokimov avatar Edgars Burtnieks avatar Daniel Gombert avatar  avatar Dennis Keller avatar Davide R. Wiest avatar 是明导么 avatar Dan Ryan avatar Leonardo avatar Edwin Kofler avatar Mathieu Céraline avatar  avatar  avatar  avatar  avatar Rey F. Diaz avatar John Collins avatar Suzana K. avatar  avatar golden12123 avatar Rod avatar George Hahn avatar C.A. Boeren avatar Tobi Obeck avatar  avatar ottsch avatar  avatar Aubrey Bachant avatar  avatar Pavel Zadorski avatar woqly avatar Jannik Waschkau avatar Scott Walter avatar Scott Dillman avatar  avatar Neowuf avatar Ben Lee-Cohen avatar Andrew Mason avatar ToNy RANDRIAMANANTSOA avatar Asher Edwards avatar Alexis avatar Martyn avatar Pablo Molina avatar Hugo COLLIN avatar  avatar Sarah Alli avatar  avatar Matt Brooks avatar Sonnenun avatar Acha avatar Sergey Anuchin avatar Otto avatar  avatar  avatar dan avatar Annika avatar Dillon Cutaiar avatar Bertrand Borel avatar Aleksandar Vucenovic avatar sv-cheats-1 avatar Wenbo Peng avatar Deandra avatar Stefan Haack avatar Jeremy Cheng avatar Masaki ISHIYAMA avatar Hossein Maleknejad avatar DataWizz avatar Pranav Anand avatar Eplus avatar  avatar Wael Nasreddine avatar

Watchers

Otto avatar Dennis Keller avatar  avatar  avatar

obsidian-time-ruler's Issues

option to show items with only a due date and no times only on the date the item is due

Is your feature request related to a problem? Please describe.

I have items with just a due date in tasks. I don't want them to appear in "all day", other than the day they were due.

Describe the solution you'd like
An option is settings to, "Show due date only tasks only on due date" and then show those items in all day only on the due date.

Describe alternatives you've considered

Going through vault and manually editing lots of tasks.

Additional context

A lot of folks only use a due date for scheduling. if you were a todo.txt fan it only had due date.

This plugin's suggestion for Tasks format of times will break user's Start and Due dates in Tasks

Hi, this plugin looks amazing and I am really looking forward to trying it out, when I have a break in working on Tasks. I took over as its maintainer and author a year ago.

Please can you change this in your docs:

Tasks: ⏳ yyyy-mm-dd [startTime:: hh-mm] 📅 yyyy-mm-dd [length:: #h#m] ⏬/🔽/🔼/⏫/

To this (without any accidental double spaces)

Tasks: [startTime:: hh-mm][length:: #h#m] ⏳ yyyy-mm-dd 📅 yyyy-mm-dd ⏬/🔽/🔼/⏫/

The reason is this current limitation in Tasks parsing:

https://publish.obsidian.md/tasks/Getting+Started/Auto-Suggest#What%20do%20I%20need%20to%20know%20about%20the%20order%20of%20items%20in%20a%20task?

WARNING
Mixing any descriptive text in amongst the emojis and their values will cause emojis before the descriptive text to not be recognised by Tasks, and not be searchable.

We will make Tasks more forgiving at some point, but it's a non-trivial task, and not currently at the top of the priority list, hence this request.

Thanks and best wishes for this valuable plugin!

click task when note open/pinned causes extra open tab for note

Describe the bug
If I click a task and the note the task is located in is already open in a pinned tab the note is opened again in a new tab.

To Reproduce
Pin a note with a task that is displayed in the time ruler. click the task in time ruler. new tab will open for that page

Expected behavior
Switches to existing open note that task in in

  • Mobile
  • [ x] Desktop 1.4.5

Tags stripped from task description if task is moved

I love the concept of this plugin and tried it out in my vault only to run into a problem when it came to moving tasks. When I drag and drop a task it strips the task of any tags I had in the description. This causes a break in my workflow I can't work around without readding the tags I had. Which means making note of any tags before moving the task so I don't miss anything, then retyping them in the task after it is moved.

Thanks for the work you've already put into this.

[Bug] New Task prepends before frontmatter

Scenario 1:

  1. Go to a time on the calendar to create a task and click the + icon.
  2. Click a note's pink heading.
  3. If the note has any frontmatter, the task will prepend to it, breaking it.

image

Scenario 2:

  1. Go to a time on the calendar and click the + icon.
  2. Under a note's pink heading, choose a smaller grey heading.
  3. Task will successfully append after the heading associated with the tasks inside of it.

image

Scenario 3:

  1. Go to a time on the calendar and click the + icon.
  2. Find a note that has two smaller grey headings under the pink heading. Choose the second grey heading.
  3. Instead of inserting under the second associated heading, the task will instead prepend before the frontmatter.

image

###Expected behavior:
In Scenario 1, I would expect:

  1. A setting in the plugin asking under what heading I'd like the task to be pasted, or top/bottom of file (Similar to QuickAdd)
  2. A dialogue box asking me under which line I would like it pasted (similar to Metadata Menu)
  3. Bottom of the file as to avoid frontmatter

In Scenario 3, I would expect behavior similar to Scenario 2.

[FR] Re-validate/reset remote calendars command

Is your feature request related to a problem? Please describe.
I often re-open obsidian or remove and re-add my ical link to get new events to appear in Time Ruler.

Describe the solution you'd like
Similar to Full Calendar, a command that re-validates and/or resets remote calendars.

Add support for CalDAV calendars

Is your feature request related to a problem? Please describe.
Most of the calendars I work with are CalDAV based and require a username and password to authenticate, which is not yet supported by this very promising add-on.

Describe the solution you'd like
Would it be possible to support CalDAV based calendars as well? E.g. Full Calendar does support them, but it would be nice to have this directly in Time Ruler as well.

Describe alternatives you've considered
Use the CalDAV support from Full Calendar, but these events do not appear to show up in Time Ruler if they originate from a CalDAV calendar in Full Calendar.

Additional context
Hope this is feasible to add.

Broken time ruler view

Describe the bug
Unlike the views shown on GitHub README with the date timeline displayed horizontally, my view displays the date vertically, buttons do not align, and there is no time ruler.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new Obsidian vault
  2. Install Dataview and Time Ruler plugins

Expected behavior
The views shown on GitHub README with the date timeline displayed horizontally and the time ruler shown vertically.

Screenshots

How the view should look
Screenshot 2023-08-06 at 9 12 58 AM

How my view looks
Screenshot 2023-08-06 at 9 14 12 AM

Obsidian Version:

  • Mac Desktop

Additional context
This is tested on a new obsidian vault, no theme, no other plugins other than Dataview and Time Ruler.

Time ruler Crashes Obsidian

Describe the bug
After performing several tasks in Time ruler (like dragging tasks or crossing them off), Obsidian crashes.

Screenshots
image

Obsidian Version:

  • [V1.4.4 ] Desktop

can't figure out how to filter

Describe the bug
I've looked at the dataview stuff and can't figure out what you want in the filter part of the settings. An example of what to put to include a folder and its children, exclude a folder and its children and include 2 folders and exclude a third would be helpful

Custom Filter Erroring, Documentation, etc

Bug: Upon hitting the reset button after applying a custom filter that is invalid, tasks remain on Time Ruler even after hitting the refresh button. The tasks no longer update to reflect the status of tasks in the notes. Even if a correct query is inserted, it will not update unless the task list was already empty.
There is otherwise no indication that the custom filter query has failed.
Once Obsidian is restarted with the invalid query, it does not show any tasks.

In regards to this issue: #3
You mention dv.pages() which is a dataviewJS command, but the custom field says "Enable a custom Dataview filter to search tasks" and does not mention if it's regular task queries or if it's js task queries.
EDIT: I also didn't notice until much later that you mentioned it only filters out at document level.

Example, "include only tasks with #temp tag"

Is it looking for JS?

Here's a working dataviewjs query that returns 2 results as follows:

dv.taskList(dv.pages().file.tasks
.where(t => t.text.includes("#temp")))

This is the output I get on the page:
image

Here's the variations I've tried within Time Ruler:

.where(t => t.text.includes("#temp")))```
```dv.pages().file.tasks .where(t => t.text.includes("#temp")```
```.file.tasks .where(t => t.text.includes("#temp")``` 
```.where(t => t.text.includes("#temp")``` 
```t => t.text.includes("#temp")``` 
```t.text.includes("#temp")```


```#temp``` - successfully got the desired results, except it's matching it to the page tags and not the task tags. 


It feels very vague at the moment as to what kind of input it's expecting. 

Tasks on the page, where one is incomplete and does not have the #temp tag:
![image](https://github.com/joshuatazrein/obsidian-time-ruler/assets/13829537/400c3149-105d-426a-bce8-502bc71b5e65)

Tasks on Time Ruler, showing the incomplete task that does not have the #temp tag:
![image](https://github.com/joshuatazrein/obsidian-time-ruler/assets/13829537/7edd7924-732b-491c-890c-2efbebbf3a59)

### Is it looking for dataview query language? 

```dataview
TASK
WHERE contains(tags, "#temp")

Variations I tried:
TASK WHERE contains(tags, "#temp")
WHERE contains(tags, "#temp")
contains(tags, "#temp")
tags, "#temp"

...What in the world is it looking for?

EDIT: My current understanding is that it's looking for dataviewJS arguments that can be placed within the brackets of dv.pages() only.

Thanks again for putting up with my massive bug reports. Let me know if any more information would be helpful.

some suggestions

  • recurring task option
  • priority sort/ changing colors
  • overdues sort
  • showing whole day in timeline view, not just only hours ahead
  • ability to drag tasks from notes or data view on timeline if its possible
  • tag sort
  • an easy way to remove tasks from timeline view ( in face of remove time from tasks)
  • draggable start and end point for tasks timeline view ( currently is not working well for me on pc)
  • if we have two task source (tasks in different note) in one block in timeline like below, dragging one of them make system weirdly choose another to move.

image

having the time ruler open slows down Onsidian significantly

Describe the bug

If I have time ruler open, Obsidian slows down significantly.

To Reproduce

  • Open a note
  • Close the note
  • Open time ruler
  • Open the same note from above

Expected behavior

When I open the note without time ruler open the note opens in a second. After opening time ruler it can take 5-10 seconds to open. The note being opened has no tasks. I do not change the tasks between the times I open the note. I've tried waiting 10-15 seconds after opening time ruler in case there is some async activity. It makes no difference

I see other sluggishness as well in Obsidian when the ruler is open.

Obsidian Version:

  • Mobile
  • [x ] Desktop 1.4.6

Additional context

Just closed and reopened obsidian. The delay is very small now. Guess not clear if it is Obsidian or time ruler.

Plugin breaks obsidian when used

Describe the bug
A clear and concise description of what the bug is.

The plugin breaks when trying to use it in Obsidian.

To Reproduce
Steps to reproduce the behavior:
Just click on the shortcut to use it.

Screenshots
image

Obsidian Version:

  • Desktop

TR 1.3.1 / Obsidian 1.4.5 - Day Planner format issue? Can not drag to schedule task if numbers before task name

Describe the bug
Any numbers put before a task name are being parsed weirdly.

Here are a few different test tasks I have created.
image

Here's how these four tasks show on Time Ruler.
image

On the "wake up" task, there is a 3 before wake up, which is ignored on the daily task view. If I drag "Wake Up" from the daily task area to a time (in this case, 10AM) in order to schedule it, the task line changes-
"3 wake up" becomes "2023-09-04 10:00 wake up". It does not show up on the timeline.
(I will note that I am working on my 2023-09-04 daily note, so the date specification should not even be necessary afaik)

On the "12:00 Head to rite aid" task, the 12:00 section of the task is ignored and not shown in the daily view. Dragging it to 12:00 yields similar results to the previous example -- the text is changed to "2023-09-04 12:00 Head to rite aid" It does not show up on the timeline.

In the third example, only the date is specified, which is again ignored by time ruler. Dragging it to the timeline again adds a time to the task, (becoming "- [ ] 2023-09-04 13:00 Head to Walmart"), but again it does not show on time ruler.

In the fourth example, I did not put any numbers in the task and only put "Head Home" and used Time Ruler to schedule it at 2PM. If I drag the task from 2PM to 10AM, it correctly reschedules the task and updated the task line.

However, if I then change the task line to "- [ ] 2023-09-04 Head home [startTime:: 10:00] ⏳ 2023-09-04", then drag the task to a 12:00, it will replace the information in the line to say "2023-09-04 12:00 Head home" and it will no longer display on the timeline.

Additionally this last "wake up" event was created via Day Planner. it does not show up on the Time Ruler timeline either, although it shows up in Day Planner just fine.
image
image

Time Block documentation and visual distinction

At this point I am leaving this as a contribution request instead of a bug report because I think I'm misunderstanding what a time block is and how its supposed to be created.

I have observed that if I've set the startTime of more than one event to the same time frame that they will end up in the same general list together under the day view like so.
I can see that the original name of the daily notes are showing and that the tasks are listed underneath. I am assuming that everything within this lighter grey area is a timeblock. Is this correct?

image

Visually, I am confused as to whether this is a time block because up above in the unscheduled task area there are groups of tasks from within the same daily note displayed together in this same format. However, I know that in this area they are not yet timeblocks, because I can not move other unscheduled tasks in or out of them. It may be less confusing if the bar with a vertical line was not present in the unscheduled tasks area so that the tasks were instead grouped underneath the daily note itself.

Another point of visual confusion is that there is lighter grey text underneath my note title that specifies the note title again. Upon analyzing a few notes, it appears that it may be trying to pick out headings that the tasks are grouped under but pulling the note title instead.

Here is an example of my desired usecase for Time Ruler. I am coming from a method of using Full Calendar in order to create time blocks. My method involves creating the time block on my calendar first, then putting tasks in side of them.

image

Although they do not have unique titles in this example, I often will give them unique titles based on what is inside of each time block which helps me to 'zoom out' and see my day as a big picture.

In Time Ruler, since I am unable to specify a name for the time block, it's very difficult for me to see the relevant information from afar as to what needs to be done within that time period. This is especially because the note title that the task is from and the grey heading are visually distracting from the task title. I would find it helpful if these could be toggled on or off.

One suggestion I have is to allow time block creation as either their own note within a directory (e.g. timeblock) or as a section of the daily note. Then, a property could assign them to that particular timeblock and inherit the starttime and date from it. (e.g. if a TimeBlock "Declutter" is assigned on the 28th from 1PM to 3PM, and [timeBlock:: Declutter] is on a task, then Time Ruler will treat the scheduled time of the time block as its start time instead. This also helps prevent it from looking like everything during the time block is all due at the same time.)

Similarly, if the timeblock is not yet scheduled, maybe they could show together under a the timeblock they belong in under the unscheduled task area? This way, all that needs to be done in order to schedule all of these grouped tasks is to drag the already created timeblock down into the schedule.

These are merely suggestions from my own perspective, so please do not think I'm expecting you to implement any or even all of this. I just wanted to bring what felt natural for my workflow on to the table.

Parsing tasks without an emoji fails when date format is set to tasks emoji format

Describe the bug
Parsing tasks without an emoji fails when date format is set to tasks emoji format. This results in time ruler not showing anything, since it threw an exception.

To Reproduce
Have a task with some text without an emoji or due, then start time ruler. Note, I am not completely sure this is what is causing the issue, but from the debugger, it looks like it fails to parse the date correctly.

  • 18:00 setup a task example

Expected behavior
That time ruler would display things and not break and stop

Screenshots
image

image

Obsidian Version:

  • Mobile
  • Desktop

Additional context

make clicking on item open note and position on line

Is your feature request related to a problem? Please describe.

The the time ruler, when I click on a task at the top, which are unscheduled it will open the note containing the task but it won't position the cursor to the line with the task.

Describe the solution you'd like

The dataview task metadata includes the line number for the file. use that to open the note at the line where the task is present.

Full Calendar Full Note format not being recognized

Describe the bug
When a task is created via Full Calendar as a Full Note, the task is not recognized by Time Ruler.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Full Calendar settings
  2. Add a Full Note calendar
  3. Open Full Calendar
  4. Create an event using the Full Note calendar
  5. Task will not be reflected in Time Ruler

Expected behavior
When using a Daily Note calendar, the event syncs as a task during the correct time and duration as expected.

Obsidian Version:

  • Mobile
  • Desktop

My observation is that the plugin may not be looking at metadata information for full notes and may only be expecting inline task information.

tag a new release after updates are made

I use BRAT to add and update plugins that are not on the official repository. If you tag a new release after updating the code, then it will allow me to automatically update.

Thanks!

[FR] Reminder freature or Obsidian-Reminder integration

Is your feature request related to a problem? Please describe.
Obsidian-Reminder is compatible with Time Ruler, but I find that there could be further seamless integration.
Describe the solution you'd like
Obsidian Reminders uses the task format ⏱️Time in order to set reminders. Currently, if reminders are set on a task on Time Ruler, the reminder time shows as well:
image

Another format the plugin uses is (@time).

I feel that you could create your own reminder system within Time Ruler quite well, but I think that's a lot to ask of someone!!

Ideas:

  • Stopwatch icon that shows up on scheduled task hover, upon clicking adds a reminder time to the task based on its startTime that can be further configured

This is totally me throwing something at the wall and seeing if it sticks. If you don't like the idea then don't worry :P

Support emoji & custom checkbox

Describe the bug

I use emoji and custom checkbox frequently for todos, it seemed that they won't appear correctly.

To Reproduce

As you can see in this:

image

Expected behavior
Support emoji & custom checkbox

Screenshots
If applicable, add screenshots to help explain your problem.

Obsidian Version:
Desktop 1.3.7 with time-ruler 1.0.5 (newest)

Additional context
Add any other context about the problem here.

see here #25

make split between all day and time ruler moveable

Is your feature request related to a problem? Please describe.
Seems that the split of space between the ruler and the all day items is fixed. I want to set the split to be relevant to what I am doing and feel I need. Varies depending on day, # of all day items, etc.

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

See above

** A clear and concise description of what you want to happen.

Be able to drag the divider up/down to change the sizes of the all day and ruler displays.

Describe alternatives you've considered

seeing if I can do this with css. think i might be able but haven't figured out yet.

Additional context
Add any other context or screenshots about the feature request here.

[FR] Delete time block to unassign all tasks within it

Is your feature request related to a problem? Please describe.
When I create a time block, but something else comes up during my day, it takes many steps to remove multiple start dates from multiple different notes. It would be nice to unassign a start time from the time ruler itself.

Describe the solution you'd like
Right click context menu on a timeblock to unassign the entire time block (essentially deleting it), resetting the start time of every task within that timeblock. Additionally, a right click context menu on an individual task to unassign it would be helpful.

Describe alternatives you've considered
Maybe time blocks or tasks could be dragged 'off' of the timeline or up into the unassigned tasks area.

Move flexible Page selection

Is your feature request related to a problem? Please describe.
dv.pages('<custom_filter') is quite limited. I have other fields called status that indicate whether a page should be ignored or not.

Describe the solution you'd like
If we could pass a dataview page object that would be preferable.

Example;

// Instead of this:
dv.pages('<custom_filter>') 

// This 
dv.pages('<partial_custom_filter>').where(p=>p.status.contains('InProgress') | p.status.contains('To Do'))

In other words, it would be better if we could just pass the whole dv.pages()... object as a parameter. Alternatively, if we could pass a dataview query string.

Calendar view?

Congratulations on this impressive plugin. It's amazing that you can integrate Dataview, Tasks and ical.

There's a big gap in Obsidian currently with calendars. Full Calendar has not worked properly with time zones for a long time now. It would be great to get drag and drop working with Tasks in a Calendar view.

Personally, I prefer to work with calendar days rather than day hours. TickTick has a good calendar for seeing events and tasks together. It would be great to have this in Obsidian.

Also, I can't seem to get Tasks to include time and duration.

I hope this plugin can be developed to cover some the basic needs in Obsidian.

allow simple HH:MM-HH:MM at start of description for times

Is your feature request related to a problem? Please describe.
using the syntax specified for tasks involved a bunch of extra type. can he have something simpler?

Describe the solution you'd like
If the first thing in a task description is of the form - HH:MM-HH:MM use the two times as start/end.

Describe alternatives you've considered
Using the options you've described

Support show/hide completed & other custom-status in calendar/list view

Is your feature request related to a problem? Please describe.
See here #26

Describe the solution you'd like

This plugin is simply too convenient. It can display all tasks without - [x] state listing just on one page or in a perfect calendar view. However, I frequently use custom checkbox formats and hope to review the completed and things in customized status in this plugin. Therefore, I really hope to have other review functions besides unscheduled, to review completed and customized status content, and hope they will listing just on one page or in a perfect calendar view as well.

Describe alternatives you've considered
No alternatives except searching (dataview seemed to be slow with no calendar view and I didn't learn about how to use it)

Additional context
Add any other context or screenshots about the feature request here.

Tasks recurrence rule moved to description when dragging a task

Describe the bug

  • When dragging a task from one time to another when using Tasks format, any recurrence rule becomes part of the description and no longer works in Tasks.

To Reproduce
Steps to reproduce the behavior:

  1. Set format to Tasks
  2. Create task with recurrence
  3. Go to Hourly View
  4. Drag task to new time slot
  5. Open task in Tasks modal. The recurrence rule has become part of the description and are no longer set in Tasks

Expected behavior
The recurrence rule would be left in place
Screenshots
Original Task
TaskBeforeDragNDrop

Task After Drag and Drop
TaskAfterDragNDrop

Obsidian Version:

  • Mobile
  • Desktop

Additional context
Add any other context about the problem here.

Can't see and use the "Buttons" on GUI

Describe the bug
Can't see the "Buttons" on GUI
Impossible to Refresh, Search, Move from/ to Daily view

To Reproduce

  • Clicking on "..." does not show any list of buttons -- neither left, middile or right clicks
  • Buttons never appearing

Screenshots
image

Obsidian Version:

  • 1.4.3 Desktop

Additional context
N/A

[1.0.2] Headings + Their Tasks sometimes display under wrong note in Search/Create Task Modal

For some reason, headings from one note may appear under another note.

In the following example, you can see that I have a header called Timeblocks and a header called Tasks underneath my 2023-07-23 note.
However, in Time Ruler's task search, neither heading shows up and the task does not appear under search.

image

So where did that task and timeblock information go? Well... for some reason it's under my 7/26 daily note.
image
If I cilck the "timeblocks" heading, it takes me to my 7-28 daily note.

My best guess as to why it would be appearing under 7/26 is because that daily note has a heading called "Time Blocks" with no tasks under it. But that seems bizarre because "timeblocks" != "Time Blocks"... Meanwhile, clicking on Tasks brings me to the correct tasks on 6/26 and the correct tasks are displaying.

I decided to take this a step further by going to my 7/28 note and adding a task called "test task" under the task heading to see if it shows up. Instead of showing up under 7/28, it showed up underneath a second "Tasks" heading under July 26. Strange...

image

In the unassigned tasks section, the tasks display correctly.

image

Headers in a note appear to be unrecognized by Time Ruler search unless a task is already underneath it, which I am guessing is expected behavior. I think maybe something like "always put tasks under Tasks heading or create one if it does not exist" would be helpful in this situation?

clarify need for scheduled date for tasks users

Describe the bug
Thanks for updating the README. It is much better. For a task user though, it might not be obvious that you MUST have a scheduled date for an item to appear on the ruler. In addition, having just a scheduled date without a due date will mean recurrences don't happen on completion.

To Reproduce

We've discussed on a previous issue

Expected behavior

I suggest you add a few sentences about this behavior. tasks is one of the top 10 plugins. Perhaps the following can be added.

Tasks plugin users:

  • The scheduled date of a task is the date on which the task will appear on the time ruler, assuming it has a startTime.
  • If your task has just a due date and not a scheduled date the task will only appear in the "all day" events section and will not appear on the time ruler, even on the due date. Further, a task with a due date will appear in the "all day" section from the time it is created until it is completed.
  • If your task is defined to have a recurrence and has a scheduled date and no due date, the Tasks plugin will not create a new task when the task is completed. This is documented in the Tasks documentation.

Support Custom Statuses

I love the idea of this plugin I would consider implementing it in my vault, which could help me replace a few external tools, however without support for custom statuses I am left with multiple unscheduled "tasks" that aren't actually tasks.

I realise the plugin is earlier stages but wanted to highlight this and maybe open discussion on how to implement. Personally, adding a list of statuses to ignore in settings could work and/or ability to filter them live in the plugin.

Easier way to discern overlapping tasks

Is your feature request related to a problem? Please describe.

See the following
image
The current format makes it difficult to tell that Take out the trash overlaps with Take out the garbog

Describe the solution you'd like
Some easier way to see overlapping events. Maybe Differenciating colours or an indent to see what overlaps what

Describe alternatives you've considered
Using full calendar events over tasks, but thats less flexible in terms of where I can store the tasks

Additional context
None

Compatibility of task rescheduling with blockid

Context of use
I am setting blockid to tasks to be able to create links to the the given tasks.
I use it to pull linked to tasks within a Kanban, and be able to move tasks (links to tasks indeed) between columns

Please refer to https://help.obsidian.md/Linking+notes+and+files/Internal+links#Link+to+a+block+in+a+note.
Reference to blocks are automatically created with a alphanumerical index prefixed by caret (^)

Describe the bug
When a scheduled task is moved from one timing to another, the ending block id (^followed by a reference given by Obsidian) is moved backward in the sequence of data in the task line. This breaks the links to the block, as the reference shall be ending the block, which is not the case in the current implementation of TimeRuler I guess.

To Reproduce
Steps to reproduce the behavior:

  1. Create a reference to a task (to the one-line block consisting in the task)
  2. Set a Scheduled Date and Starting Time for the task
  3. Launch command: Copy Block Link: Copy embed to current block or heading -- this creates the reference (caret followed by Obsidian given alphanumerical code)
  4. Paste the link to the task (one-line block indeed) wherever you want
  5. Reschedule the task in Time Ruler to another timing and/ or day
  6. Come back to the pasted task embedded link
  7. See it broken

Nota:

  • in the task full line, you can see the reference (caret followed by alphanum code) is no more latest on line.
  • if you move the "caret followed by alphanum code" to the end of the task/ one line block -- ensuring there is no black space after the block reference -- the pasted link is restored
  • It is cumbersome to have to clean up the task line at each rescheduling

Expected behavior
Keep block reference unchanged in tasks(events likely though not tested), by letting it at end of task/ event, without ending spaces

Obsidian Version:

  • 1.4.6 Windows Desktop

Additional context
Add any other context about the problem here.

[FR] Timer sounds

It would be helpful to have a sound that goes off when the timer has elapsed or when a reminder goes off, and to maybe even have these sounds be customized.
I'm currently using SnapTimer outside of Obsidian, which also has a ticking option while the timer is running that I quite enjoy.
Additionally, having an option to change the 'task complete' noise to something customizable could be a nice feature.
None of these are things I see as very important at all.

Question/Bug? Are custom status emoji intended to show on timeline?

Tasks 4.5.0
Time Ruler 1.1.0
Style Settings
Minimal theme
Using ITS theme's S Checkboxes CSS

Here's an example of some of the tasks on Time Ruler's timeline vs in my notes:

image

image

The tasks do represent the correct status symbol, but the icons/emojis do not show. I do not know if this is intended or not.

problem with length and item not appearing in time line

Describe the bug
I have selected to use task format. I have a task:

  • [startTime:: 19-00] [length:: 1h] a start time 📅 2023-09-01

this is shown in the timeline view as unscheduled (tasks at the top, and isn't shown in the time ruler. But you can see it has a 1h next to the task

image

Note that entering [length:: 1 hour] gives the same behavior.

This is entered as the example for using tasks. I think the README is ambiguous especially about the length. what the heckis #h#m? dataview docs uses "1 hour" or "1 hour 5 minutes"

Other information: I have an ics calendar also included. The item from there shows up in the ruler. I can't seem to get any items I create to appear on the ruler. I am likely doing something wrong, but am using the example you provided for the start and length and the tasks due date.

To Reproduce

create the task above

Expected behavior

Item would show up in the time ruler.

Obsidian Version:

  • Mobile
  • [x ] Desktop 1.4.5

Unable to update to v 1.0.5

Describe the bug
Unable to update to v 1.0.5, installed version is 1.0.4, same behaviors in two vaults, both on Windows and Linux

To Reproduce
Steps to reproduce the behavior:

  1. Install the plugin
  2. Go to update
  3. Dialog comes up that it is installing
  4. Seems to finish but installed version is still 1.0.4, pressing check for update prompts that an update is available

Expected behavior
Should update to 1.0.5 automatically

Obsidian Version:

  • Mobile
  • Desktop

Completed tasks marked w/ custom status still appear in Task list

Custom Statuses are supported in the Tasks plugin as of Tasks 1.23.0 but it looks like they aren't yet supported by Obsidian Time Ruler.

Here are the steps to reproduce to see this issue:

  1. Create a new task
  2. Mark as forwarded using the ">" character or dropped/cancelled using the "-" character
  3. Note the task still appears in the Obsidian Time Ruler side bar

Ideally, I'd expect any tasks marked with the cancelled and forwarded status markers to be excluded from the list of tasks. It is likely appropriate to keep tasks with other custom statuses, e.g. Important ("!"), Half done ("/"), in the list of tasks on the sidebar.

I have only tested this on Desktop although I'm assuming it would also be an issue on mobile.

Day Planner format shows invalid time on timeline if hour is not two digits

In Time Ruler, any hours in the single digits (e.g. 1:00 - 9:00) show as "invalid date" unless they are made to be two digits (e.g. 01:00 - 09:00). This invalid date appeared after 12:00 on the timeline but the behavior was inconsistent. At one point it appeared after 7PM on the timeline instead. These show correctly in Day Planner at 1AM.

image

This is how it appears on day planner:
image

Timeline view / Gantt chart

Is your feature request related to a problem? Please describe.

  • A date-based task overview that allows me to see all of my tasks for a specific period of time (weeks to months).
  • A task overview that can handle tasks that span multiple days. This means that I can see all the tasks that I need to complete for a particular project, even if the project takes more than one day to complete.

Describe the solution you'd like
I want to see my tasks in a timeline view, and preferably in the main pane, not in the sidebar.

Describe alternatives you've considered
normal calendar view.

Calendar hourly scales along default locals (e.g. 13:00 to 23:00) + start-end of day

Is your feature request related to a problem? Please describe.

  • Hourly references are not intuitive, esp. for folks used to write e.g. 13:00 in afternoon
  • Seemingly, others may wish to see e.g. 1pm
  • Last I feel strange to have calendar starting at midnight -- it would be nice to be able to select in settings start and end default time for each day
  • Of course display meant to be modified if a scheduled task/ event is before or after default timings

Describe the solution you'd like

  • See above

Describe alternatives you've considered

  • Priority-wise, follow locals

Additional context
N/A

support using due date not just scheduled date

Is your feature request related to a problem? Please describe.
In tasks, a recurring task must have a due date. If the task is to be done and is also due on a specific date, I need to enter the date twice. A

Describe the solution you'd like
If there is a due date and no scheduled date use the due date to place on the time ruler. If both exists use the scheduled date.

Describe alternatives you've considered
I'd thought I could use just scheduled, but that breaks the recurring tasks.

Additional context

A more advanced implementation would be to have an item on the calendar every day from scheduled to due date at the specified time. You might color them differently with css.

Add repeats to tasks

Currently the plugin doesn't support adding repeats; this will be added soon.

Drag and drop tasks using the day view doesn't work

Is your feature request related to a problem? Please describe.
As someone who does not need to assign tasks to a specific time during the day I want to use the day view.

When trying to drag a task to a different day nothing happens.

Describe the solution you'd like
Dragging tasks should work the same if its dropped on a day as it is when dropped to the per hour timeline

Scheduling task strips custom status

When a custom status is used for a to do task (e.g. anything but - [ ]), the task status is stripped from the task.

Here's two example custom statuses that I am currently utilizing. The frog is [F] and the stopwatch icon one is [T].

dragging

This behavior is also the same is being pulled from the Unscheduled pane.

Easily fixed by re-adding the custom status into the checkbox, but figured it would be worth pointing out.

EDIT: Also please let me know if i am in any way being overbearing or too nitpicky in the method/frequency of opening issues and/or requests.

recurring items in ics calendar (not about recurring obsidian tasks)

Describe the bug
The recurring items in my ics calendar are not being displayed in the time ruler. Is this known and planned for future?

To Reproduce
Steps to reproduce the behavior:

  1. have a calendar with recurring items. Try something that is daily first
  2. get the ics link
  3. add to the settings

Expected behavior
I expect to see a recurring ics item appear on each day it would appear in the native system's calendar.

Obsidian Version:

  • Mobile
  • [ x] Desktop 1.4.8

Additional context

If this isn't implemented yet you can look at the ICS plugin. It is able to get events inclduing recurring.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.