---
id: object/table/5080
type: object
title: Table 5080 "To-do"
summary: Table 5080 "To-do" in Base Application (Microsoft.CRM.Task). 56 fields, 44 public procedures, 47 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: d30f655563fdcd87c7f3b41c3b120bb35871e0b11c1eca1c728cfa91e69fa48a
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Task/Todo.Table.al
    title: src/Layers/W1/BaseApp/CRM/Task/Todo.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 5080
name: To-do
caption: Task
namespace: Microsoft.CRM.Task
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 56
  procedures: 122
  events: 47
  subscribers: 0
relations:
  out: 24
  referenced_by: 14
  pages: 5
  extended_by: 0
  event_subscribers: 0
  calls: 8
  called_by: 0
  implements: 0
---

# Table 5080 "To-do"

> Table 5080 "To-do" in Base Application (Microsoft.CRM.Task). 56 fields, 44 public procedures, 47 events. Present since at least BC23, still in BC30, changed in BC24-28.

Base Application · Microsoft.CRM.Task · captioned "Task" · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Task/Todo.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Task |
| DataClassification | CustomerContent |
| Permissions | tabledata "To-Do" = RI, tabledata "Marketing Setup" = R, tabledata "Team Salesperson" = R |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. |  |
| 2 | Team Code | Code[10] | Specifies the code of the team to which the task is assigned. | TableRelation [Table 5083 "Team"](../table/5083.md) |
| 3 | Salesperson Code | Code[20] | Specifies the code of the salesperson assigned to the task. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) ("Salesperson/Purchaser" where(Blocked = const(false))) |
| 4 | Campaign No. | Code[20] | Specifies the number of the campaign to which the task is linked. | TableRelation [Table 5071 "Campaign"](../table/5071.md) |
| 5 | Contact No. | Code[20] | Specifies the number of the contact linked to the task. | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 6 | Opportunity No. | Code[20] | Specifies the number of the opportunity to which the task is linked. | TableRelation [Table 5092 "Opportunity"](../table/5092.md) |
| 7 | Segment No. | Code[20] | — | TableRelation [Table 5076 "Segment Header"](../table/5076.md) (Segment Header) |
| 8 | Type | Enum "Task Type" | Specifies the type of the task. | enum [Enum 5080 "Task Type"](../enum/5080.md) |
| 9 | Date | Date | Specifies the date when the task should be started. There are certain rules for how dates should be entered found in How to: Enter Dates and Times. | NotBlank |
| 10 | Status | Enum "Task Status" | Specifies the status of the task. There are five options: Not Started, In Progress, Completed, Waiting and Postponed. | enum [Enum 5081 "Task Status"](../enum/5081.md) |
| 11 | Priority | Option | Specifies the priority of the task. | OptionCaption: Low,Normal,High |
| 12 | Description | Text[100] | Specifies the description of the task. |  |
| 13 | Closed | Boolean | Specifies that the task is closed. |  |
| 14 | Date Closed | Date | Specifies the date the task was closed. | not editable |
| 15 | No. Series | Code[20] | — | TableRelation [Table 308 "No. Series"](../table/308.md) (No. Series); not editable |
| 16 | Comment | Boolean | Specifies that a comment has been assigned to the task. | FlowField: exist("Rlshp. Mgt. Comment Line" where("Table Name" = const("To-do"), "No." = field("Organizer To-do No."), "Sub No." = const(0))); not editable |
| 17 | Canceled | Boolean | Specifies that the task has been canceled. |  |
| 18 | Contact Name | Text[100] | Specifies the name of the contact to which this task has been assigned. | FlowField: lookup(Contact.Name where("No." = field("Contact No."))); not editable |
| 19 | Team Name | Text[50] | — | FlowField: lookup(Team.Name where(Code = field("Team Code"))); not editable |
| 20 | Salesperson Name | Text[50] | — | FlowField: lookup("Salesperson/Purchaser".Name where(Code = field("Salesperson Code"))); not editable |
| 21 | Campaign Description | Text[100] | Specifies the description of the campaign to which the task is linked. | FlowField: lookup(Campaign.Description where("No." = field("Campaign No."))); not editable |
| 22 | Contact Company No. | Code[20] | Specifies the contact number of the company for which the contact involved in the task works. | TableRelation [Table 5050 "Contact"](../table/5050.md) (Contact where(Type = const(Company))) |
| 23 | Contact Company Name | Text[100] | Specifies the name of the company for which the contact involved in the task works. | FlowField: lookup(Contact.Name where("No." = field("Contact Company No."))); not editable |
| 24 | Recurring | Boolean | Specifies that the Task occurs periodically. |  |
| 25 | Recurring Date Interval | DateFormula | Specifies the date formula to assign automatically a recurring Task to a Salesperson or Team. |  |
| 26 | Calc. Due Date From | Option | Specifies the date to use to calculate the date on which the next Task should be completed. | OptionCaption: ,Due Date,Closing Date |
| 27 | Opportunity Description | Text[100] | Specifies a description of the opportunity related to the task. The description is copied from the opportunity card. | FlowField: lookup(Opportunity.Description where("No." = field("Opportunity No."))); not editable |
| 28 | Start Time | Time | Specifies the time when the Task of the Meeting type should be started. |  |
| 29 | Duration | Duration | Specifies the duration of the Task of the Meeting type. |  |
| 31 | Opportunity Entry No. | Integer | — | TableRelation [Table 5093 "Opportunity Entry"](../table/5093.md) (Opportunity Entry) |
| 32 | Last Date Modified | Date | — |  |
| 33 | Last Time Modified | Time | — |  |
| 34 | All Day Event | Boolean | Specifies that the Task of the Meeting type is an all-day event, which is an activity that lasts 24 hours or longer. |  |
| 35 | Location | Text[100] | Specifies the location where the meeting will take place. |  |
| 36 | Organizer To-do No. | Code[20] | Specifies the number of the organizer's task. The field is not editable. | TableRelation [Table 5080 "To-do"](../table/5080.md) (To-do) |
| 37 | Interaction Template Code | Code[10] | Specifies the code for the interaction template that you have selected. | TableRelation [Table 5064 "Interaction Template"](../table/5064.md) (Interaction Template) |
| 38 | Language Code | Code[10] | Specifies the language that is used when translating specified text on documents to foreign business partner, such as an item description on an order confirmation. | TableRelation [Table 8 "Language"](../table/8.md) |
| 39 | Attachment No. | Integer | — |  |
| 40 | Subject | Text[100] | Specifies the subject of the task. The subject is used for e-mail messages or Outlook meetings that you create. |  |
| 41 | Unit Cost (LCY) | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. <small>via [Page 5199 "Attendee Scheduling"](../page/5199.md)</small> |  |
| 42 | Unit Duration (Min.) | Decimal | Specifies the duration of the interaction. <small>via [Page 5199 "Attendee Scheduling"](../page/5199.md)</small> |  |
| 43 | No. of Attendees | Integer | Specifies the number of attendees for the meeting. click the field to view the Attendee Scheduling card. | FlowField: count(Attendee where("To-do No." = field("Organizer To-do No."))); not editable |
| 44 | Attendees Accepted No. | Integer | Specifies the number of attendees that have confirmed their participation in the meeting. | FlowField: count(Attendee where("To-do No." = field("Organizer To-do No."), "Invitation Response Type" = const(Accepted))); not editable |
| 45 | System To-do Type | Option | System Task Type <small>caption</small> | OptionCaption: Organizer,Salesperson Attendee,Contact Attendee,Team |
| 46 | Completed By | Code[20] | Specifies the salesperson who completed this team task. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) ("Salesperson/Purchaser".Code); DataClassification EndUserIdentifiableInformation |
| 47 | Ending Date | Date | Specifies the date of when the Task should end. There are certain rules for how dates should be entered. For more information, see How to: Enter Dates and Times. |  |
| 48 | Ending Time | Time | Specifies the time of when the Task of the Meeting type should end. |  |
| 9501 | Wizard Step | Option | — | OptionCaption: ,1,2,3,4,5,6; not editable |
| 9504 | Team To-do | Boolean | Specifies if the Task is meant to be done team-wide. Select the check box to specify that the Task applies to the entire Team. |  |
| 9505 | Send on finish | Boolean | Specifies if the meeting invitation task will be sent when the Create Task wizard is finished. |  |
| 9506 | Segment Description | Text[100] | Specifies a description of the segment related to the task. The description is copied from the segment card. |  |
| 9507 | Team Meeting Organizer | Code[20] | Specifies who on the team is the organizer of the task. You can modify the value in this field with the appropriate name when the to-do is for a team. |  |
| 9508 | Activity Code | Code[10] | Specifies a code for the task activity. | TableRelation Activity.Code |
| 9509 | Wizard Contact Name | Text[100] | Specifies a contact name from the wizard. |  |
| 9510 | Wizard Campaign Description | Text[100] | Specifies a description of the campaign that is related to the task. The description is copied from the campaign card. |  |
| 9511 | Wizard Opportunity Description | Text[100] | Specifies a description of the Opportunity that is related to the Task. The description is copied from the Campaign card. |  |

