A website schedule can be useful outside its own page. K-POP PULSE’s August design first publishes existing events through JSON and ICS. The choice connects a human-facing schedule with material that another program can read.

That connection required more than two addresses. Reading the public feed exposed a wrongly attached venue and date, followed by work on withdrawal handling. I describe the historical implementation outputs and current serialized readings without claiming completed calendar subscription or refresh tests.

Give the same event distinct reading surfaces

A page can combine title, date and explanatory context. JSON exposes fields for a program, while ICS supplies a calendar interchange format. Building one representation does not make every other representation accurate. The source and state of the same event need inspection across the surfaces that carry them.

Initial public checks return HTTP 200 for both JSON and ICS, then distinguish date-only records from announced times. I read response success separately from schedule meaning. Opening a file does not guarantee the accuracy of its date, location or state, nor establish how a consuming application handles it.

Separate withdrawal of a wrong row from an actual cancellation

The early document records a release-time phrase attached as a venue to a tour event. After feed publication exposed the wrong row, it was withdrawn through a route emitting a cancelled state in ICS. This corrected a data entry; it was not an announcement that the artist had cancelled a real event.

Applying that mechanism to a duplicate could instead make a surviving event appear cancelled. Subsequent work introduces a distinction between cancellation and duplicate cleanup. I do not reduce the correction to removing an item from a list. The task includes the meaning communicated by both the screen and the exported feed.

Do not turn an unannounced time into midnight worldwide

An announced date is different from an announced instant. Converting a storage midnight into times across cities can invent an hour the source never stated. Convert a known instant only after establishing its original zone and time; retain the source date and unannounced status when the hour is unknown.

The previously shared time-projection CLI follows this boundary. It retains a date when time is unannounced and projects only an announced instant into selected zones. Reusable code does not authenticate the source announcement, and this ZIP is not reconstruction of the original website’s complete calendar implementation.

New time-projection CLI, example and checks ZIP

Distinguish a current feed state from a subscriber’s screen

The newly read public response contains 89 JSON events and 89 ICS event components. JSON reports 88 confirmed entries and one withdrawn entry; ICS contains one cancelled state. These are serialized observations at this inspection time, not a renewed source review of every event or an import or subscription test in a calendar application.

Retrieving a file once also differs from maintaining a subscription to an address. When a particular application refreshes corrected material and whether it treats it as the same event need separate verification. The file’s state does not prove that a subscriber’s calendar has processed cancellation or a time change. Choose the consuming program and change scenario before testing that claim.

Public feeds can propagate errors as well as useful information

A reader might question an odd venue phrase, while a program may transfer its value unchanged. Exported data therefore needs consistent meaning for unannounced time, correction and withdrawal alongside titles and sources. A convenient connection should not send an unexamined error farther merely because the field is easy to parse.

An earlier inspection also found a gap between unannounced-time feed data and schedule-page structured data. Correct selected feed entries do not prove agreement across every surface. I share a method for checking the page, file and consuming application in stages. This account neither patches the current original site nor claims tests across every calendar client.