Heading in the right direction.
Your main table will be Appointment as this will be constantly added to. The other tables just tell information detail about who is attending. Patients will have multiple appointments so you should not have the appointment key in the Patient table but vice versa.
Take appointment date field out of Patient_List and add a field for the Patient_List key to Appointments. This is to indicate which patient is attending the appointment. The relationship between Patient and Appointment is more like the Doctor and Appointment. One patient and one doctor are associated with the appointment.
You won't be able to use Appointment Date as a key in Appointments (unless you only have one appointment each day). A PK in the Appointment table might not be essential. It would only be required if you needed to refer to the appointment from other records.
I would also have a table of locations with info about that location like LocationID, address, keyholder, telephone, etc. The Location in Appointment will be the LocationID key from this table.
Addresses may require another field to cover two line addresses. Address1 and Address2 is quite common in databases.
In Appointment I would also add checkbox field to indicate if the patient turned up. This would show which appointments are outstanding. You might also include a field for Rescheduled where they don't attend. This is where you would use a PK in Appointment. Rescheduled would hold the PK of the new appointment.
Patient email and Doctor email might be useful. The referring doctor would also have an address. The Appointment would also have an attending doctor unless this database is just for one doctor. But what if the practice expands?