GoBuildWP

Site operationsPro

The Events Calendar MCP for event listings, drafts and edits

The Events Calendar MCP abilities in GoBuildWP Pro go through the calendar's own event API rather than writing post meta, because an event's dates are also kept in the calendar's custom tables. An AI client can search events by date range, read one in full with venue and organisers, create a draft with explicit start and end times, and edit or remove one once someone has confirmed it. Ticket definitions are read-only.

AI clientyour-site.comVerify site policy

Add a draft Intro to Pottery workshop on 14 November, 18:00 to 20:00, at the Leeds studio.

  1. wppilot/events-calendar-check-setupRead

    Reports the calendar's version check, event counts, the management capability and whether Event Tickets is present.

  2. wppilot/events-calendar-list-eventsRead

    Searches 14 November for anything already booked at that time.

  3. wppilot/events-calendar-create-eventWrite

    Creates the event as a draft with start 2026-11-14 18:00:00 and end 2026-11-14 20:00:00 in site time, venue given by id.

  4. wppilot/events-calendar-get-eventRead

    Reads it back: schedule, timezone, all-day flag, venue, organisers and categories as stored.

Proposed sequence from source declarations; not a recorded task or proof of client compatibility. Inspect saved state and browser or provider results separately.
Edition
Pro
Abilities
7
Requires
WordPress 6.9+, PHP 8.0+, The Events Calendar 6.6.0+, Event Tickets (ticket reads) 5.8.0+

Data model

An event post, mirrored into custom tables

Each event is a tribe_events post, with venues and organisers stored as posts of their own and linked by id. Since the calendar introduced its custom tables, dates also live in tec_events and tec_occurrences: TEC's developer documentation says the occurrences table is updated whenever an event's start, end or recurrence rules change, and event queries run against it instead of post meta.

That is why the abilities create and edit through the calendar's public event API, which keeps the post and the tables in step, and why the GoBuildWP change log treats edits and deletions as irreversible: restoring the post alone is not guaranteed to resync the tables. A new event can still be undone, because trashing it goes through the calendar's own hooks.

Times are read and written as Y-m-d H:i:s in the event's own timezone, which create and edit accept per event; an event given none uses the calendar default, which follows the site's timezone setting. Ticket definitions come from the separate Event Tickets plugin and are only read.

Worked example

Add a draft event after checking calendar entries

Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.

A draft event waits for review in the calendar. It can be undone from the change log, which trashes it; publishing it later is an edit, and edits need confirmation and cannot be rolled back.

Resolve the exact venue ID, asking the owner when ambiguous. Use the site timezone and review existing entries, recurrence and possible conflicts before publishing the draft event. Calendar reads do not guarantee freedom from double-booking.

  1. events-calendar-check-setup

    Reports the calendar's version check, event counts, the management capability and whether Event Tickets is present.

  2. events-calendar-list-events

    Searches 14 November for anything already booked at that time.

  3. events-calendar-create-event

    Creates the event as a draft with start 2026-11-14 18:00:00 and end 2026-11-14 20:00:00 in site time, venue given by id.

  4. events-calendar-get-event

    Reads it back: schedule, timezone, all-day flag, venue, organisers and categories as stored.

Abilities

The Events Calendar abilities by effect

Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.

Limits

Boundaries on events and tickets

  • Use a synthetic event and reviewed series IDs. Check the rendered schedule and downstream notifications independently. Ticket operations exposed here remain read-only.
  • Edits and deletions need explicit confirmation. Delete trashes by default; force: true deletes permanently and there is no restore ability.
  • Recurring series from Events Calendar Pro are not controlled: an edit is never a series-wide change, and an event that belongs to a series is reported as such before any change.
  • Tickets are read-only: no ticket creation, capacity changes, check-ins or refunds, and attendee names, emails and orders are never returned.
  • Switching an event between all-day and timed changes what it means on the calendar, so it is confirmed as a separate decision.

Venues by id, event timezones and a tidy calendar

Venues and organisers have to exist before The Events Calendar MCP can use them

