I tried to add edit form of appointments but unable to edit those record in it."
what is the issue you are facing here?
--> When I am redirected towards edit form and if I want to change the start and end date or any field from the form I am not able to edit the form, seems like all the fields are converted to read only mode.
"Also the description is always in html format."
do you mean that your description you want in HTML?
--> No , The description that is present is in html format means when I am opening my edit form of appointments the description looks something like this as shown in below screenshot.

"Also wanted to know is it possible to create a calendar which works similar like outlook calendar invite which is generated after creating appointments in model driven app?"
if your list calendar is pointing to appointments from Dataverse, this should work just fine
ultimately you can do a custom render using Liquid and Fetch or again using the List component
--> Do you have any blogs or links which I can refer to achieve this?