## Keys

- Key1: No. (clustered)
- Key2: Contact Company No., Date, Contact No., Closed
- Key3: Contact Company No., Contact No., Closed, Date
- Key4: Salesperson Code, Date, Closed
- Key5: Team Code, Date, Closed
- Key6: Campaign No., Date
- Key7: Segment No., Date
- Key8: Opportunity No., Date, Closed
- Key9: Organizer To-do No., System To-do Type

## Events published

- `OnAfterCopyFieldsFromActivityStep(var TempTask: Record "To-do" temporary; ActivityStep: Record "Activity Step")` (integration)
- `OnAfterSetFilterFromTask(var ToTask: Record "To-do"; var FromTask: Record "To-do")` (integration)
- `OnAfterInsertTask(var Todo: Record "To-do")` (integration)
- `OnBeforeChangeTeam(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeConfirmReassignmentOpenedNotMeetingToDo(var ToTask: Record "To-do"; var IsHandled: Boolean; xToTask: Record "To-do")` (integration)
- `OnBeforeCreateAttendeeFromFinishWizard(var ToTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateSubTask(Attendee: Record Attendee; Task: Record "To-do"; var TaskNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetEndDateTime(var ToTask: Record "To-do"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertTaskAndRelatedData(var Task: Record "To-do"; var SkipTypeUpdate: Boolean)` (integration)
- `OnBeforeReassignSalespersonTaskToTeam(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeReassignTeamTaskToSalesperson(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeRunCreateTaskPage(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetDuration(var Task: Record "To-do"; var IsHandled: Boolean; EndingDate: Date; EndingTime: Time)` (integration)
- `OnBeforeStartWizard(var Todo: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnCreateTaskFromTaskOnBeforeStartWizard(var Task: Record "To-do"; var FromTask: Record "To-do")` (integration)
- `OnCreateTaskFromSalesHeaderOnBeforeStartWizard(var Task: Record "To-do"; SalesHeader: Record "Sales Header")` (integration)
- `OnCreateTaskFromSalesHeaderoOnBeforeStartWizard(var Task: Record "To-do"; SalesHeader: Record "Sales Header")` (integration)
- `OnCreateTaskFromInteractLogEntryOnBeforeStartWizard(var Task: Record "To-do"; InteractionLogEntry: Record "Interaction Log Entry")` (integration)
- `OnCreateInteractionOnBeforeCreatePhoneCall(var SegLine: Record "Segment Line"; var Task: Record "To-do")` (integration)
- `OnBeforeUpdateAttendeeTasks(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateTeamCode(var Task: Record "To-do"; xTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateSalespersonCode(var Task: Record "To-do"; xTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateContactNo(var Task: Record "To-do"; xTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateType(var Task: Record "To-do"; xTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeDeleteAttendeeTask(var Task: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnLogTaskInteractionOnBeforeTempSegLineInsert(var SegmentLine: Record "Segment Line"; Task: Record "To-do")` (integration)
- `OnStartWizardOnAfterSetDate(var Task: Record "To-do")` (integration)
- `OnStartWizardOnBeforeInsert(var Task: Record "To-do")` (integration)
- `OnAfterInsertTaskAndRelatedData(var Task2: Record "To-do"; TaskNo: Code[20])` (integration)
- `OnBeforeValidateCompletedBy(var Task: Record "To-do"; xTask: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnStartWizard2OnBeforeInsert(var Task: Record "To-do")` (integration)
- `OnBeforeCreateOrganizerTask(Task: Record "To-do"; var TempAttendee: Record Attendee temporary; TaskNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnFinishWizardOnBeforeContactNoValidation(var ToDo: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateSubTaskForAttendees(var ToDo: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateInteraction(var Todo: Record "To-do"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateInteractionTemplate(var Todo: Record "To-do"; var TodoInteractionLanguage: Record "To-do Interaction Language"; var Attachment: Record Attachment; InteractTmplCode: Code[10]; AttachmentTemporary: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateAttachment(var Todo: Record "To-do"; var PageNotEditable: Boolean)` (integration)
- `OnBeforeOpenAttachment(var Todo: Record "To-do"; var PageNotEditable: Boolean)` (integration)
- `OnBeforeImportAttachment(var Todo: Record "To-do")` (integration)
- `OnBeforeExportAttachment(var Todo: Record "To-do")` (integration)
- `OnBeforeRemoveAttachment(var Todo: Record "To-do")` (integration)
- `OnStartWizardOnAfterInsert(var Todo: Record "To-do")` (integration)
- `OnBeforeInsertActivityTask(var Task: Record "To-Do"; ActivityCode: Code[10]; var Attendee: Record Attendee; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateClosed(var Todo: Record "To-do"; xTodo: Record "To-do"; var SkipConfirmDialog: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterAssignDefaultAttendeeInfo(var Todo: Record "To-do"; var AttendeeLineNo: Integer; var TempAttendee: Record Attendee temporary)` (integration)
- `OnProcessAttendeeAppointmentOnAfterFindAttendeeTask(var Attendee: Record Attendee; var Todo: Record "To-do"; var Todo2: Record "To-do"; var SalesPersonList: Text; CreateExchangeAppointment: Boolean)` (integration)
- `OnBeforeCheckStatus(var Todo: Record "To-do")` (integration)

