zinzen 0.3.0

Algorithm for auto-scheduling time-constrained tasks on a timeline
{
  "scheduled": [
    {
      "day": "2022-01-01",
      "tasks": [
        {
          "taskid": 0,
          "goalid": "887b021f-502e-4553-856c-e05104e440be",
          "title": "Test",
          "duration": 60,
          "start": "2022-01-01T00:00:00",
          "deadline": "2022-01-01T01:00:00"
        },
        {
          "taskid": 1,
          "goalid": "free",
          "title": "free",
          "duration": 540,
          "start": "2022-01-01T01:00:00",
          "deadline": "2022-01-01T10:00:00"
        },
        {
          "taskid": 2,
          "goalid": "2",
          "title": "dentist",
          "duration": 60,
          "start": "2022-01-01T10:00:00",
          "deadline": "2022-01-01T11:00:00"
        },
        {
          "taskid": 3,
          "goalid": "1",
          "title": "shopping",
          "duration": 60,
          "start": "2022-01-01T11:00:00",
          "deadline": "2022-01-01T12:00:00"
        },
        {
          "taskid": 4,
          "goalid": "free",
          "title": "free",
          "duration": 60,
          "start": "2022-01-01T12:00:00",
          "deadline": "2022-01-01T13:00:00"
        },
        {
          "taskid": 5,
          "goalid": "3",
          "title": "exercise",
          "duration": 60,
          "start": "2022-01-01T13:00:00",
          "deadline": "2022-01-01T14:00:00"
        },
        {
          "taskid": 6,
          "goalid": "free",
          "title": "free",
          "duration": 600,
          "start": "2022-01-01T14:00:00",
          "deadline": "2022-01-02T00:00:00"
        }
      ]
    }
  ],
  "impossible": []
}