-
-
Notifications
You must be signed in to change notification settings - Fork 0
Meetings
Manage meetings in Teamleader Focus.
The Meetings resource manages meeting activities linked to customers and employees. Creation uses schedule() β there is no create() method. Meetings support time tracking, completion status, and post-meeting reports.
Access via Teamleader::meetings().
Includes key: When passing includes via
options, useoptions['include']. The SDK sends this to the API asincludes(plural). The fluent->with()/->withTrackedTime()methods handle this automatically.Project linkage (v1.2.8): A meeting can be linked to a legacy milestone (
milestone_id) or, on new-projects accounts, to a project (project_id) and/or project group (group_id).
meetings
| Capability | Supported |
|---|---|
| Pagination | β Supported |
| Filtering | β Supported |
| Sorting | β
Supported (scheduled_at) |
| Sideloading | β
Supported (tracked_time, estimated_time) |
| Creation | β
Supported (via schedule()) |
| Update | β Supported |
| Deletion | β Supported |
group_idcannot be combined withmilestone_id(v1.2.8) β passing both throwsInvalidArgumentException.
use McoreServices\TeamleaderSDK\Facades\Teamleader;
$meetings = Teamleader::meetings()->list([
'employee_id' => 'user-uuid',
'start_date' => '2025-04-01',
'end_date' => '2025-04-30',
]);
// Filter by nextgen project group
$meetings = Teamleader::meetings()->list(['group_id' => 'group-uuid']);
$meetings = Teamleader::meetings()->list([], [
'page_size' => 50,
'sort' => [['field' => 'scheduled_at', 'order' => 'asc']],
]);$meeting = Teamleader::meetings()->info('meeting-uuid');
$meeting = Teamleader::meetings()->withTrackedTime()->info('meeting-uuid');Creates a new meeting. Posts to meetings.schedule. Required fields are validated before the request.
Required: title, starts_at, ends_at, attendees (must include at least one type: user), customer (type + id).
Optional (pass-through): description, location (supports the inline address location type), activity_type_id, and project linkage β project_id, group_id, milestone_id.
$meeting = Teamleader::meetings()->schedule([
'title' => 'Quarterly Review',
'starts_at' => '2025-04-15T09:00:00+02:00',
'ends_at' => '2025-04-15T10:30:00+02:00',
'attendees' => [
['type' => 'user', 'id' => 'user-uuid'],
['type' => 'contact', 'id' => 'contact-uuid'],
],
'customer' => ['type' => 'company', 'id' => 'company-uuid'],
'project_id' => 'project-uuid', // new-projects linkage (v1.2.8)
]);The id is injected into the request body. Accepts the same optional pass-through params as schedule() (including project_id, group_id, milestone_id, and the inline address location type). If attendees is provided it must still include at least one user attendee.
Teamleader::meetings()->update('meeting-uuid', [
'title' => 'Quarterly Review (rescheduled)',
'starts_at' => '2025-04-16T09:00:00+02:00',
'ends_at' => '2025-04-16T10:30:00+02:00',
]);Teamleader::meetings()->complete('meeting-uuid');
Teamleader::meetings()->delete('meeting-uuid');Creates a post-meeting report attached to a related entity. attach_to.type must be contact, company, or deal.
Teamleader::meetings()->createReport('meeting-uuid', [
'attach_to' => ['type' => 'deal', 'id' => 'deal-uuid'],
'description' => 'Client confirmed budget. Sending contract next week.',
]);| Method | Filter applied |
|---|---|
forEmployee(string $id) |
employee_id |
inDateRange(string $start, string $end) |
start_date + end_date
|
today() |
today's meetings |
search(string $term) |
term (title and description) |
| Method | Include |
|---|---|
withTrackedTime() |
tracked_time |
withEstimatedTime() |
estimated_time |
| Filter | Type | Description |
|---|---|---|
ids |
array | Filter by meeting UUIDs |
employee_id |
string | Filter by assigned employee UUID |
start_date |
string | From date (YYYY-MM-DD) |
end_date |
string | To date (YYYY-MM-DD) |
milestone_id |
string | Legacy project milestone UUID (cannot be combined with group_id) |
group_id |
string | Nextgen project group UUID (cannot be combined with milestone_id) (v1.2.8)
|
term |
string | Search in title and description |
recurrence_id |
string | Recurring series UUID |
| Include | Description |
|---|---|
tracked_time |
Time tracked against this meeting |
estimated_time |
Estimated time for this meeting |
-
info()returnscustomer_meeting_room(this was previously mis-documented asonline_meeting_room; the API field iscustomer_meeting_room). -
info()/list()responses includecreated_by(the user who created the meeting).
- Calls β Phone-call activities
- Calendar-Events β Generic calendar events
- Companies β Meeting customer reference
- Users β Meeting attendees
Last Updated: August 2026 β’ SDK Version: 2.2.2 β’ Made with β€οΈ by MCore Services
- Departments
- Users
- Teams
- Custom Fields
- Work Types
- Document Templates
- Currencies
- Notes
- Email Tracking
- Closing Days
- Day Off Types
- Days Off
- User Schedules
- Invoices
- Credit Notes
- Subscriptions
- Payment Methods
- Payment Terms
- Tax Rates
- Withholding Tax Rates
- Commercial Discounts
Next Gen Projects
Legacy Projects