I've adapted todo.txt format to be a worse-is-better combined calendar/appointments and task list, for personal use (not a lot of meetings scheduled, nor videoconf&chat integration). It works well enough for now.
Basically, change the meaning of the date on a todo.txt item to be the soonest date that task/appointment can be done, have optional time of day (point or range), and sort the entries to an appropriate ordering (pending before completed, then by date, then by time of day). Every day, tasks you didn't do, search&replace the date to tomorrow.
I'm using todo.txt and calendar.txt together (but as two separate files). I've chosen some conventions for calendar.txt to work smoothly with todo.txt, such as @contexts and +tags.
They work nicely together. To check for all calendar events and todos for a project, I can 'grep +pw calendar.txt todo.txt'. This also shows the start and end date of the project (first and last event date)
http://todotxt.org/
Basically, change the meaning of the date on a todo.txt item to be the soonest date that task/appointment can be done, have optional time of day (point or range), and sort the entries to an appropriate ordering (pending before completed, then by date, then by time of day). Every day, tasks you didn't do, search&replace the date to tomorrow.
https://www.neilvandyke.org/todotxt/