Time-series Postgres speaks PostgreSQL
Connect Timescale Cloud to Excel, Google Sheets, AI and REST
Timescale, now Tiger Cloud. Postgres on the wire with TimescaleDB doing the time-series work on the server.
One connection, every surface
Where your Timescale data can go
- 1 outbound connection
- 0 inbound ports
- read-only · credentials stay put
runs on
- For your team, vendors and partners
-
Excel add-in · refresh on demand
-
Google Sheets add-on · refresh on demand
-
Nova AI ask in plain English · text to SQL
-
Data Viewer share live results · team, vendors, partners · any device
- For apps and systems
-
REST API JSON endpoint · OpenAPI 3.1
-
Power BI Power Query M
-
Scheduled syncs Google Sheets · Airtable · Baserow · SeaTable · Smartsheet · Anvil
- For AI tools
-
AI assistants Claude · Cursor · MCP server
- Delivered to people
-
Alerts & reports Slack · Discord · Email · Webhook
Query Streams reads Timescale Cloud from Microsoft Excel, Google Sheets, Power BI, AI assistants over MCP and a REST endpoint through one read-only connection. TimescaleDB is a PostgreSQL extension rather than a different database, so hypertables and continuous aggregates are queried with ordinary SQL and the compression and chunk handling all happen server-side. Two things are specific to this service and worth getting right on the way in: the ports are assigned per service rather than standard, and whether you are on the connection pool is something you choose when you create the connection.
Timescale Cloud is PostgreSQL on the wire — the standard driver, so every guide below applies unchanged. The only Timescale-specific part is the connection string, covered under connection details.
- For your team, vendors and partners
-
Timescale to Excel Microsoft Excel · Excel add-in
Pull live Timescale results straight into a worksheet and refresh them on demand — desktop Excel, Excel Online, Microsoft 365.
PostgreSQL guide -
Timescale to Google Sheets Sheets add-on
Run a saved Timescale query from the sidebar and drop the rows into the sheet. Shared collaborators can refresh it themselves.
PostgreSQL guide -
Ask Nova about Timescale Nova AI · text to SQL
Ask a question in plain English. Nova already knows your Timescale tables, writes and runs the SQL, explains the answer and charts it — no query to write, no credentials to hand over.
How Nova works -
Timescale to Data Viewer result sharing · team, vendors, partners · phone, tablet, desktop
Share a live Timescale result with anyone — a colleague, a vendor, a partner — as a bookmarkable grid that re-runs fresh when opened, on a phone, a tablet or a desktop. They see the results, never the SQL or the credentials.
How the Data Viewer works - For apps and systems
-
Timescale REST API HTTP endpoint
Publish a Timescale query as an authenticated JSON endpoint any application can call, with an OpenAPI 3.1 spec and ready-made Postman, Insomnia and Hoppscotch collections. No database port is opened.
PostgreSQL guide -
Timescale to Power BI Power Query M
Paste the generated Power Query M into the Power BI Advanced Editor and the report reads live Timescale results over HTTPS — no ODBC driver, no database port opened.
How Power BI works -
Timescale to Airtable Automation platform
Sync Timescale rows into an Airtable base on a schedule, or fetch them inside an Airtable automation script.
PostgreSQL guide -
Timescale to Baserow Automation platform
Feed a Baserow table from Timescale over the REST endpoint — self-hosted or Baserow cloud.
PostgreSQL guide -
Timescale to SeaTable Automation platform
Keep a SeaTable base current with Timescale data without exporting a file or exposing the database.
PostgreSQL guide -
Timescale to Smartsheet Automation platform
Push Timescale results into a Smartsheet grid so plans and reports read from the source system, not last week's export.
PostgreSQL guide -
Timescale to Anvil Anvil Works · App platform
Back an Anvil Python app with Timescale through the REST endpoint instead of embedding database credentials in the app.
PostgreSQL guide - For AI tools
-
Timescale MCP server Claude, Cursor and MCP clients
Give an AI assistant read-only access to Timescale with the schema it needs to write correct SQL — no credentials in the chat.
PostgreSQL guide - Delivered to people
-
Timescale alerts and reports Slack · Discord · Email · Webhook
Put a Timescale query on a schedule and have the rows delivered to Slack, Discord, email or a signed webhook — or hold the message until a row count, threshold or percentage change crosses the line you set.
How alerts and reports work
How it works
5 steps, no inbound firewall change
Install the Network Agent on a machine that can reach the internet. It opens one outbound connection and never listens, so no inbound firewall rule is needed.
Open the service in the Tiger Cloud console and find Connection info. Decide first whether you want the service directly or through the connection pool, because that choice belongs at the start.
Set the Connection Mode selector to match, then paste the service URL. Host, port, database, username and password are read out of it — but the mode is yours to set, not something the paste works out.
Check the port came through as the console shows it. Timescale assigns ports per service — often around 30133 for the service and 29303 for the pooler — so this field should never read 5432.
Leave Use SSL on, test and save. Read it from Microsoft Excel, Google Sheets, Power BI, MCP or REST through that one connection.
Feature deep-dive
What Timescale gives you
Set the connection mode before you save, not after
This is the one instruction on the page that matters more than it looks, and the reason is worth a paragraph.
- Timescale runs both of its pool modes on the same pooler port, and selects between them by which pool you connect to — the database name, not the address. So unlike a service that gives the pool its own port, there is nothing in the connection string for the card to read the mode from.
- That means the Connection Mode selector is a genuine choice rather than a confirmation. Pasting a pooler URL does not move it, because the URL does not carry the answer.
- The selector is what tells the agent to adapt: on the pool it turns off automatic prepared statements and skips the session reset, both of which are wrong to do through a transaction pooler.
- Set it when you create the connection. This is the point in the flow where the choice is in front of you, and it is much easier than revisiting it later.
- If you are not using the pool, leave it on direct and take the service port from the console. Nothing else changes.
TimescaleDB does the time-series work, and it does it on the server
A reasonable question about any time-series database is how much of it survives the trip into a spreadsheet. Here the answer is all of it, because none of it happens at this end.
- The connection is PostgreSQL on the wire. The agent carries the Npgsql driver and holds no TimescaleDB-specific code at all.
- So a query against a hypertable or a continuous aggregate is planned and executed by TimescaleDB itself. Chunk exclusion, compression and the aggregate machinery run on your service and what comes back is rows.
- That is the useful property rather than a limitation: time_bucket, the aggregation and the window functions all evaluate server-side, so Microsoft Excel and Google Sheets receive a finished result instead of raw readings to summarise locally.
- TLS is required and the agent enforces it for Timescale hostnames, so clearing the SSL checkbox does not produce an unencrypted connection. The certificate chain is not verified — read it as protection against anyone reading the traffic, not proof of which server answered.
- Everything the agent runs is read-only. Your credentials stay on the machine you installed it on and Query Streams keeps no copy of the data.
-- time_bucket runs on the server; Excel receives the finished series
SELECT time_bucket('1 hour', reading_at) AS hour,
device_id,
AVG(temperature) AS avg_temp,
MAX(temperature) AS peak_temp
FROM public.sensor_readings
WHERE reading_at >= now() - interval '7 days'
GROUP BY hour, device_id
ORDER BY hour DESC, device_id;
Timescale, Tiger Cloud, TigerData — same thing
The naming changed in 2025 and the old names are still what most people search for, so it is worth saying which is which.
- TimescaleDB is the PostgreSQL extension and still carries that name. It is what runs on the server.
- Tiger Cloud is the hosted service, previously called Timescale Cloud. TigerData is the company, previously Timescale Inc.
- The card is still labelled Timescale because that is the name on the extension and the name people look for. Nothing about the connection changed with the rebrand.
- Hostnames still end in .tsdb.cloud.timescale.com, which is what the agent recognises.
Shared by every database connector
True of every database connector
- Outbound only — the agent opens one encrypted connection out to Query Streams. No inbound port to forward, no VPN, no IP allowlist, nothing about your database exposed to the internet.
- Credentials stay put — the database username and password live on the machine you installed the agent on. Query Streams never receives them and cannot reach your database on its own.
- Read-only, enforced — one statement at a time, SELECT and friends only. A write is rejected on your own machine before it is ever sent to the server, rather than relying on a permission somebody remembered to set.
- Deploy as many agents as you like — one per site, region or cloud. Every data source they can see arrives in a single dropdown, so nobody has to know which agent hosts what.
What you get once a query is saved
- Share the capability, not the SQL — a colleague or an outside partner can run your query and change its filters without ever seeing the statement behind it.
- Filters from either direction — declare them yourself as @variables, or let the connector spot the literal values already sitting in your WHERE clause and offer those as dropdowns.
- Read it from anywhere — Microsoft Excel, Google Sheets, Power BI, the REST API, AI assistants over MCP, the Query Builder and Nova all read the same saved query.
- Run several at once — five saved queries into five worksheet tabs, streamed concurrently, however large the results.
- Join it to anything else you have connected — another database, a business API, or a folder of files, in one read-only statement.
Cross-source SQL
Join Timescale to the rest of your data
One statement can span Timescale and your other connections at once. Each source runs only the part it can, streams the result back, and the join happens centrally — the sources never talk to each other and nothing is copied anywhere.
3 connections · 3 agents
One statement
-- nothing copied, nothing merged, nothing scheduled
SELECT c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
FROM timescale_metrics.public.sensor_readings1 f
JOIN erp_sql.dbo.customers2 c ON c.id = f.customer_id
JOIN billing.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY invoiced DESC;
The three parts are connection, schema and table — and the connection name is whatever you called it. Illustrative columns; your tables will be your tables. Read-only applies to every piece: SELECT, WITH and EXPLAIN only, with a ceiling on how much any one source may hand over for a single query. How federated queries work
Connection details
What Timescale needs
- Host
- <service>.<project>.tsdb.cloud.timescale.com
- Port
- Assigned per service — often around 30133 direct and 29303 for the pooler. Not 5432, and not prefilled
- Driver
- Npgsql, carried by the agent — nothing to install at the Timescale end
- Paste format
- The service URL from Connection info, as a postgresql:// URI
- Connection mode
- Chosen in the card when you create the connection. Both pool modes share the pooler port, so it cannot be read from the address
- TLS
- Required and enforced for Timescale hostnames. Encrypted; the certificate chain is not verified
- Pooling
- On the pool the agent disables automatic prepared statements and skips session reset
- Defaults
- Database tsdb and user tsdbadmin are prefilled, matching what Timescale creates
- Saved as
- PostgreSQL, with Timescale kept as a badge
- Default schema
- public, which is what a federated reference carries
The pooled-mode instruction is the one thing on this page worth reading twice, and the reason is structural rather than fussy. Services that put their pooler on a distinct port hand the card a fact it can read out of any connection string you paste. Timescale puts both pool modes behind one port and distinguishes them by pool name, so the address is genuinely ambiguous and the selector has to carry the answer. Set it up front and the connection is correct from the first query.
TimescaleDB being an extension rather than a separate engine is what makes this connector uninteresting in the best sense. There is no special client, no separate query language and no translation layer — it is PostgreSQL, so filters, scheduling, sharing, Nova and MCP all behave exactly as they do against any other Postgres. The time-series capability is entirely a property of your server.
For a cross-source query Timescale is ordinary Postgres. A connection you called timescale_metrics is written timescale_metrics.public.sensor_readings, and it joins to a folder of CSVs, an on-premises system of record or a billing API in one read-only statement — which is the usual reason to want a time-series database in the same query as the business data that explains it.
Vendor documentation: www.tigerdata.com
FAQ
Questions about Timescale Cloud
Which tools can read Timescale Cloud data through Query Streams?
All of them, from one connection: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, scheduled alerts and reports. Connect the database once and every surface reads the same read-only connection — there is no per-tool setup and no second copy of the data.
Do I have to open a firewall port to my Timescale Cloud database?
No. The Query Streams Network Agent runs inside your network and opens a single outbound encrypted connection. Nothing listens for inbound traffic, no VPN is required, and the database keeps its existing firewall rules.
Can Query Streams change data in Timescale Cloud?
No. The agent enforces read-only at the point of execution — one statement at a time, SELECT and friends only. Credentials stay on the agent and are never sent to Query Streams.
What does Query Streams need to connect to Timescale Cloud?
A reachable host, a role and its password — the agent carries the driver, so nothing is installed on the database. Host: <service>.<project>.tsdb.cloud.timescale.com. Port: Assigned per service — often around 30133 direct and 29303 for the pooler. Not 5432, and not prefilled. Driver: Npgsql, carried by the agent — nothing to install at the Timescale end. Paste format: The service URL from Connection info, as a postgresql:// URI.
Can I join Timescale Cloud to another database in the same query?
Yes — that is a federated query. One statement can reference Timescale Cloud and your other connections at once, written as connection.schema.table. Each source runs only the part it can and streams the result back; the join happens centrally, so the sources never connect to each other and nothing is copied or scheduled. Read-only applies to every piece — SELECT, WITH and EXPLAIN only — and there is a ceiling on how much any one source may hand over for a single query. Federated queries are a plan feature; the federated queries page carries the current source and size limits.
Is connecting Timescale Cloud different from connecting PostgreSQL?
Only the connection string. Timescale Cloud speaks the PostgreSQL wire protocol, so filters, scheduling, sharing, the Excel and Google Sheets add-ons and the MCP server all behave identically. The Timescale card pre-fills the host, port and SSL settings that provider expects.
Is there a Timescale to Excel guide?
Yes — it is the PostgreSQL guide, and it is correct for Timescale Cloud as written. Timescale speaks the PostgreSQL wire protocol, so Timescale to Excel, Timescale to Google Sheets and every other destination follow the same steps. The only Timescale-specific part is the connection string, and the Timescale card fills that in for you.
Put Timescale where the work happens
Install the agent, point it at your database, and pick a destination.
Read-only Outbound only Credentials stay on the agent