events-calendar-create-event takes a venue_id and one organizer_id, and nothing in the module creates a venue or an organiser. Both are their own posts in The Events Calendar, so a new location is added once in the calendar's Venues screen, with its address and map settings, and from then on the agent can refer to it by id. The quickest way to find an existing id is to read an earlier event held there with events-calendar-get-event, which returns the venue and organisers it links to.

Ambiguity is the usual failure: two venues called "Main Hall" in different cities, or an organiser whose name changed. Ask the agent to show the venue's name and id back to you before it creates the event, and correct it then. Categories work the same way, as a list of existing term ids, up to a hundred per event.

Event timezones, all-day events and online sessions

Start and end are written as Y-m-d H:i:s in the event's timezone, and the create and edit calls accept a timezone per event. Leave it out and the calendar uses its default, which follows the site's timezone setting. For an online session run from another country, set the timezone explicitly to the one the host will be in, so the time attendees see matches the time the host means. Read the event back with events-calendar-get-event and compare the stored timezone, not just the clock time.

all_day is a separate switch, and changing it on an existing event is treated as its own decision, because a timed event turned all-day loses its hours on the calendar views. If an event's end is before its start, the call is refused before anything is saved.

Publishing a draft event is an edit, so read it first

New events are drafts by default, which is the safe place to leave them while someone checks the text, venue and price. Publishing later goes through events-calendar-edit-event with status publish, and edits are classed destructive: on Production Safe the call waits for confirm, and once it runs the change log cannot reverse it, because the calendar's own tables are updated alongside the post. The edit verifies the stored result after writing, so a value the calendar rejected shows up in the response. Under Read Only only the inspection abilities run.

check-setup reports whether the connected account holds the calendar's edit, publish and delete capabilities for events. GoBuildWP's own requirement, a user who can manage options, comes first, so a calendar editor role without that capability cannot use the module even if it can publish events in wp-admin.

Price and links are plain fields. cost is free text up to a hundred characters, so "Free", "£15" or "£10 to £20" are all stored as written and shown the way The Events Calendar formats them, and website takes the event's own URL. Neither is checked against Event Tickets, so when a ticketed event's price changes, update the ticket in Event Tickets and the cost text through the agent, then compare the two on the event page.

Clearing out last season's events and checking ticket stock

events-calendar-list-events filters by status, search and a Y-m-d date range, a hundred per page, which makes end-of-season housekeeping a short conversation: list drafts whose dates have passed, review them, then delete. Delete moves events to the trash by default and verifies the trash happened; force true removes them permanently, with no restore ability afterwards, so keep the default unless the trash is the problem.

With Event Tickets active, events-calendar-list-event-tickets shows the tickets and RSVPs defined on one event without any attendee data. It is useful before promoting an event, to see what is on sale, but capacity, prices and check-ins are changed in Event Tickets, not by the agent. The events reference lists every field.

  • "Read only: list every draft event dated before today, with its venue."
  • "Create a draft webinar on 3 December, 16:00 to 17:00 New York time, organiser 54, in the Online category."
  • "Publish the pottery workshop draft once you have shown me its stored date, venue and price."

Questions

The Events Calendar questions

Can an AI agent change every date in a recurring event series?

No. Series behaviour from Events Calendar Pro is not exposed, so each change applies to the event it names and the agent says when that event is part of a series.

Does The Events Calendar MCP show who bought tickets?

No. The ticket ability lists ticket and RSVP definitions attached to an event and leaves out attendees, orders and check-in data.

What date format do the event abilities use?

Y-m-d H:i:s for both start and end, in the event's timezone. Create and edit accept a timezone per event; leave it out and the calendar default applies, which follows the site's timezone setting. The end cannot be before the start.

Can I undo an event edit made through MCP?

Not from the change log, because the calendar's custom tables are updated alongside the post. Read the event first so the previous values are on record.

Where these facts come from

GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.

The Events Calendar is a separate product; no partnership or endorsement is implied.

Try it on The Events Calendar in Read Only first