{"id":16816127,"url":"https://github.com/zeripath/sample-rota-converters","last_synced_at":"2025-03-17T12:44:43.876Z","repository":{"id":146780798,"uuid":"109889729","full_name":"zeripath/sample-rota-converters","owner":"zeripath","description":"Examples for how to create a rota converter","archived":false,"fork":false,"pushed_at":"2017-12-17T21:36:40.000Z","size":133,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T22:31:06.183Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeripath.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-07T20:54:58.000Z","updated_at":"2017-11-08T18:28:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b8e611d-5b94-4451-96a7-0344f1488048","html_url":"https://github.com/zeripath/sample-rota-converters","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/zeripath%2Fsample-rota-converters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2Fsample-rota-converters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2Fsample-rota-converters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeripath%2Fsample-rota-converters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeripath","download_url":"https://codeload.github.com/zeripath/sample-rota-converters/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244038089,"owners_count":20387825,"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-13T10:37:25.467Z","updated_at":"2025-03-17T12:44:43.856Z","avatar_url":"https://github.com/zeripath.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Converting rotas into iCalendar files\n\n[HOME](https://zeripath.github.io/sample-rota-converters)\n\n## Rationale\nDoctors in the UK often rotate jobs multiple times a year, and with each job\ncomes a new rota. A new rota in a new format, often complex, almost always\nwritten as an excel spreadsheet, andupdated at random.\n\nAlmost every doctor has a mobile phone, on which there is a calendar\napplication. Some doctors will do the painstaking task of manually converting\nthat rota into events to be put on that application. Others will try to keep a\ncopy of it on their phones, and others will print the rota out and put it on\ntheir wall.\n\nWe can do better.\n\n## Why is manually converting rotas bad?\n\n1. It's time consuming and repetitive - Humans are bad at doing this, but\n   computers are good at this.\n2. The rota will change and you will have to do that work again.\n3. If you can do this for your rota - you can do it for everyone!\n\n## What should we do?\n\nOur calendar applications have a standard format for events, called the\n`iCalendar` format - standard suffix `.ics`\n\nThis is defined at \u003chttps://icalendar.org\u003e, wikipedia has a good description of\nit \u003chttps://en.wikipedia.org/wiki/ICalendar\u003e.\n\nIf we can convert our rotas to `.ics` files we can either import them into our\ncalendar applications, or, even better, stick them on a website and point our\napplications to them so that they update automatically.\n\n## Plan\n* [Introduce the icalendar format](icalendar)\n* Simple-Rota\n  1. [Look at a very simple rota and write a simple converter](simple-rota/part-1)\n  2. [Refine this converter](simple-rota/part-2)\n  3. [Consider the problems of the converter](simple-rota/part-3)\n* Multi-Rota\n  1. [Multiple shift - multiple person rotas](multi-rota/part-1)\n  2. [Adding night shifts to the multi-shift/multi-pers on rota](multi-rota/part-2)\n  3. [Name errors and other abuses](multi-rota/part-3)\n* Unusual-Rotas\n  1. [A rota with an unusual date format](unusual-rotas/part-1)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeripath%2Fsample-rota-converters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeripath%2Fsample-rota-converters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeripath%2Fsample-rota-converters/lists"}