{"id":22035859,"url":"https://github.com/shaneis/pstimesheets","last_synced_at":"2025-05-07T19:44:49.454Z","repository":{"id":50364068,"uuid":"518863489","full_name":"shaneis/PSTimesheets","owner":"shaneis","description":"PowerShell based way of generating, collecting, and aggregating TimeSheets","archived":false,"fork":false,"pushed_at":"2022-10-25T20:10:15.000Z","size":46,"stargazers_count":10,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T01:13:20.315Z","etag":null,"topics":["hacktoberfest","powershell"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaneis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-28T13:45:29.000Z","updated_at":"2023-01-13T09:30:05.000Z","dependencies_parsed_at":"2023-01-20T11:00:17.388Z","dependency_job_id":null,"html_url":"https://github.com/shaneis/PSTimesheets","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaneis%2FPSTimesheets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaneis%2FPSTimesheets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaneis%2FPSTimesheets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaneis%2FPSTimesheets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaneis","download_url":"https://codeload.github.com/shaneis/PSTimesheets/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252946998,"owners_count":21829895,"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":["hacktoberfest","powershell"],"created_at":"2024-11-30T10:28:12.973Z","updated_at":"2025-05-07T19:44:49.409Z","avatar_url":"https://github.com/shaneis.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSTimesheets\n\nSince I learnt that you can press F5 in Notepad and it adds the current timestamp, I realised that it could be handy to track work time.\nOr map F5 to do the same thing with `strftime()` in vim/neovim\n    \n    \" Insert mode insert \"\n    inoremap \u003cF5\u003e \u003cC-R\u003e=strftime('%H:%M %d/%m/%Y')\u003cCR\u003e\n    \nIt just needs parsing, collating, and measuring. \n\nPSTimesheets aims to do that.\n\n### Example TimeSheet File\n\n    08:37 28/07/2022 - Start - Daily Checks\n    09:14 28/07/2022 - End - Daily Checks\n    09:14 28/07/2022 - Start - Daily Standup\n    10:07 28/07/2022 - End - Daily Standup\n    10:14 28/07/2022 - Start - Coffee Break\n    11:03 28/07/2022 - End - Coffee Break\n    11:03 28/07/2022 - Start - Dedicated Code Review\n    11:18 28/07/2022 - End - Dedicated Code Review\n    11:22 28/07/2022 - Start - Daily Checks\n    11:53 28/07/2022 - End - Daily Checks\n    11:56 28/07/2022 - Start - Review Upgrade plan\n    12:24 28/07/2022 - End - Review Upgrade plan\n    12:35 28/07/2022 - Start - Prep for Upgrade\n    12:59 28/07/2022 - End - Prep for Upgrade\n    13:00 28/07/2022 - Start - Call with PM: Issue\n    13:45 28/07/2022 - End - Call with PM: Issue\n    14:24 28/07/2022 - Start - Update Meeting\n    15:00 28/07/2022 - End - Update Meeting\n\n### Using the commands\n\nSaving the above in a directory with the format yyyyMMdd.txt, the code should parse the data.\n\nGetting the timesheets uses `Get-TimeSheet`:\n\n    PS C:\\\u003e Get-TimeSheet -Directory $HOME | Format-Table\n    \n    Date                Subject               Action Duration DurationToNearest15\n    ----                -------               ------ -------- -------------------\n    28/07/2022 08:37:00 Daily Checks          Start  00:00:00 00:15:00\n    28/07/2022 09:14:00 Daily Checks          End    00:37:00 00:45:00\n    28/07/2022 09:14:00 Daily Standup         Start  00:00:00 00:15:00\n    28/07/2022 10:07:00 Daily Standup         End    00:53:00 01:00:00\n    28/07/2022 10:14:00 Coffee Break          Start  00:07:00 00:15:00\n    28/07/2022 11:03:00 Coffee Break          End    00:49:00 00:45:00\n    28/07/2022 11:03:00 Dedicated Code Review Start  00:00:00 00:15:00\n    28/07/2022 11:18:00 Dedicated Code Review End    00:15:00 00:15:00\n    28/07/2022 11:22:00 Daily Checks          Start  00:04:00 00:15:00\n    28/07/2022 11:53:00 Daily Checks          End    00:31:00 00:30:00\n    28/07/2022 11:56:00 Review Upgrade plan   Start  00:03:00 00:15:00\n    28/07/2022 12:24:00 Review Upgrade plan   End    00:28:00 00:30:00\n    28/07/2022 12:35:00 Prep for Upgrade      Start  00:11:00 00:15:00\n    28/07/2022 12:59:00 Prep for Upgrade      End    00:24:00 00:30:00\n    28/07/2022 13:00:00 Call with PM: Issue   Start  00:01:00 00:15:00\n    28/07/2022 13:45:00 Call with PM: Issue   End    00:45:00 00:45:00\n    28/07/2022 14:24:00 Update Meeting        Start  00:39:00 00:45:00\n    28/07/2022 15:00:00 Update Meeting        End    00:36:00 00:45:00\n    \nMeasuring the timesheets defaults to 15 minute boundaries, using `Measure-TimeSheet`:\n\n    PS C:\\\u003e Get-TimeSheet -Directory $HOME | Measure-TimeSheet\n    \n    Subject               Date                TotalDuration TotalDuration15Mins\n    -------               ----                ------------- -------------------\n    Call with PM: Issue   28/07/2022 00:00:00 00:45:00      00:45:00\n    Coffee Break          28/07/2022 00:00:00 00:49:00      00:45:00\n    Daily Checks          28/07/2022 00:00:00 01:08:00      01:15:00\n    Daily Standup         28/07/2022 00:00:00 00:53:00      01:00:00\n    Dedicated Code Review 28/07/2022 00:00:00 00:15:00      00:15:00\n    Prep for Upgrade      28/07/2022 00:00:00 00:24:00      00:30:00\n    Review Upgrade plan   28/07/2022 00:00:00 00:28:00      00:30:00\n    Update Meeting        28/07/2022 00:00:00 00:36:00      00:45:00\n    \nGetting a running total for the day can be done using `Get-TimeSheetTotalPerDay`:\n\n    PS C:\\\u003e Get-TimeSheetTotalPerDay -Directory $HOME | Format-Table\n    \n    Subject               SubjectDuration SubjectDurationAgg Date                Duration DurationAgg\n    -------               --------------- ------------------ ----                -------- -----------\n    Call with PM: Issue   00:45:00        00:45:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Coffee Break          00:49:00        00:45:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Daily Checks          01:08:00        01:15:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Daily Standup         00:53:00        01:00:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Dedicated Code Review 00:15:00        00:15:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Prep for Upgrade      00:24:00        00:30:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Review Upgrade plan   00:28:00        00:30:00           28/07/2022 00:00:00 05:18:00 05:45:00\n    Update Meeting        00:36:00        00:45:00           28/07/2022 00:00:00 05:18:00 05:45:00\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaneis%2Fpstimesheets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaneis%2Fpstimesheets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaneis%2Fpstimesheets/lists"}