> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AppointmentMatrix

> The AppointmentMatrix is used to manage complex appointments at the NetServer data layer.

The [AppointmentMatrix][1] is used to manage complex appointments: [invitations][2] and [recurrences][3].

```csharp theme={null}
using SuperOffice.CRM.Entities;

// Let the attendee accept this one
using (SoSession.Authenticate("tje3", "tje3"))
{
  int appointmentId = 123;
  Appointment appointment = Appointment.GetFromIdxAppointmentId( appointmentId );
  AppointmentMatrix matrix = new AppointmentMatrix(appointment, RecurrenceUpdateMode.ThisAndForward);

  // Get attendee information for user to assign-to
  AssociateCache  associateCache  = AssociateCache.GetCurrent();
  AssociateRow    jimbo           = associateCache.GetAssociate(associateCache.GetAssociateId("jimbo"));
  ParticipantInfo jimboParticipant= new ParticipantInfo(jimbo.AssociateId, jimbo.PersonId, 2, 0, false);
  matrix.AssignTo( jimboParticipant );
  matrix.Save();
}
```

```csharp theme={null}
using SuperOffice.CRM.Entities;

// Let the attendee accept this one
using (SoSession.Authenticate("tje3", "tje3"))
{
  int assignedAppointmentId = 123;
  assignAccept = new AppointmentMatrix(assignedAppointmentId, RecurrenceUpdateMode.ThisAndForward);
  RecurrenceDate firstDate = assignAccept.InnerMatrix.GetRowKey(0);
  assignAccept.Accept();
  assignAccept.Save();
}
```

[1]: https://github.com/SuperOfficeDocs/superoffice-docs/blob/main/docs/en/api/reference/netserver/core/SuperOffice.CRM.Entities.AppointmentMatrix.yml

[2]: ../../../../diary/learn/invitation/index

[3]: ../../../../diary/dev/index#frequency


## Related topics

- [appointment table](/en/database/tables/appointment.md)
- [StringMatrix](/en/automation/crmscript/reference/CRMScript.Native.StringMatrix.md)
- [SearchEngine](/en/automation/crmscript/reference/CRMScript.Native.SearchEngine.md)
- [StatLib](/en/automation/crmscript/reference/CRMScript.Native.StatLib.md)
- [appointment](/en/api/mdo-providers/reference/appointment.md)
- [Appointment](/en/api/archive-providers/reference/appointment.md)
- [Appointments](/en/api/reference/restful/rest/person/appointments.md)