## Procedures

- `CreateTaskFromTask(var Task: Record "To-do")`
- `CreateTaskFromSalesHeader(SalesHeader: Record "Sales Header")`
- `CreateTaskFromInteractLogEntry(InteractionLogEntry: Record "Interaction Log Entry")`
- `InsertTask(Task2: Record "To-do"; var RMCommentLine: Record "Rlshp. Mgt. Comment Line"; var TempAttendee: Record Attendee temporary; var TaskInteractionLanguage: Record "To-do Interaction Language"; var TempAttachment: Record Attachment temporary; ActivityCode: Code[10]; Deliver: Boolean)`
- `CreateSubTask(var Attendee: Record Attendee; Task: Record "To-do"): Code[20]`
- `DeleteAttendeeTask(Attendee: Record Attendee)`
- `FindAttendeeTask(var Task: Record "To-do"; Attendee: Record Attendee): Boolean`
- `AssignActivityFromTask(var Task: Record "To-do")`
- `InsertActivityTask(Task2: Record "To-do"; ActivityCode: Code[10]; var Attendee: Record Attendee)`
- `CancelOpenTasks(OpportunityNo: Code[20])`
- `SetDuration(EndingDate: Date; EndingTime: Time)`
- `GetEndDateTime()`
- `SendMAPIInvitations(Task: Record "To-do"; FromWizard: Boolean)`
- `CreateAttachment(PageNotEditable: Boolean)`
- `OpenAttachment(PageNotEditable: Boolean)`
- `ImportAttachment()`
- `ExportAttachment()`
- `RemoveAttachment(Prompt: Boolean)`
- `CreateAttendeesFromTeam(var Attendee: Record Attendee; TeamMeetingOrganizer: Code[20])`
- `ChangeTeam()`
- `ReassignTeamTaskToSalesperson()`
- `ReassignSalespersonTaskToTeam()`
- `GetMeetingOrganizerTask(var Task: Record "To-do")`
- `ArrangeOrganizerAttendee()`
- `StartWizard()`
- `CheckStatus()`
- `FinishWizard(SendExchangeAppointment: Boolean)`
- `AssignDefaultAttendeeInfo()`
- `ValidateInteractionTemplCode()`
- `AssistEditAttachment()`
- `ValidateLanguageCode()`
- `LookupLanguageCode()`
- `LoadTempAttachment()`
- `ClearDefaultAttendeeInfo()`
- `GetAttendee(var Attendee: Record Attendee)`
- `SetAttendee(var Attendee: Record Attendee)`
- `SetComments(var RMCommentLine: Record "Rlshp. Mgt. Comment Line")`
- `CheckAssignActivityStatus()`
- `FinishAssignActivity()`
- `SetRunFromForm()`
- `IsCalledFromForm(): Boolean`
- `UpdateAppointment(var Appointment: DotNet IAppointment; TimeZoneInfo: DotNet TimeZoneInfo)`
- `SetupExchangeService(var ExchangeWebServicesServer: Codeunit "Exchange Web Services Server")`
- `AddAppointmentAttendee(var Appointment: DotNet IAppointment; var Attendee: Record Attendee; Email: Text)`

