zinzen 0.3.0

Algorithm for auto-scheduling time-constrained tasks on a timeline
{
  "scheduled": [
    {
      "day": "2022-01-01",
      "tasks": [
        {
          "taskid": 0,
          "goalid": "free",
          "title": "free",
          "duration": 600,
          "start": "2022-01-01T00:00:00",
          "deadline": "2022-01-01T10:00:00"
        },
        {
          "taskid": 1,
          "goalid": "2",
          "title": "dentist",
          "duration": 60,
          "start": "2022-01-01T10:00:00",
          "deadline": "2022-01-01T11:00:00"
        },
        {
          "taskid": 2,
          "goalid": "1",
          "title": "shopping",
          "duration": 60,
          "start": "2022-01-01T11:00:00",
          "deadline": "2022-01-01T12:00:00"
        },
        {
          "taskid": 3,
          "goalid": "free",
          "title": "free",
          "duration": 60,
          "start": "2022-01-01T12:00:00",
          "deadline": "2022-01-01T13:00:00"
        },
        {
          "taskid": 4,
          "goalid": "3",
          "title": "exercise",
          "duration": 60,
          "start": "2022-01-01T13:00:00",
          "deadline": "2022-01-01T14:00:00"
        },
        {
          "taskid": 5,
          "goalid": "free",
          "title": "free",
          "duration": 600,
          "start": "2022-01-01T14:00:00",
          "deadline": "2022-01-02T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-02",
      "tasks": [
        {
          "taskid": 6,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-02T00:00:00",
          "deadline": "2022-01-03T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-03",
      "tasks": [
        {
          "taskid": 7,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-03T00:00:00",
          "deadline": "2022-01-04T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-04",
      "tasks": [
        {
          "taskid": 8,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-04T00:00:00",
          "deadline": "2022-01-05T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-05",
      "tasks": [
        {
          "taskid": 9,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-05T00:00:00",
          "deadline": "2022-01-06T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-06",
      "tasks": [
        {
          "taskid": 10,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-06T00:00:00",
          "deadline": "2022-01-07T00:00:00"
        }
      ]
    },
    {
      "day": "2022-01-07",
      "tasks": [
        {
          "taskid": 11,
          "goalid": "free",
          "title": "free",
          "duration": 1440,
          "start": "2022-01-07T00:00:00",
          "deadline": "2022-01-08T00:00:00"
        }
      ]
    }
  ],
  "impossible": []
}