I am working on my Task Workflow to schedule Tasks from Obsidian on my Google Calendar.
I am currently using the community plugin Checklist by delashum. (I am open to change.)
The ultimate goal is to generate an external link for each task that I can click to create a Google Calendar appointment from an URL.
A great article about the url parameters for a Google Calendar appointment can be found here: Adding Events to a Google Calendar via a Link - Dylan Beattie
I have inline fields setup for each task such as [source:: ] and am using the elink() function to pass the inline field values into an external link as URL parameters as suggested by @mnvwvnm here: Obsidian URL from dataview links. Simplified example below:
`=elink("https://www.google.com/search?q=" + this.file.tasks.source, "Link to " + this.file.tasks.source)`
The problem I am running into is how to return inline field values for one single specific task on a page that contains multiple tasks. For example:
#todo
- [ ] TASK1 [scheduled:: ] [due:: ] [length:: 1h0m] [date_created:: 2023-12-07 17:22:04] [source:: IT-18688-DIR] [affordability:: 0] [delegable:: false] [billable:: false] [importance:: 0] [urgency:: 0] [context:: ] [ondeck:: false] [top6:: false] [my_one_thing:: false] [cancelled:: false] Click here to create calendar appointment: `=elink("https://www.google.com/search?q=" + this.file.tasks.source, "Link to " + this.file.tasks.source)`
- [ ] TASK2 [scheduled:: ] [due:: ] [length:: 1h0m] [date_created:: 2023-12-07 17:22:04] [source:: Different] [affordability:: 0] [delegable:: false] [billable:: false] [importance:: 0] [urgency:: 0] [context:: ] [ondeck:: false] [top6:: false] [my_one_thing:: false] [cancelled:: false] Click here to create calendar appointment: `=elink("https://www.google.com/search?q=" + this.file.tasks.source, "Link to " + this.file.tasks.source)`
The property this.file.tasks.source returns both “IT-18688-DIR” from TASK1 and “Different” from TASK2.
The desired behavior would be for it to only return one value for the “Source::” inline field for each separate task.
Is there a property specific to a task, e.g. this.task? Or is there an alternative way to return inline field values for each task?
If there were a specific property for each task such as this.task, I would assume it would return everything after the checkbox, including the inline fields. To bring everything together, what would be the cleanest way to exclude any text after “[” (the opening bracket of the first inline field) so that I can pass the task (e.g. TASK1) separately along with other inline fields as URL parameters to create the Google Calendar event?
`=elink("https://calendar.google.com/calendar/u/0/r/eventedit?text=" + this.task + "dates=" + this.task.scheduled + "/" this.task.calculatedEnd)`