Plus 31 local procedures.

## Triggers

OnDelete, OnInsert, OnModify

## Relations

- drill-down page [Page 5096 "Task List"](../page/5096.md)
- lookup page [Page 5096 "Task List"](../page/5096.md)
- Salesperson Name: CalcFormula [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Completed By: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Salesperson Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- No. Series: TableRelation [Table 308 "No. Series"](../table/308.md)
- Contact Company Name: CalcFormula [Table 5050 "Contact"](../table/5050.md)
- Contact Name: CalcFormula [Table 5050 "Contact"](../table/5050.md)
- Contact Company No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Comment: CalcFormula [Table 5061 "Rlshp. Mgt. Comment Line"](../table/5061.md)
- Interaction Template Code: TableRelation [Table 5064 "Interaction Template"](../table/5064.md)
- Campaign Description: CalcFormula [Table 5071 "Campaign"](../table/5071.md)
- Campaign No.: TableRelation [Table 5071 "Campaign"](../table/5071.md)
- Segment No.: TableRelation [Table 5076 "Segment Header"](../table/5076.md)
- Organizer To-do No.: TableRelation [Table 5080 "To-do"](../table/5080.md)
- Team Name: CalcFormula [Table 5083 "Team"](../table/5083.md)
- Team Code: TableRelation [Table 5083 "Team"](../table/5083.md)
- Opportunity Description: CalcFormula [Table 5092 "Opportunity"](../table/5092.md)
- Opportunity No.: TableRelation [Table 5092 "Opportunity"](../table/5092.md)
- Opportunity Entry No.: TableRelation [Table 5093 "Opportunity Entry"](../table/5093.md)
- Attendees Accepted No.: CalcFormula [Table 5199 "Attendee"](../table/5199.md)
- No. of Attendees: CalcFormula [Table 5199 "Attendee"](../table/5199.md)
- Language Code: TableRelation [Table 8 "Language"](../table/8.md)

## Referenced by

14 fields in 11 objects relate to this table (TableRelation or CalcFormula).

- [Table 13 "Salesperson/Purchaser"](../table/13.md): Next Task Date, Task Entry Exists
- [Table 5050 "Contact"](../table/5050.md): Next Task Date, Task Entry Exists
- [Table 5083 "Team"](../table/5083.md): Next Task Date, Task Entry Exists
- [Table 5061 "Rlshp. Mgt. Comment Line"](../table/5061.md): No.
- [Table 5065 "Interaction Log Entry"](../table/5065.md): To-do No.
- [Table 5071 "Campaign"](../table/5071.md): Task Entry Exists
- [Table 5077 "Segment Line"](../table/5077.md): To-do No.
- [Table 5080 "To-do"](../table/5080.md): Organizer To-do No.
- [Table 5102 "RM Matrix Management"](../table/5102.md): No. of Tasks
- [Table 5196 "To-do Interaction Language"](../table/5196.md): To-do No.
- [Table 5199 "Attendee"](../table/5199.md): To-do No.

## Pages and codeunits on this table

- [Page 5096 "Task List"](../page/5096.md) (source table)
- [Page 5097 "Create Task"](../page/5097.md) (source table)
- [Page 5098 "Task Card"](../page/5098.md) (source table)
- [Page 5146 "Assign Activity"](../page/5146.md) (source table)
- [Page 5199 "Attendee Scheduling"](../page/5199.md) (source table)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 5321 "Exchange Web Services Server"](../codeunit/5321.md) (6 calls: `Initialize → GetEndpoint`, `Initialize → InitializeWithCertificate`, `Initialize → InitializeWithOAuthToken`, …)
- [Codeunit 6300 "Azure AD Mgt."](../codeunit/6300.md) (3 calls: `Initialize → GetAccessTokenAsSecretText`, `Initialize → GetO365Resource`, `Initialize → GetO365ResourceName`)
- [Codeunit 5052 "AttachmentManagement"](../codeunit/5052.md) (2 calls: `CreateTaskInteractLanguages → InsertAttachment`, `UpdateInteractionTemplate → InsertAttachment`)
- [Codeunit 397 "Mail"](../codeunit/397.md) (1 call: `ProcessAttendeeAppointment → NewMessage`)
- [Codeunit 5051 "SegManagement"](../codeunit/5051.md) (1 call: `LogTaskInteraction → LogInteraction`)
- [Page 456 "No. Series"](../page/456.md) (1 call: `OnInsert → (object)`)
- [Page 5097 "Create Task"](../page/5097.md) (1 call: `RunCreateTaskPage → (object)`)
- [Page 5146 "Assign Activity"](../page/5146.md) (1 call: `StartWizard2 → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "To-do")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
