This is a personal time management application. It works great with pomodoro technique.
Long time ago I started tracking the time of my projects on a calendar like this
![image](https://private-user-images.githubusercontent.com/37439522/319129987-73dd1cd7-ac54-426a-901d-0ace95f6eee6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzUwNzAsIm5iZiI6MTcyNDIzNDc3MCwicGF0aCI6Ii8zNzQzOTUyMi8zMTkxMjk5ODctNzNkZDFjZDctYWM1NC00MjZhLTkwMWQtMGFjZTk1ZjZlZWU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDEwMDYxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI2MTY2OGY5NDJiMTdmMjkxNDJhY2E0NTU3MjQ4NzVjZmNkYzY3MWZhN2ZhNjBjY2JiYzZiMjZmYzlkNzUxODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.O3GP8GROPdcmZeQ_any0lGItC7zJH8xwELu-bJscqn4)
So I created an application which helps understanding how much time I spend on each task.
![image](https://private-user-images.githubusercontent.com/37439522/319132688-5d284da3-f615-4e9c-82a7-31d7b45d066f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzUwNzAsIm5iZiI6MTcyNDIzNDc3MCwicGF0aCI6Ii8zNzQzOTUyMi8zMTkxMzI2ODgtNWQyODRkYTMtZjYxNS00ZTljLTgyYTctMzFkN2I0NWQwNjZmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDEwMDYxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg5NGNjNDQ2NThjYjgyNjE0YTU4YThlN2IwZjBkYjVhZDI5NzA3YjdmNmM4MjY4ZDBkZGY1ZTcxODcyNTEyNTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0Zz_SVHMNJ-xQxmgU8KzUfEJB3VvON8VVtXhkikZ01A)
The application uses 'dot and space' ('. ') as a separator to build hierarchy. For example if you create a few events like this
- 'Project. Task 1. Subtask 1' duration 60 minutes
- 'Project. Task 1. Subtask 2' duration 30 minutes
- 'Project. Task 2. Subtask 1' duration 30 minutes
the app will create hierarchy:
Project 2:00 - Task 1 1:30 - Subtask 1 1:00 - Subtask 2 0:30 - Task 2 0:30 - Subtask 1 0:30
You can rename multiple calendar events at once
![image](https://private-user-images.githubusercontent.com/37439522/319134225-7042d97a-8da9-4856-a332-00449174b2f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzUwNzAsIm5iZiI6MTcyNDIzNDc3MCwicGF0aCI6Ii8zNzQzOTUyMi8zMTkxMzQyMjUtNzA0MmQ5N2EtOGRhOS00ODU2LWEzMzItMDA0NDkxNzRiMmYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDEwMDYxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNlZjRjMTdhYzg4YjVmMjhkZmZlNTVlMWRlM2Y1ZjBmNTk3YzgwNDk2ODU5ZjMyZWIzODJmNDgyNGIwM2E0YzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Xq1ZYleNf0Y0gXXTpzItIQWv7Emv3E6yBNLnr6up3qE)
Any changes on calendar will automatically update an application (via EKEventStoreChanged)
If you enable access to AppleScript, a click on a magnifying glass (🔍) icon will open a calendar with search on the selected item.
![image](https://private-user-images.githubusercontent.com/37439522/319133250-0427a9af-647e-40a6-89ac-61a460a3da68.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyMzUwNzAsIm5iZiI6MTcyNDIzNDc3MCwicGF0aCI6Ii8zNzQzOTUyMi8zMTkxMzMyNTAtMDQyN2E5YWYtNjQ3ZS00MGE2LTg5YWMtNjFhNDYwYTNkYTY4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIxVDEwMDYxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZhN2VkODI4OTU0OThlOWM3MTFkYjdmNDczZTg4NTM3MDcwMjE1ZjY2Y2Y4MzczNjBkMzRkZTBmZjU4OWM5MDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gCjfokipfWU_cBTEVs4iJqivyfZmleKHvP64C9Z_6Bc)