{"id":17026064,"url":"https://github.com/Tiim/obsidian-attendance","last_synced_at":"2026-04-13T01:30:19.324Z","repository":{"id":40784802,"uuid":"486751402","full_name":"Tiim/obsidian-attendance","owner":"Tiim","description":"Attendance tracking using obsidian.md","archived":false,"fork":false,"pushed_at":"2022-06-27T20:55:45.000Z","size":956,"stargazers_count":9,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-15T10:53:58.012Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tiim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-28T21:19:41.000Z","updated_at":"2023-02-16T10:32:33.000Z","dependencies_parsed_at":"2022-09-09T19:01:55.482Z","dependency_job_id":null,"html_url":"https://github.com/Tiim/obsidian-attendance","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiim%2Fobsidian-attendance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiim%2Fobsidian-attendance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiim%2Fobsidian-attendance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tiim%2Fobsidian-attendance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tiim","download_url":"https://codeload.github.com/Tiim/obsidian-attendance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219847890,"owners_count":16556345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T07:30:24.417Z","updated_at":"2026-04-13T01:30:19.267Z","avatar_url":"https://github.com/Tiim.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/Tiim"],"categories":["TypeScript"],"sub_categories":[],"readme":"# Obsidian Attendance\n\nThis plugin for [Obsidian.md](https://obsidian.md/) helps you to keep attendance inside of your notes.\n\nIf you like this plugin, consider buying me a coffee.\n\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/Tiim)\n\n**⚠ This plugin is still in early stages of development, expect some bugs and make sure to backup your vault regularly!**\n\n## How to use this plugin\n\nCreate a code block with the `attendance` type:\n\n````markdown\n```attendance\ndate: 2022-03-26\ntitle: History Class\nquery: #person\n```\n````\n\nThe `date`, `title` and `query` fields are all required.\n\n![Attendance List](misc/images/screenshot-1.png)\n\n\u003e ⚠ If you create multiple attendance lists in the same note, make absolutely sure they have either different \"date\" ore \"title\" attributes. Otherwise when you want to update the second attendance list, the plugin will overwrite the first list.\n\n### The date field\n*currently unused*\n\nThe date field lets you specify the date of the event you want to take attendance for. This field is currently unused, but will be used in the future for exporting attendance lists.\n\n### The title field\n*currently unused*\n\nThe title field lets you specify the title of the event. This field is currently unused but will be used in the future to allow exporting only certain events. This could for example be set to a specific class name if you are taking attendance for a class.\n\n### The query field\n\nThe query field lets you specify what notes are considered possible attendees of the event. The list will include all notes that match the query field. \n\nThe following query fields are currently supported:\n\n#### Tags\n\nExample:\n```\nquery: #person/class-a\n```\n\nThis query will match all notes with the `#person/class-a` tag.\n\n#### Folders\n\nExample:\n```\nquery: \"people\"\n```\n\nThis query will match all notes in the `people` folder.\n\n#### Links\n\nExample:\n```\nquery: [[PersonMOC]]\n```\n\nThis query will match all notes that are linked from the `[[PersonMOC]]` note or that link to it.\n\n#### Combining queries (and, or)\n\nExample:\n```\nquery: #class-a and [[Students]]\n```\nThis will only match notes that have the tag `#class-a` and either link to the `[[Students]]` note or are linked from it.\n\n##### Parentheses\n\nWhen combining more than two queries it is recommended to use parentheses to keep the query readable. If none are explicitly set, the plugin will automatically put the parentheses as follows:\n\n```\nquery: (#tag-a and (#tag-b and (#tag-c or #tag-d)))\n```\n\n\n### Saving the attendance state\n\nWhen you click on one of the three buttons (\"present\", \"absent\", \"excused\"), the codeblock behind the list will be modified to save the attendance state that you selected. The following shows an example of a codeblock with one present and one excused attendee:\n\n````markdown\n```attendance\ndate: 2022-03-26\ntitle: History Class\nquery: #person\n* [[Ray M. Smart.md]], \"present\", \"\"\n* [[Winona Philpott.md]], \"excused\", \"\"\n```\n````\n![Attendance List with one attendee present and one excused](misc/images/screenshot-2.png)\n\n### Manually installing the plugin\n\n* Download the `main.js`, `styles.css` and `manifest.json` files from the [latest release](https://github.com/Tiim/obsidian-attendance/releases/latest).\n* Create the folder `MyVault/.obsidian/plugins/obsidian-attendance` and put the downloaded files in there.\n* Enable the plugin in the community plugins page in the settings.\n\n\n\n## Contributing\n\nYou are more than welcome to contribute to this plugin! You can contribute by:\n\n* Filing issues for bugs you encountered\n* Adding to the documentation\n* Adding a feature request\n* Making a pull request to the code\n\n### How to work on the code\n\n- Clone this repo into the folder `MyTestVault/.obsidian/obsidian-attendance`\n- `npm i` to install dependencies\n- `npm run dev` to start compilation in watch mode.\n\nTo conveniently reload the plugin every time you make a change, use the [hot-reload plugin](https://github.com/pjeby/hot-reload).\n\n### Improve code quality with eslint\n\nRun `npm run lint` to see all the errors and `npm run lint -- --fix` to fix all errors that are automatically fixable.\n\n### Releasing new releases\n\n- Update minimum obsidian version in `manifest.json`.\n- Run `npm run build \u0026\u0026 npm run test`\n- Run `npm version [patch, minor, major]` to update the version.\n- Run `git push \u0026\u0026 git push --tags`\n- Run `gh release create $(cat manifest.json | jq \".version\" -r) --generate-notes` to create the github release\n- Run `gh release upload $(cat manifest.json | jq \".version\" -r) manifest.json styles.css main.js`\n\n### Adding your plugin to the community plugin list\n\n- Check https://github.com/obsidianmd/obsidian-releases/blob/master/plugin-review.md\n- Publish an initial version.\n- Make sure you have a `README.md` file in the root of your repo.\n- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin.\n\n\n\n### API Documentation\n\nSee https://github.com/obsidianmd/obsidian-api\n\n### Code from other plugins\n\nThis plugin is inspired and uses code from the following plugins:\n\n* Obsidian Dataview\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTiim%2Fobsidian-attendance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTiim%2Fobsidian-attendance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTiim%2Fobsidian-attendance/lists"}